]> wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - ecp_id_GostR3410_2001_TestParamSet.c
GOST ECC optimizations (#263)
[openssl-gost/engine.git] / ecp_id_GostR3410_2001_TestParamSet.c
diff --git a/ecp_id_GostR3410_2001_TestParamSet.c b/ecp_id_GostR3410_2001_TestParamSet.c
new file mode 100644 (file)
index 0000000..71f1b23
--- /dev/null
@@ -0,0 +1,11525 @@
+/* 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 4
+/* 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))
+
+/* Projective points */
+typedef struct {
+    fe_t X;
+    fe_t Y;
+    fe_t Z;
+} pt_prj_t;
+
+/* Affine points */
+typedef struct {
+    fe_t X;
+    fe_t Y;
+} 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: word_by_word_montgomery --static id_GostR3410_2001_TestParamSet 64 '2^255 + 1073' */
+/* curve description: id_GostR3410_2001_TestParamSet */
+/* machine_wordsize = 64 (from "64") */
+/* requested operations: (all) */
+/* m = 0x8000000000000000000000000000000000000000000000000000000000000431 (from "2^255 + 1073") */
+/*                                                                    */
+/* NOTE: In addition to the bounds specified above each function, all */
+/*   functions synthesized for this Montgomery arithmetic require the */
+/*   input to be strictly less than the prime modulus (m), and also   */
+/*   require the input to be in the unique saturated representation.  */
+/*   All functions also ensure that these two properties are true of  */
+/*   return values.                                                   */
+/*  */
+/* Computed values: */
+/* eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) */
+/* 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) */
+
+#include <stdint.h>
+typedef unsigned char fiat_id_GostR3410_2001_TestParamSet_uint1;
+typedef signed char fiat_id_GostR3410_2001_TestParamSet_int1;
+typedef signed __int128 fiat_id_GostR3410_2001_TestParamSet_int128;
+typedef unsigned __int128 fiat_id_GostR3410_2001_TestParamSet_uint128;
+
+#if (-1 & 3) != 3
+#error "This code only works on a two's complement system"
+#endif
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64 is an addition with carry.
+ * Postconditions:
+ *   out1 = (arg1 + arg2 + arg3) mod 2^64
+ *   out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋
+ *
+ * Input Bounds:
+ *   arg1: [0x0 ~> 0x1]
+ *   arg2: [0x0 ~> 0xffffffffffffffff]
+ *   arg3: [0x0 ~> 0xffffffffffffffff]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffffffffffff]
+ *   out2: [0x0 ~> 0x1]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(
+    uint64_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2,
+    fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint64_t arg2,
+    uint64_t arg3) {
+    fiat_id_GostR3410_2001_TestParamSet_uint128 x1;
+    uint64_t x2;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x3;
+    x1 = ((arg1 + (fiat_id_GostR3410_2001_TestParamSet_uint128)arg2) + arg3);
+    x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
+    x3 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(x1 >> 64);
+    *out1 = x2;
+    *out2 = x3;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64 is a subtraction with borrow.
+ * Postconditions:
+ *   out1 = (-arg1 + arg2 + -arg3) mod 2^64
+ *   out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋
+ *
+ * Input Bounds:
+ *   arg1: [0x0 ~> 0x1]
+ *   arg2: [0x0 ~> 0xffffffffffffffff]
+ *   arg3: [0x0 ~> 0xffffffffffffffff]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffffffffffff]
+ *   out2: [0x0 ~> 0x1]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(
+    uint64_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2,
+    fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint64_t arg2,
+    uint64_t arg3) {
+    fiat_id_GostR3410_2001_TestParamSet_int128 x1;
+    fiat_id_GostR3410_2001_TestParamSet_int1 x2;
+    uint64_t x3;
+    x1 = ((arg2 - (fiat_id_GostR3410_2001_TestParamSet_int128)arg1) - arg3);
+    x2 = (fiat_id_GostR3410_2001_TestParamSet_int1)(x1 >> 64);
+    x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
+    *out1 = x3;
+    *out2 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(0x0 - x2);
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_mulx_u64 is a multiplication, returning the full double-width result.
+ * Postconditions:
+ *   out1 = (arg1 * arg2) mod 2^64
+ *   out2 = ⌊arg1 * arg2 / 2^64⌋
+ *
+ * Input Bounds:
+ *   arg1: [0x0 ~> 0xffffffffffffffff]
+ *   arg2: [0x0 ~> 0xffffffffffffffff]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffffffffffff]
+ *   out2: [0x0 ~> 0xffffffffffffffff]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_mulx_u64(uint64_t *out1,
+                                                         uint64_t *out2,
+                                                         uint64_t arg1,
+                                                         uint64_t arg2) {
+    fiat_id_GostR3410_2001_TestParamSet_uint128 x1;
+    uint64_t x2;
+    uint64_t x3;
+    x1 = ((fiat_id_GostR3410_2001_TestParamSet_uint128)arg1 * arg2);
+    x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
+    x3 = (uint64_t)(x1 >> 64);
+    *out1 = x2;
+    *out2 = x3;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_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_GostR3410_2001_TestParamSet_cmovznz_u64(
+    uint64_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 arg1,
+    uint64_t arg2, uint64_t arg3) {
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x1;
+    uint64_t x2;
+    uint64_t x3;
+    x1 = (!(!arg1));
+    x2 = ((fiat_id_GostR3410_2001_TestParamSet_int1)(0x0 - x1) &
+          UINT64_C(0xffffffffffffffff));
+    x3 = ((x2 & arg3) | ((~x2) & arg2));
+    *out1 = x3;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_mul multiplies two field elements in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ *   0 ≤ eval arg2 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ *   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_mul(uint64_t out1[4],
+                                                    const uint64_t arg1[4],
+                                                    const uint64_t arg2[4]) {
+    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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint64_t x15;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x16;
+    uint64_t x17;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x27;
+    uint64_t x28;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x29;
+    uint64_t x30;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x31;
+    uint64_t x32;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x33;
+    uint64_t x34;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x45;
+    uint64_t x46;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x47;
+    uint64_t x48;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x49;
+    uint64_t x50;
+    uint64_t x51;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x52;
+    uint64_t x53;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x54;
+    uint64_t x55;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x56;
+    uint64_t x57;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x58;
+    uint64_t x59;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x60;
+    uint64_t x61;
+    uint64_t x62;
+    uint64_t x63;
+    uint64_t x64;
+    uint64_t x65;
+    uint64_t x66;
+    uint64_t x67;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x68;
+    uint64_t x69;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x70;
+    uint64_t x71;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x72;
+    uint64_t x73;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x74;
+    uint64_t x75;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x87;
+    uint64_t x88;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x89;
+    uint64_t x90;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x91;
+    uint64_t x92;
+    uint64_t x93;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x94;
+    uint64_t x95;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x96;
+    uint64_t x97;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x98;
+    uint64_t x99;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x100;
+    uint64_t x101;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x102;
+    uint64_t x103;
+    uint64_t x104;
+    uint64_t x105;
+    uint64_t x106;
+    uint64_t x107;
+    uint64_t x108;
+    uint64_t x109;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x110;
+    uint64_t x111;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x112;
+    uint64_t x113;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x114;
+    uint64_t x115;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x116;
+    uint64_t x117;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x129;
+    uint64_t x130;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x131;
+    uint64_t x132;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x133;
+    uint64_t x134;
+    uint64_t x135;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x136;
+    uint64_t x137;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x138;
+    uint64_t x139;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x140;
+    uint64_t x141;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x142;
+    uint64_t x143;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x144;
+    uint64_t x145;
+    uint64_t x146;
+    uint64_t x147;
+    uint64_t x148;
+    uint64_t x149;
+    uint64_t x150;
+    uint64_t x151;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x152;
+    uint64_t x153;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x154;
+    uint64_t x155;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x156;
+    uint64_t x157;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x158;
+    uint64_t x159;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x160;
+    uint64_t x161;
+    uint64_t x162;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x163;
+    uint64_t x164;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x165;
+    uint64_t x166;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x167;
+    uint64_t x168;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x169;
+    uint64_t x170;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x171;
+    uint64_t x172;
+    uint64_t x173;
+    uint64_t x174;
+    uint64_t x175;
+    x1 = (arg1[1]);
+    x2 = (arg1[2]);
+    x3 = (arg1[3]);
+    x4 = (arg1[0]);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x5, &x6, x4, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x7, &x8, x4, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x9, &x10, x4, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x11, &x12, x4, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x13, &x14, 0x0, x12, x9);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x15, &x16, x14, x10, x7);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x17, &x18, x16, x8, x5);
+    x19 = (x18 + x6);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x20, &x21, x11,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x22, &x23, x20,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x24, &x25, x20,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x26, &x27, 0x0, x11,
+                                                      x24);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x28, &x29, x27, x13,
+                                                      x25);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x30, &x31, x29, x15,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x32, &x33, x31, x17,
+                                                      x22);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x34, &x35, x33, x19,
+                                                      x23);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x36, &x37, x1, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x38, &x39, x1, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x40, &x41, x1, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x42, &x43, x1, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x44, &x45, 0x0, x43,
+                                                      x40);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x46, &x47, x45, x41,
+                                                      x38);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x48, &x49, x47, x39,
+                                                      x36);
+    x50 = (x49 + x37);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x51, &x52, 0x0, x28,
+                                                      x42);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x53, &x54, x52, x30,
+                                                      x44);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x55, &x56, x54, x32,
+                                                      x46);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x57, &x58, x56, x34,
+                                                      x48);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x59, &x60, x58, x35,
+                                                      x50);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x61, &x62, x51,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x63, &x64, x61,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x65, &x66, x61,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x67, &x68, 0x0, x51,
+                                                      x65);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x69, &x70, x68, x53,
+                                                      x66);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x71, &x72, x70, x55,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x73, &x74, x72, x57,
+                                                      x63);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x75, &x76, x74, x59,
+                                                      x64);
+    x77 = ((uint64_t)x76 + x60);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x78, &x79, x2, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x80, &x81, x2, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x82, &x83, x2, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x84, &x85, x2, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x86, &x87, 0x0, x85,
+                                                      x82);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x88, &x89, x87, x83,
+                                                      x80);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x90, &x91, x89, x81,
+                                                      x78);
+    x92 = (x91 + x79);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x93, &x94, 0x0, x69,
+                                                      x84);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x95, &x96, x94, x71,
+                                                      x86);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x97, &x98, x96, x73,
+                                                      x88);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x99, &x100, x98, x75,
+                                                      x90);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x101, &x102, x100, x77,
+                                                      x92);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x103, &x104, x93,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x105, &x106, x103,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x107, &x108, x103,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x109, &x110, 0x0, x93,
+                                                      x107);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x111, &x112, x110, x95,
+                                                      x108);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x113, &x114, x112, x97,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x115, &x116, x114, x99,
+                                                      x105);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x117, &x118, x116, x101,
+                                                      x106);
+    x119 = ((uint64_t)x118 + x102);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x120, &x121, x3, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x122, &x123, x3, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x124, &x125, x3, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x126, &x127, x3, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x128, &x129, 0x0, x127,
+                                                      x124);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x130, &x131, x129, x125,
+                                                      x122);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x132, &x133, x131, x123,
+                                                      x120);
+    x134 = (x133 + x121);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x135, &x136, 0x0, x111,
+                                                      x126);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x137, &x138, x136, x113,
+                                                      x128);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x139, &x140, x138, x115,
+                                                      x130);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x141, &x142, x140, x117,
+                                                      x132);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x143, &x144, x142, x119,
+                                                      x134);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x145, &x146, x135,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x147, &x148, x145,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x149, &x150, x145,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x151, &x152, 0x0, x135,
+                                                      x149);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x153, &x154, x152, x137,
+                                                      x150);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x155, &x156, x154, x139,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x157, &x158, x156, x141,
+                                                      x147);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x159, &x160, x158, x143,
+                                                      x148);
+    x161 = ((uint64_t)x160 + x144);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x162, &x163, 0x0, x153,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x164, &x165, x163, x155,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x166, &x167, x165, x157,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(
+        &x168, &x169, x167, x159, UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x170, &x171, x169, x161,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x172, x171, x162, x153);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x173, x171, x164, x155);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x174, x171, x166, x157);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x175, x171, x168, x159);
+    out1[0] = x172;
+    out1[1] = x173;
+    out1[2] = x174;
+    out1[3] = x175;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_square squares a field element in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_square(uint64_t out1[4],
+                                                       const uint64_t arg1[4]) {
+    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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint64_t x15;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x16;
+    uint64_t x17;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x27;
+    uint64_t x28;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x29;
+    uint64_t x30;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x31;
+    uint64_t x32;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x33;
+    uint64_t x34;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x45;
+    uint64_t x46;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x47;
+    uint64_t x48;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x49;
+    uint64_t x50;
+    uint64_t x51;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x52;
+    uint64_t x53;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x54;
+    uint64_t x55;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x56;
+    uint64_t x57;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x58;
+    uint64_t x59;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x60;
+    uint64_t x61;
+    uint64_t x62;
+    uint64_t x63;
+    uint64_t x64;
+    uint64_t x65;
+    uint64_t x66;
+    uint64_t x67;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x68;
+    uint64_t x69;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x70;
+    uint64_t x71;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x72;
+    uint64_t x73;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x74;
+    uint64_t x75;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x87;
+    uint64_t x88;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x89;
+    uint64_t x90;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x91;
+    uint64_t x92;
+    uint64_t x93;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x94;
+    uint64_t x95;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x96;
+    uint64_t x97;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x98;
+    uint64_t x99;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x100;
+    uint64_t x101;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x102;
+    uint64_t x103;
+    uint64_t x104;
+    uint64_t x105;
+    uint64_t x106;
+    uint64_t x107;
+    uint64_t x108;
+    uint64_t x109;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x110;
+    uint64_t x111;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x112;
+    uint64_t x113;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x114;
+    uint64_t x115;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x116;
+    uint64_t x117;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x129;
+    uint64_t x130;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x131;
+    uint64_t x132;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x133;
+    uint64_t x134;
+    uint64_t x135;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x136;
+    uint64_t x137;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x138;
+    uint64_t x139;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x140;
+    uint64_t x141;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x142;
+    uint64_t x143;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x144;
+    uint64_t x145;
+    uint64_t x146;
+    uint64_t x147;
+    uint64_t x148;
+    uint64_t x149;
+    uint64_t x150;
+    uint64_t x151;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x152;
+    uint64_t x153;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x154;
+    uint64_t x155;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x156;
+    uint64_t x157;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x158;
+    uint64_t x159;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x160;
+    uint64_t x161;
+    uint64_t x162;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x163;
+    uint64_t x164;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x165;
+    uint64_t x166;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x167;
+    uint64_t x168;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x169;
+    uint64_t x170;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x171;
+    uint64_t x172;
+    uint64_t x173;
+    uint64_t x174;
+    uint64_t x175;
+    x1 = (arg1[1]);
+    x2 = (arg1[2]);
+    x3 = (arg1[3]);
+    x4 = (arg1[0]);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x5, &x6, x4, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x7, &x8, x4, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x9, &x10, x4, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x11, &x12, x4, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x13, &x14, 0x0, x12, x9);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x15, &x16, x14, x10, x7);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x17, &x18, x16, x8, x5);
+    x19 = (x18 + x6);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x20, &x21, x11,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x22, &x23, x20,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x24, &x25, x20,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x26, &x27, 0x0, x11,
+                                                      x24);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x28, &x29, x27, x13,
+                                                      x25);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x30, &x31, x29, x15,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x32, &x33, x31, x17,
+                                                      x22);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x34, &x35, x33, x19,
+                                                      x23);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x36, &x37, x1, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x38, &x39, x1, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x40, &x41, x1, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x42, &x43, x1, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x44, &x45, 0x0, x43,
+                                                      x40);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x46, &x47, x45, x41,
+                                                      x38);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x48, &x49, x47, x39,
+                                                      x36);
+    x50 = (x49 + x37);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x51, &x52, 0x0, x28,
+                                                      x42);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x53, &x54, x52, x30,
+                                                      x44);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x55, &x56, x54, x32,
+                                                      x46);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x57, &x58, x56, x34,
+                                                      x48);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x59, &x60, x58, x35,
+                                                      x50);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x61, &x62, x51,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x63, &x64, x61,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x65, &x66, x61,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x67, &x68, 0x0, x51,
+                                                      x65);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x69, &x70, x68, x53,
+                                                      x66);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x71, &x72, x70, x55,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x73, &x74, x72, x57,
+                                                      x63);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x75, &x76, x74, x59,
+                                                      x64);
+    x77 = ((uint64_t)x76 + x60);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x78, &x79, x2, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x80, &x81, x2, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x82, &x83, x2, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x84, &x85, x2, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x86, &x87, 0x0, x85,
+                                                      x82);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x88, &x89, x87, x83,
+                                                      x80);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x90, &x91, x89, x81,
+                                                      x78);
+    x92 = (x91 + x79);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x93, &x94, 0x0, x69,
+                                                      x84);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x95, &x96, x94, x71,
+                                                      x86);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x97, &x98, x96, x73,
+                                                      x88);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x99, &x100, x98, x75,
+                                                      x90);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x101, &x102, x100, x77,
+                                                      x92);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x103, &x104, x93,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x105, &x106, x103,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x107, &x108, x103,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x109, &x110, 0x0, x93,
+                                                      x107);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x111, &x112, x110, x95,
+                                                      x108);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x113, &x114, x112, x97,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x115, &x116, x114, x99,
+                                                      x105);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x117, &x118, x116, x101,
+                                                      x106);
+    x119 = ((uint64_t)x118 + x102);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x120, &x121, x3, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x122, &x123, x3, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x124, &x125, x3, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x126, &x127, x3, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x128, &x129, 0x0, x127,
+                                                      x124);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x130, &x131, x129, x125,
+                                                      x122);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x132, &x133, x131, x123,
+                                                      x120);
+    x134 = (x133 + x121);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x135, &x136, 0x0, x111,
+                                                      x126);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x137, &x138, x136, x113,
+                                                      x128);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x139, &x140, x138, x115,
+                                                      x130);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x141, &x142, x140, x117,
+                                                      x132);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x143, &x144, x142, x119,
+                                                      x134);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x145, &x146, x135,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x147, &x148, x145,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x149, &x150, x145,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x151, &x152, 0x0, x135,
+                                                      x149);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x153, &x154, x152, x137,
+                                                      x150);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x155, &x156, x154, x139,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x157, &x158, x156, x141,
+                                                      x147);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x159, &x160, x158, x143,
+                                                      x148);
+    x161 = ((uint64_t)x160 + x144);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x162, &x163, 0x0, x153,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x164, &x165, x163, x155,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x166, &x167, x165, x157,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(
+        &x168, &x169, x167, x159, UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x170, &x171, x169, x161,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x172, x171, x162, x153);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x173, x171, x164, x155);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x174, x171, x166, x157);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x175, x171, x168, x159);
+    out1[0] = x172;
+    out1[1] = x173;
+    out1[2] = x174;
+    out1[3] = x175;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_add adds two field elements in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ *   0 ≤ eval arg2 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ *   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_add(uint64_t out1[4],
+                                                    const uint64_t arg1[4],
+                                                    const uint64_t arg2[4]) {
+    uint64_t x1;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x2;
+    uint64_t x3;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x4;
+    uint64_t x5;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x6;
+    uint64_t x7;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x8;
+    uint64_t x9;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x10;
+    uint64_t x11;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x12;
+    uint64_t x13;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint64_t x15;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x16;
+    uint64_t x17;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x18;
+    uint64_t x19;
+    uint64_t x20;
+    uint64_t x21;
+    uint64_t x22;
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x1, &x2, 0x0, (arg1[0]),
+                                                      (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x3, &x4, x2, (arg1[1]),
+                                                      (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x5, &x6, x4, (arg1[2]),
+                                                      (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x7, &x8, x6, (arg1[3]),
+                                                      (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x9, &x10, 0x0, x1,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x11, &x12, x10, x3,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x13, &x14, x12, x5,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(
+        &x15, &x16, x14, x7, UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x17, &x18, x16, x8,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x19, x18, x9, x1);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x20, x18, x11, x3);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x21, x18, x13, x5);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x22, x18, x15, x7);
+    out1[0] = x19;
+    out1[1] = x20;
+    out1[2] = x21;
+    out1[3] = x22;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_sub subtracts two field elements in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ *   0 ≤ eval arg2 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ *   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_sub(uint64_t out1[4],
+                                                    const uint64_t arg1[4],
+                                                    const uint64_t arg2[4]) {
+    uint64_t x1;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x2;
+    uint64_t x3;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x4;
+    uint64_t x5;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x6;
+    uint64_t x7;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x8;
+    uint64_t x9;
+    uint64_t x10;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x11;
+    uint64_t x12;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x13;
+    uint64_t x14;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x15;
+    uint64_t x16;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x17;
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]),
+                                                       (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x3, &x4, x2, (arg1[1]),
+                                                       (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x5, &x6, x4, (arg1[2]),
+                                                       (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x7, &x8, x6, (arg1[3]),
+                                                       (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(
+        &x9, x8, 0x0, UINT64_C(0xffffffffffffffff));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x10, &x11, 0x0, x1,
+                                                      (x9 & UINT16_C(0x431)));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x12, &x13, x11, x3, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x14, &x15, x13, x5, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(
+        &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000)));
+    out1[0] = x10;
+    out1[1] = x12;
+    out1[2] = x14;
+    out1[3] = x16;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_opp negates a field element in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_opp(uint64_t out1[4],
+                                                    const uint64_t arg1[4]) {
+    uint64_t x1;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x2;
+    uint64_t x3;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x4;
+    uint64_t x5;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x6;
+    uint64_t x7;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x8;
+    uint64_t x9;
+    uint64_t x10;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x11;
+    uint64_t x12;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x13;
+    uint64_t x14;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x15;
+    uint64_t x16;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x17;
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x1, &x2, 0x0, 0x0,
+                                                       (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x3, &x4, x2, 0x0,
+                                                       (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x5, &x6, x4, 0x0,
+                                                       (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x7, &x8, x6, 0x0,
+                                                       (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(
+        &x9, x8, 0x0, UINT64_C(0xffffffffffffffff));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x10, &x11, 0x0, x1,
+                                                      (x9 & UINT16_C(0x431)));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x12, &x13, x11, x3, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x14, &x15, x13, x5, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(
+        &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000)));
+    out1[0] = x10;
+    out1[1] = x12;
+    out1[2] = x14;
+    out1[3] = x16;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_from_montgomery translates a field element out of the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^4) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_from_montgomery(
+    uint64_t out1[4], const uint64_t arg1[4]) {
+    uint64_t x1;
+    uint64_t x2;
+    uint64_t x3;
+    uint64_t x4;
+    uint64_t x5;
+    uint64_t x6;
+    uint64_t x7;
+    uint64_t x8;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x9;
+    uint64_t x10;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x11;
+    uint64_t x12;
+    uint64_t x13;
+    uint64_t x14;
+    uint64_t x15;
+    uint64_t x16;
+    uint64_t x17;
+    uint64_t x18;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x19;
+    uint64_t x20;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x21;
+    uint64_t x22;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x23;
+    uint64_t x24;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x25;
+    uint64_t x26;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x27;
+    uint64_t x28;
+    uint64_t x29;
+    uint64_t x30;
+    uint64_t x31;
+    uint64_t x32;
+    uint64_t x33;
+    uint64_t x34;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x35;
+    uint64_t x36;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x37;
+    uint64_t x38;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x39;
+    uint64_t x40;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x41;
+    uint64_t x42;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x43;
+    uint64_t x44;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x45;
+    uint64_t x46;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x47;
+    uint64_t x48;
+    uint64_t x49;
+    uint64_t x50;
+    uint64_t x51;
+    uint64_t x52;
+    uint64_t x53;
+    uint64_t x54;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x55;
+    uint64_t x56;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x57;
+    uint64_t x58;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x59;
+    uint64_t x60;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x61;
+    uint64_t x62;
+    uint64_t x63;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x64;
+    uint64_t x65;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x66;
+    uint64_t x67;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x68;
+    uint64_t x69;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x70;
+    uint64_t x71;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x72;
+    uint64_t x73;
+    uint64_t x74;
+    uint64_t x75;
+    uint64_t x76;
+    x1 = (arg1[0]);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x2, &x3, x1,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x4, &x5, x2,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x6, &x7, x2, UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x8, &x9, 0x0, x1, x6);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x10, &x11, 0x0,
+                                                      (x9 + x7), (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x12, &x13, x10,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x14, &x15, x12,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x16, &x17, x12,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x18, &x19, 0x0, x5, x14);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x20, &x21, 0x0, x10,
+                                                      x16);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(
+        &x22, &x23, 0x0, (((uint64_t)x21 + x11) + x17), (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x24, &x25, x23, x4, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x26, &x27, x25, x18,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x28, &x29, x22,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x30, &x31, x28,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x32, &x33, x28,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x34, &x35, 0x0, x22,
+                                                      x32);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x36, &x37, x35, x24,
+                                                      x33);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x38, &x39, x37, x26,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x40, &x41, x39,
+                                                      (x27 + (x19 + x15)), x30);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x42, &x43, 0x0, x36,
+                                                      (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x44, &x45, x43, x38,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x46, &x47, x45, x40,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x48, &x49, x42,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x50, &x51, x48,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x52, &x53, x48,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x54, &x55, 0x0, x42,
+                                                      x52);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x56, &x57, x55, x44,
+                                                      x53);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x58, &x59, x57, x46,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x60, &x61, x59,
+                                                      (x47 + (x41 + x31)), x50);
+    x62 = (x61 + x51);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x63, &x64, 0x0, x56,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x65, &x66, x64, x58,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x67, &x68, x66, x60,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(
+        &x69, &x70, x68, x62, UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x71, &x72, x70, 0x0,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x73, x72, x63, x56);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x74, x72, x65, x58);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x75, x72, x67, x60);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x76, x72, x69, x62);
+    out1[0] = x73;
+    out1[1] = x74;
+    out1[2] = x75;
+    out1[3] = x76;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_to_montgomery translates a field element into the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = eval arg1 mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_to_montgomery(
+    uint64_t out1[4], const uint64_t arg1[4]) {
+    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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x12;
+    uint64_t x13;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint64_t x15;
+    uint64_t x16;
+    uint64_t x17;
+    uint64_t x18;
+    uint64_t x19;
+    uint64_t x20;
+    uint64_t x21;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x22;
+    uint64_t x23;
+    uint64_t x24;
+    uint64_t x25;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x26;
+    uint64_t x27;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x28;
+    uint64_t x29;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x30;
+    uint64_t x31;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x32;
+    uint64_t x33;
+    uint64_t x34;
+    uint64_t x35;
+    uint64_t x36;
+    uint64_t x37;
+    uint64_t x38;
+    uint64_t x39;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x40;
+    uint64_t x41;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x42;
+    uint64_t x43;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x44;
+    uint64_t x45;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x46;
+    uint64_t x47;
+    uint64_t x48;
+    uint64_t x49;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x50;
+    uint64_t x51;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x52;
+    uint64_t x53;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x54;
+    uint64_t x55;
+    uint64_t x56;
+    uint64_t x57;
+    uint64_t x58;
+    uint64_t x59;
+    uint64_t x60;
+    uint64_t x61;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x62;
+    uint64_t x63;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x64;
+    uint64_t x65;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x66;
+    uint64_t x67;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x68;
+    uint64_t x69;
+    uint64_t x70;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x71;
+    uint64_t x72;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x73;
+    uint64_t x74;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x75;
+    uint64_t x76;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x77;
+    uint64_t x78;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x79;
+    uint64_t x80;
+    uint64_t x81;
+    uint64_t x82;
+    uint64_t x83;
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x1, &x2, (arg1[0]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x3, &x4, x1,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x5, &x6, x3,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x7, &x8, x3, UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x9, &x10, (arg1[1]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x11, &x12, 0x0, x1, x7);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x13, &x14, 0x0,
+                                                      ((x12 + x2) + x8), x9);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x15, &x16, x13,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x17, &x18, x15,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x19, &x20, x15,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x21, &x22, 0x0, x6, x17);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x23, &x24, (arg1[2]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x25, &x26, 0x0, x13,
+                                                      x19);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(
+        &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x29, &x30, x28, x5, x24);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x31, &x32, x30, x21,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x33, &x34, x27,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x35, &x36, x33,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x37, &x38, x33,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x39, &x40, 0x0, x27,
+                                                      x37);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x41, &x42, x40, x29,
+                                                      x38);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x43, &x44, x42, x31,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x45, &x46, x44,
+                                                      (x32 + (x22 + x18)), x35);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x47, &x48, (arg1[3]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x49, &x50, 0x0, x41,
+                                                      x47);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x51, &x52, x50, x43,
+                                                      x48);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x53, &x54, x52, x45,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x55, &x56, x49,
+                                                 UINT64_C(0xdbf951d5883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x57, &x58, x55,
+                                                 UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x59, &x60, x55,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x61, &x62, 0x0, x49,
+                                                      x59);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x63, &x64, x62, x51,
+                                                      x60);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x65, &x66, x64, x53,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x67, &x68, x66,
+                                                      (x54 + (x46 + x36)), x57);
+    x69 = (x68 + x58);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x70, &x71, 0x0, x63,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x72, &x73, x71, x65,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x74, &x75, x73, x67,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(
+        &x76, &x77, x75, x69, UINT64_C(0x8000000000000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x78, &x79, x77, 0x0,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x80, x79, x70, x63);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x81, x79, x72, x65);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x82, x79, x74, x67);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x83, x79, x76, x69);
+    out1[0] = x80;
+    out1[1] = x81;
+    out1[2] = x82;
+    out1[3] = x83;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffffffffffff]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_nonzero(
+    uint64_t *out1, const uint64_t arg1[4]) {
+    uint64_t x1;
+    x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0))));
+    *out1 = x1;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_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]]
+ *   arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_selectznz(
+    uint64_t out1[4], fiat_id_GostR3410_2001_TestParamSet_uint1 arg1,
+    const uint64_t arg2[4], const uint64_t arg3[4]) {
+    uint64_t x1;
+    uint64_t x2;
+    uint64_t x3;
+    uint64_t x4;
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x1, arg1, (arg2[0]),
+                                                    (arg3[0]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x2, arg1, (arg2[1]),
+                                                    (arg3[1]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x3, arg1, (arg2[2]),
+                                                    (arg3[2]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x4, arg1, (arg2[3]),
+                                                    (arg3[3]));
+    out1[0] = x1;
+    out1[1] = x2;
+    out1[2] = x3;
+    out1[3] = x4;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ * 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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_to_bytes(
+    uint8_t out1[32], const uint64_t arg1[4]) {
+    uint64_t x1;
+    uint64_t x2;
+    uint64_t x3;
+    uint64_t x4;
+    uint64_t x5;
+    uint8_t x6;
+    uint64_t x7;
+    uint8_t x8;
+    uint64_t x9;
+    uint8_t x10;
+    uint64_t x11;
+    uint8_t x12;
+    uint64_t x13;
+    uint8_t x14;
+    uint64_t x15;
+    uint8_t x16;
+    uint8_t x17;
+    uint8_t x18;
+    uint8_t x19;
+    uint64_t x20;
+    uint8_t x21;
+    uint64_t x22;
+    uint8_t x23;
+    uint64_t x24;
+    uint8_t x25;
+    uint64_t x26;
+    uint8_t x27;
+    uint64_t x28;
+    uint8_t x29;
+    uint64_t x30;
+    uint8_t x31;
+    uint8_t x32;
+    uint8_t x33;
+    uint8_t x34;
+    uint64_t x35;
+    uint8_t x36;
+    uint64_t x37;
+    uint8_t x38;
+    uint64_t x39;
+    uint8_t x40;
+    uint64_t x41;
+    uint8_t x42;
+    uint64_t x43;
+    uint8_t x44;
+    uint64_t x45;
+    uint8_t x46;
+    uint8_t x47;
+    uint8_t x48;
+    uint8_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;
+    uint64_t x60;
+    uint8_t x61;
+    uint8_t x62;
+    uint8_t x63;
+    x1 = (arg1[3]);
+    x2 = (arg1[2]);
+    x3 = (arg1[1]);
+    x4 = (arg1[0]);
+    x5 = (x4 >> 8);
+    x6 = (uint8_t)(x4 & UINT8_C(0xff));
+    x7 = (x5 >> 8);
+    x8 = (uint8_t)(x5 & UINT8_C(0xff));
+    x9 = (x7 >> 8);
+    x10 = (uint8_t)(x7 & UINT8_C(0xff));
+    x11 = (x9 >> 8);
+    x12 = (uint8_t)(x9 & UINT8_C(0xff));
+    x13 = (x11 >> 8);
+    x14 = (uint8_t)(x11 & UINT8_C(0xff));
+    x15 = (x13 >> 8);
+    x16 = (uint8_t)(x13 & UINT8_C(0xff));
+    x17 = (uint8_t)(x15 >> 8);
+    x18 = (uint8_t)(x15 & UINT8_C(0xff));
+    x19 = (uint8_t)(x17 & UINT8_C(0xff));
+    x20 = (x3 >> 8);
+    x21 = (uint8_t)(x3 & UINT8_C(0xff));
+    x22 = (x20 >> 8);
+    x23 = (uint8_t)(x20 & UINT8_C(0xff));
+    x24 = (x22 >> 8);
+    x25 = (uint8_t)(x22 & UINT8_C(0xff));
+    x26 = (x24 >> 8);
+    x27 = (uint8_t)(x24 & UINT8_C(0xff));
+    x28 = (x26 >> 8);
+    x29 = (uint8_t)(x26 & UINT8_C(0xff));
+    x30 = (x28 >> 8);
+    x31 = (uint8_t)(x28 & UINT8_C(0xff));
+    x32 = (uint8_t)(x30 >> 8);
+    x33 = (uint8_t)(x30 & UINT8_C(0xff));
+    x34 = (uint8_t)(x32 & UINT8_C(0xff));
+    x35 = (x2 >> 8);
+    x36 = (uint8_t)(x2 & UINT8_C(0xff));
+    x37 = (x35 >> 8);
+    x38 = (uint8_t)(x35 & UINT8_C(0xff));
+    x39 = (x37 >> 8);
+    x40 = (uint8_t)(x37 & UINT8_C(0xff));
+    x41 = (x39 >> 8);
+    x42 = (uint8_t)(x39 & UINT8_C(0xff));
+    x43 = (x41 >> 8);
+    x44 = (uint8_t)(x41 & UINT8_C(0xff));
+    x45 = (x43 >> 8);
+    x46 = (uint8_t)(x43 & UINT8_C(0xff));
+    x47 = (uint8_t)(x45 >> 8);
+    x48 = (uint8_t)(x45 & UINT8_C(0xff));
+    x49 = (uint8_t)(x47 & UINT8_C(0xff));
+    x50 = (x1 >> 8);
+    x51 = (uint8_t)(x1 & 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 = (x58 >> 8);
+    x61 = (uint8_t)(x58 & UINT8_C(0xff));
+    x62 = (uint8_t)(x60 >> 8);
+    x63 = (uint8_t)(x60 & UINT8_C(0xff));
+    out1[0] = x6;
+    out1[1] = x8;
+    out1[2] = x10;
+    out1[3] = x12;
+    out1[4] = x14;
+    out1[5] = x16;
+    out1[6] = x18;
+    out1[7] = x19;
+    out1[8] = x21;
+    out1[9] = x23;
+    out1[10] = x25;
+    out1[11] = x27;
+    out1[12] = x29;
+    out1[13] = x31;
+    out1[14] = x33;
+    out1[15] = x34;
+    out1[16] = x36;
+    out1[17] = x38;
+    out1[18] = x40;
+    out1[19] = x42;
+    out1[20] = x44;
+    out1[21] = x46;
+    out1[22] = x48;
+    out1[23] = x49;
+    out1[24] = x51;
+    out1[25] = x53;
+    out1[26] = x55;
+    out1[27] = x57;
+    out1[28] = x59;
+    out1[29] = x61;
+    out1[30] = x63;
+    out1[31] = x62;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order.
+ * Preconditions:
+ *   0 ≤ bytes_eval arg1 < m
+ * Postconditions:
+ *   eval out1 mod m = bytes_eval arg1 mod m
+ *   0 ≤ eval out1 < 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]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_from_bytes(
+    uint64_t out1[4], const uint8_t arg1[32]) {
+    uint64_t x1;
+    uint64_t x2;
+    uint64_t x3;
+    uint64_t x4;
+    uint64_t x5;
+    uint64_t x6;
+    uint64_t x7;
+    uint8_t x8;
+    uint64_t x9;
+    uint64_t x10;
+    uint64_t x11;
+    uint64_t x12;
+    uint64_t x13;
+    uint64_t x14;
+    uint64_t x15;
+    uint8_t x16;
+    uint64_t x17;
+    uint64_t x18;
+    uint64_t x19;
+    uint64_t x20;
+    uint64_t x21;
+    uint64_t x22;
+    uint64_t x23;
+    uint8_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;
+    x1 = ((uint64_t)(arg1[31]) << 56);
+    x2 = ((uint64_t)(arg1[30]) << 48);
+    x3 = ((uint64_t)(arg1[29]) << 40);
+    x4 = ((uint64_t)(arg1[28]) << 32);
+    x5 = ((uint64_t)(arg1[27]) << 24);
+    x6 = ((uint64_t)(arg1[26]) << 16);
+    x7 = ((uint64_t)(arg1[25]) << 8);
+    x8 = (arg1[24]);
+    x9 = ((uint64_t)(arg1[23]) << 56);
+    x10 = ((uint64_t)(arg1[22]) << 48);
+    x11 = ((uint64_t)(arg1[21]) << 40);
+    x12 = ((uint64_t)(arg1[20]) << 32);
+    x13 = ((uint64_t)(arg1[19]) << 24);
+    x14 = ((uint64_t)(arg1[18]) << 16);
+    x15 = ((uint64_t)(arg1[17]) << 8);
+    x16 = (arg1[16]);
+    x17 = ((uint64_t)(arg1[15]) << 56);
+    x18 = ((uint64_t)(arg1[14]) << 48);
+    x19 = ((uint64_t)(arg1[13]) << 40);
+    x20 = ((uint64_t)(arg1[12]) << 32);
+    x21 = ((uint64_t)(arg1[11]) << 24);
+    x22 = ((uint64_t)(arg1[10]) << 16);
+    x23 = ((uint64_t)(arg1[9]) << 8);
+    x24 = (arg1[8]);
+    x25 = ((uint64_t)(arg1[7]) << 56);
+    x26 = ((uint64_t)(arg1[6]) << 48);
+    x27 = ((uint64_t)(arg1[5]) << 40);
+    x28 = ((uint64_t)(arg1[4]) << 32);
+    x29 = ((uint64_t)(arg1[3]) << 24);
+    x30 = ((uint64_t)(arg1[2]) << 16);
+    x31 = ((uint64_t)(arg1[1]) << 8);
+    x32 = (arg1[0]);
+    x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25)))))));
+    x34 = (x33 & UINT64_C(0xffffffffffffffff));
+    x35 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1)))))));
+    x36 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9)))))));
+    x37 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17)))))));
+    x38 = (x37 & UINT64_C(0xffffffffffffffff));
+    x39 = (x36 & UINT64_C(0xffffffffffffffff));
+    out1[0] = x34;
+    out1[1] = x38;
+    out1[2] = x39;
+    out1[3] = x35;
+}
+
+/* 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_GostR3410_2001_TestParamSet/fe_inv.op3
+ * sliding window w=5
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_inv(fe_t output,
+                                                    const fe_t t1) {
+    int i;
+    /* temporary variables */
+    fe_t acc, t15;
+
+    fiat_id_GostR3410_2001_TestParamSet_square(acc, t1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t15, t1, acc);
+    for (i = 0; i < 6; i++)
+        fiat_id_GostR3410_2001_TestParamSet_mul(t15, t15, acc);
+    fiat_id_GostR3410_2001_TestParamSet_square(acc, t1);
+    for (i = 0; i < 244; i++)
+        fiat_id_GostR3410_2001_TestParamSet_square(acc, acc);
+    fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1);
+    for (i = 0; i < 5; i++)
+        fiat_id_GostR3410_2001_TestParamSet_square(acc, acc);
+    fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1);
+    for (i = 0; i < 5; i++)
+        fiat_id_GostR3410_2001_TestParamSet_square(acc, acc);
+    fiat_id_GostR3410_2001_TestParamSet_mul(output, acc, t15);
+}
+
+/* curve coefficient constants */
+
+static const limb_t const_one[4] = {
+    UINT64_C(0xFFFFFFFFFFFFFBCF), UINT64_C(0xFFFFFFFFFFFFFFFF),
+    UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)};
+
+static const limb_t const_a[4] = {
+    UINT64_C(0xFFFFFFFFFFFFC983), UINT64_C(0xFFFFFFFFFFFFFFFF),
+    UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)};
+
+static const limb_t const_b3[4] = {
+    UINT64_C(0x81733EE96AEAB71C), UINT64_C(0x00CD3D1CFC4E6FC7),
+    UINT64_C(0x60AB503A75853407), UINT64_C(0x0A9EC8AE4556810A)};
+
+/* LUT for scalar multiplication by comb interleaving */
+static const pt_aff_t lut_cmb[27][16] = {
+    {
+        {{UINT64_C(0xFFFFFFFFFFFFF36D), UINT64_C(0xFFFFFFFFFFFFFFFF),
+          UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)},
+         {UINT64_C(0x9AF45A5A471125F5), UINT64_C(0x7CE5090AF69BF9AE),
+          UINT64_C(0x67617A63E4B6DDE6), UINT64_C(0x03F66B354AA3DAA4)}},
+        {{UINT64_C(0xB39BDC16149B5D15), UINT64_C(0x87CE978A7309454F),
+          UINT64_C(0xD22F32EF315A7A56), UINT64_C(0x4C7DE232B69A6B57)},
+         {UINT64_C(0x9E2DAF6D466DC64D), UINT64_C(0x758C27B14B1C8A55),
+          UINT64_C(0x74A0CB23BD647F1A), UINT64_C(0x27E748682C2F4C70)}},
+        {{UINT64_C(0xF2D8F32E55A62594), UINT64_C(0x8323D57036BC547A),
+          UINT64_C(0x497679EB98D4B25A), UINT64_C(0x061167F2B87E0534)},
+         {UINT64_C(0xE1FFFDCE223E4DF8), UINT64_C(0x7C83AE78DCD891E9),
+          UINT64_C(0x743985863C1B95D0), UINT64_C(0x11D7320574B3F5AB)}},
+        {{UINT64_C(0x34B9C048ACB97F7C), UINT64_C(0x8232E73CE3B9BCC6),
+          UINT64_C(0x81F4B63FDA2DB71D), UINT64_C(0x4EEE5393A2DF4C84)},
+         {UINT64_C(0xCA6E63AEAC469C69), UINT64_C(0x27BC807C428E4F01),
+          UINT64_C(0x4A2C23BA5F4EC124), UINT64_C(0x74847CFCAAE2668B)}},
+        {{UINT64_C(0x4435585F6716AF4E), UINT64_C(0xB872D8B71CDB965F),
+          UINT64_C(0x662F1962746FFAD0), UINT64_C(0x52761A24DB5D0187)},
+         {UINT64_C(0xF6A09922A57E0E3D), UINT64_C(0x86C69342A9C12B63),
+          UINT64_C(0x91FF20B65AF190C5), UINT64_C(0x10DB7A2A4EEEE1AE)}},
+        {{UINT64_C(0xBB464A5374628B90), UINT64_C(0x6E7A1227057A4F25),
+          UINT64_C(0x4C309D690B0FA41F), UINT64_C(0x7548260777FE7B93)},
+         {UINT64_C(0xF2583EC70B612421), UINT64_C(0xFF2CFC835E2B15ED),
+          UINT64_C(0x1E97A7DB8CABC5CF), UINT64_C(0x1EC08FAA925C149F)}},
+        {{UINT64_C(0xBA0170E30E9FCBA9), UINT64_C(0x8976DF7C70D9939B),
+          UINT64_C(0xEAE6E74B21AF14DD), UINT64_C(0x09F098680D0861F9)},
+         {UINT64_C(0x4F7FE26E21A781FF), UINT64_C(0x1725B8D0D73DCEF7),
+          UINT64_C(0x9DA632177E743498), UINT64_C(0x0F51D42C1B828B99)}},
+        {{UINT64_C(0xBABB076B9AFE09BD), UINT64_C(0x4AC8922317C4050D),
+          UINT64_C(0xCA3EA6E3DA3E57E8), UINT64_C(0x20AAA384A33242C0)},
+         {UINT64_C(0x6D3A1F2DEF929BF5), UINT64_C(0xB34E2605E751A62D),
+          UINT64_C(0xE1AC629FB8CF1F99), UINT64_C(0x7152D4E3F0BBA01A)}},
+        {{UINT64_C(0xA97A6CE3943E5B8E), UINT64_C(0x1C0F6C7F2D053A9D),
+          UINT64_C(0x9D4A91DE64457DE4), UINT64_C(0x1E19EA8FC6140057)},
+         {UINT64_C(0xD4766CB6500995C8), UINT64_C(0xA019D41DE70CD7EE),
+          UINT64_C(0xBA1828AA7AB0A162), UINT64_C(0x0CACA0630B7A4E93)}},
+        {{UINT64_C(0x1E68315CA1B3FE03), UINT64_C(0x21FB277E1AAB6B20),
+          UINT64_C(0x210305D76A90FB22), UINT64_C(0x4C3D3EEA2E51B9BC)},
+         {UINT64_C(0xC5662C6D89C3A2E8), UINT64_C(0x66EA48181712BF9B),
+          UINT64_C(0x417F8F042254FBAB), UINT64_C(0x2F57DF29B057EEC1)}},
+        {{UINT64_C(0xF6975C9F6509AE4F), UINT64_C(0x58300438DC89C220),
+          UINT64_C(0xE81DA879907FF785), UINT64_C(0x68D600E30910ED2F)},
+         {UINT64_C(0xFBB25113B43BF686), UINT64_C(0x8B391E3F50A64FAE),
+          UINT64_C(0x8C1190D23112B7ED), UINT64_C(0x617BCD41CCB4CA50)}},
+        {{UINT64_C(0x75036E69DD780ACA), UINT64_C(0xC90A01DE6FBCD996),
+          UINT64_C(0x75E1A8E80C851CEF), UINT64_C(0x7225D38AF71BDCC6)},
+         {UINT64_C(0x74AE6935868B78D2), UINT64_C(0xE70570F31CDB5A1E),
+          UINT64_C(0x3E700C48BEBD2FA4), UINT64_C(0x3E483638325D3214)}},
+        {{UINT64_C(0x9F272CD5C0E6D8AD), UINT64_C(0x9E29687CE09743A2),
+          UINT64_C(0xBE0E0D5993CD64B3), UINT64_C(0x5D57A75D504B58F0)},
+         {UINT64_C(0x81A1A6E35D44B092), UINT64_C(0x38AD0169310D7868),
+          UINT64_C(0xC8D3C9A6CC297B73), UINT64_C(0x34D98A19908E0814)}},
+        {{UINT64_C(0xFFB946ADE5A57E1F), UINT64_C(0xF7EA0AA2191B6C5F),
+          UINT64_C(0x52D070588DF529C1), UINT64_C(0x06B7BDE52AFDA727)},
+         {UINT64_C(0x651E6DC990658555), UINT64_C(0x8F910D891FC416CE),
+          UINT64_C(0x0BA4D84ECBF086D5), UINT64_C(0x73DA158C0C4A4B4A)}},
+        {{UINT64_C(0xE22420A6521DB62C), UINT64_C(0x8EBC1A21BC90EB6F),
+          UINT64_C(0xE1529AACE50F6EB4), UINT64_C(0x4025BF278BE235DB)},
+         {UINT64_C(0x406077109FFE2B82), UINT64_C(0x7A6BB75B696B4634),
+          UINT64_C(0x0CEF27A92B2F25D3), UINT64_C(0x6C9CFFD7CA0B7112)}},
+        {{UINT64_C(0x12B39FF0EDA5C43B), UINT64_C(0x2E1FC66C54E0FE3F),
+          UINT64_C(0xFB2DEA80248A9167), UINT64_C(0x11BCDA103B2BB322)},
+         {UINT64_C(0xFDDF6E8416D2C928), UINT64_C(0x99DDF6A136E887F4),
+          UINT64_C(0x1E56D2F3920092D6), UINT64_C(0x67433BF42D77AE5A)}},
+    },
+    {
+        {{UINT64_C(0x6C204DDC321BFA62), UINT64_C(0xA96E42B82F138A80),
+          UINT64_C(0x4C98E986E3EC1A7D), UINT64_C(0x223C8BC4136CADC4)},
+         {UINT64_C(0xFA9F15D3BA3CE54A), UINT64_C(0xA103B9D719963D88),
+          UINT64_C(0x1ED233542F811A21), UINT64_C(0x64D6B14C65A4E833)}},
+        {{UINT64_C(0x2485175CCFBD1039), UINT64_C(0xC4DAE65B7C92D8EC),
+          UINT64_C(0x6FC70F541859FD47), UINT64_C(0x6D54344433E8305C)},
+         {UINT64_C(0x1A65FEC2944DDA07), UINT64_C(0x7BCF8391EF375B21),
+          UINT64_C(0xDDCFC356BE4CD8D6), UINT64_C(0x4BF93B9E13850042)}},
+        {{UINT64_C(0xBDF7A56C88B7F950), UINT64_C(0x3A60E5FC81B8590E),
+          UINT64_C(0x475B94D16F6E6807), UINT64_C(0x2F1B9F062F0D49A8)},
+         {UINT64_C(0x3C36DCF32E6A01D3), UINT64_C(0x807E1D5B30444003),
+          UINT64_C(0xE3768486FECF5768), UINT64_C(0x73C4D0CFEF12B5CC)}},
+        {{UINT64_C(0x9D76477CF4C6FF93), UINT64_C(0x03F16687C5A1A495),
+          UINT64_C(0x5071DA3DB41748B2), UINT64_C(0x0F3A3784971D6A7D)},
+         {UINT64_C(0x0B9A5AD62785A782), UINT64_C(0x957E72A009FF09F9),
+          UINT64_C(0x3072C1DCAE3CF5F4), UINT64_C(0x63D463ACCD9CFD7E)}},
+        {{UINT64_C(0xDA0DEE0BC77B516C), UINT64_C(0x446D7199E6AA0E1F),
+          UINT64_C(0xCC0D1590BFFA705C), UINT64_C(0x6A6FC81CC35B59BA)},
+         {UINT64_C(0x39DF210E593E3EB9), UINT64_C(0x17F331CED0DCC01F),
+          UINT64_C(0x02E0E5EBBD176C5B), UINT64_C(0x68946CCC8A2D6290)}},
+        {{UINT64_C(0x8D1400D609ECFEF2), UINT64_C(0x57D5F91BE1E76A98),
+          UINT64_C(0x5CF76130A12DFF8D), UINT64_C(0x5C36192261002939)},
+         {UINT64_C(0x8D45C8C1FB0FE974), UINT64_C(0x0C97725EF942ED70),
+          UINT64_C(0xB1C6649873C5AA42), UINT64_C(0x4A121FC47E203187)}},
+        {{UINT64_C(0x58430EE3FCEDA76C), UINT64_C(0x3496699AF5C88D62),
+          UINT64_C(0x1C3FC81114273E7E), UINT64_C(0x3E38E9FC1D6D67DA)},
+         {UINT64_C(0xBB683EA4AB685B3B), UINT64_C(0xB63F72B1B0904BB3),
+          UINT64_C(0x5DFA23C547A75297), UINT64_C(0x09E80AA038B59560)}},
+        {{UINT64_C(0x7D8325C67F4D22FC), UINT64_C(0xBFFB01B18C2FA282),
+          UINT64_C(0x01A037DC4A89BE98), UINT64_C(0x092F652584EA8C8A)},
+         {UINT64_C(0x873D33DAC52FD518), UINT64_C(0x0A245B1544AFDD41),
+          UINT64_C(0x7899373798FA7FF5), UINT64_C(0x1BB48AD221D29087)}},
+        {{UINT64_C(0x00C97A991A59313C), UINT64_C(0xBD4F29EE5CF9A6FF),
+          UINT64_C(0xEA59D87AD839B62B), UINT64_C(0x16F18F4897CAB63C)},
+         {UINT64_C(0xB339789A6F6C292F), UINT64_C(0xEC52E644D005ABB2),
+          UINT64_C(0xEEAC93C9AE24DA46), UINT64_C(0x0ECB9957E5C43B4F)}},
+        {{UINT64_C(0xD91B220220561AF7), UINT64_C(0xECA260DD55F2CFB8),
+          UINT64_C(0xF03A8C1D17B91CCF), UINT64_C(0x55A0491F64B35D9A)},
+         {UINT64_C(0x0A97E5CC1A2F8F39), UINT64_C(0x02C187D123B1D80B),
+          UINT64_C(0xA9C13D26DB9FBA1A), UINT64_C(0x7CCDDBACF8051F0D)}},
+        {{UINT64_C(0x05CA8EA5ED0E9DB8), UINT64_C(0xE888079F53A8EA3F),
+          UINT64_C(0x6DDBC40D9209BFA2), UINT64_C(0x068E5BA980DCEAEA)},
+         {UINT64_C(0xDB69D133B19D824B), UINT64_C(0x65154FB6E6A3A462),
+          UINT64_C(0x9FCF733D020B2AC7), UINT64_C(0x15178DDEE1329315)}},
+        {{UINT64_C(0x76F78865877EE476), UINT64_C(0x5824EACC12B471BA),
+          UINT64_C(0x71BDFADFBBB640A8), UINT64_C(0x5181B08F9A631D09)},
+         {UINT64_C(0x2913CCA5FFE978E8), UINT64_C(0x9CEF3612AEB89AA6),
+          UINT64_C(0x93BB373EE02AD6DC), UINT64_C(0x5D7984F004144769)}},
+        {{UINT64_C(0x3219DB074F98D2C3), UINT64_C(0xE3EF888FBD40ACCC),
+          UINT64_C(0x07A30E3A31124C73), UINT64_C(0x5D9C820BB070C53F)},
+         {UINT64_C(0x94D41768DA0661AB), UINT64_C(0x27FC266121FF87EB),
+          UINT64_C(0xB8DCBC7FFF17A977), UINT64_C(0x71F75FF9392EB13D)}},
+        {{UINT64_C(0xC5CED56C9AD71AB0), UINT64_C(0xE744EAB039D6C9F1),
+          UINT64_C(0x6E49B00B839BD904), UINT64_C(0x0C0EDE2CD7003054)},
+         {UINT64_C(0x792C3F801A6A1BB7), UINT64_C(0x6E5093B14B2C7885),
+          UINT64_C(0x2887320913EA65F7), UINT64_C(0x085A2697F381C851)}},
+        {{UINT64_C(0x84FC6B9DDA60A255), UINT64_C(0x12397EED4B495BC6),
+          UINT64_C(0x4881DF6B71A5AA87), UINT64_C(0x57BB32599572CFE2)},
+         {UINT64_C(0x306777593A10A65F), UINT64_C(0x670B82ECDB1758DD),
+          UINT64_C(0xD84F3E8FD57B513E), UINT64_C(0x617A512A89088E78)}},
+        {{UINT64_C(0x83971322AE3D7707), UINT64_C(0x66563CDE6D34D0B4),
+          UINT64_C(0x95342D9BC13309ED), UINT64_C(0x62C2B1B6082A5887)},
+         {UINT64_C(0xD94A8712C3C27158), UINT64_C(0xDE2C9C9DA844BF60),
+          UINT64_C(0xDE897386CE3E4F3C), UINT64_C(0x2C22A82E6ACEBDF1)}},
+    },
+    {
+        {{UINT64_C(0x2755028A0604E200), UINT64_C(0xADE23A7D44189101),
+          UINT64_C(0xA6E418F4F0B7F9B7), UINT64_C(0x036F5503212EDC2A)},
+         {UINT64_C(0xE069D06A3F5E0456), UINT64_C(0x2FAFF7C80F37F2D8),
+          UINT64_C(0xFF08E8797F5EDE53), UINT64_C(0x7F97725D797E0427)}},
+        {{UINT64_C(0xE44E39C1B32E5B1B), UINT64_C(0x25CD4614AD3EC706),
+          UINT64_C(0x2E97B090E382C5D2), UINT64_C(0x3E1A1F6BB00D79F2)},
+         {UINT64_C(0x27573C4EC2375837), UINT64_C(0xAD53D2C86C8D5CCD),
+          UINT64_C(0x94EE5460FC09725A), UINT64_C(0x6E59250602DD0DF4)}},
+        {{UINT64_C(0x6CFFA4BF3D0C7AC4), UINT64_C(0x663B121869ED4317),
+          UINT64_C(0x933094F6C79AD5C1), UINT64_C(0x569F37EDFFC54767)},
+         {UINT64_C(0x954EEE0C1F338782), UINT64_C(0x5BE69673A46CA276),
+          UINT64_C(0x77BA000920CB26DC), UINT64_C(0x2211CAC3029316AE)}},
+        {{UINT64_C(0xC8DEF3CB184EBD7C), UINT64_C(0x393370506A4DB0A0),
+          UINT64_C(0x6FF7993A0BE1D82C), UINT64_C(0x01D7674AFC9252C0)},
+         {UINT64_C(0xB10BA727F62D9268), UINT64_C(0x6E2338D8817B687B),
+          UINT64_C(0x266443F2E47405F1), UINT64_C(0x6A1BD9CE6872B879)}},
+        {{UINT64_C(0x192137652B2BD346), UINT64_C(0x962CA22CE2ACFB8E),
+          UINT64_C(0x518CF45D62FECDE1), UINT64_C(0x529AE629A13D9E8D)},
+         {UINT64_C(0xAF796DB0BB69D5E3), UINT64_C(0xA064209DD4E596B7),
+          UINT64_C(0x9F3DFD4A47942C73), UINT64_C(0x7FAB6C6D7810D5EC)}},
+        {{UINT64_C(0x55D1525066A3B287), UINT64_C(0x1ECC6A20EEFDDC75),
+          UINT64_C(0xF683FA6026DE8C01), UINT64_C(0x4F5DE2A69FBA658C)},
+         {UINT64_C(0xE748D78AC66D82F4), UINT64_C(0x2BA525EF3B24C76B),
+          UINT64_C(0x5A9539E630EE69CE), UINT64_C(0x2DA4C4C2B7861B2D)}},
+        {{UINT64_C(0x9D1E982D820743E6), UINT64_C(0x705D9237AB0CC42D),
+          UINT64_C(0xBDD0166347C4E7D7), UINT64_C(0x3D48EE78F8E69896)},
+         {UINT64_C(0x7A822BCD41132782), UINT64_C(0xBD41BEFAEE46F715),
+          UINT64_C(0x8E5C3B5FD0B2F4B0), UINT64_C(0x690A53D45E47ED55)}},
+        {{UINT64_C(0x390536C165A40E44), UINT64_C(0x4B4D79701C92235C),
+          UINT64_C(0xCAC270848B7389E4), UINT64_C(0x7B5B23B219041D01)},
+         {UINT64_C(0x7C18B9733B5FD5BA), UINT64_C(0xFD14865D84B72217),
+          UINT64_C(0x5592547E267EDE4C), UINT64_C(0x22DB62E58B369753)}},
+        {{UINT64_C(0x06083D33DDF15BDD), UINT64_C(0x5766555F361925F5),
+          UINT64_C(0xECC0F110B7ACDEA7), UINT64_C(0x3E3F1B270A3453B5)},
+         {UINT64_C(0x5A8B7DF96F7B980D), UINT64_C(0xEBA90E39B44756AC),
+          UINT64_C(0x954D7ECDAC9A7DB2), UINT64_C(0x43F688D328EA7151)}},
+        {{UINT64_C(0x51F645694638EFAE), UINT64_C(0x5840A5DB3D28BF3C),
+          UINT64_C(0xDD486261134D3E8F), UINT64_C(0x09F17E2C7B6B466B)},
+         {UINT64_C(0x30D3546378ED7016), UINT64_C(0x342E9701B86D8508),
+          UINT64_C(0xA3FF656542B19533), UINT64_C(0x4405F02C061A4A81)}},
+        {{UINT64_C(0x15C921C03D3AAF1E), UINT64_C(0x2DD720C77D297559),
+          UINT64_C(0x93A07904CB80E3B2), UINT64_C(0x427C610B6B1EDB93)},
+         {UINT64_C(0xD2CE818FF61E2F41), UINT64_C(0x1DA534218252FB3C),
+          UINT64_C(0x37A4A997ED07538F), UINT64_C(0x48A928BF962454F2)}},
+        {{UINT64_C(0x65091E4D7A420273), UINT64_C(0x6AF382AFE54C0B47),
+          UINT64_C(0x150DAB088047A423), UINT64_C(0x22C3740A45BD197C)},
+         {UINT64_C(0x64429AA0E07C3468), UINT64_C(0xC506B8C97B37FE10),
+          UINT64_C(0x30E2FE783CC5062C), UINT64_C(0x2F3B5A5FA9242F2D)}},
+        {{UINT64_C(0x2619A3B25A40BCA1), UINT64_C(0xD012DF23118C2FEA),
+          UINT64_C(0x2868C8B7B73FE15C), UINT64_C(0x45A9CC5AEB10B475)},
+         {UINT64_C(0x7111AB75069050AD), UINT64_C(0x0665182BEC2398A9),
+          UINT64_C(0xD9A5126E9B86A240), UINT64_C(0x601CF0E040E2AED6)}},
+        {{UINT64_C(0xE74C9DCDF48C8655), UINT64_C(0xEE703CA8900E89D5),
+          UINT64_C(0x6C2DFF8B5390F052), UINT64_C(0x08588E891316CC4C)},
+         {UINT64_C(0x0F2CC83A47E80C87), UINT64_C(0x23DE34CFD87824E4),
+          UINT64_C(0xC530AF41541FE8F9), UINT64_C(0x0BF01DC0D142F1C0)}},
+        {{UINT64_C(0x210B0B1E886C0C4A), UINT64_C(0x66369DF19C56A126),
+          UINT64_C(0x5D79AE81EAC22A5E), UINT64_C(0x4E6C67D4D16F7DB6)},
+         {UINT64_C(0x274572F6247CDE60), UINT64_C(0xF3C92AC754E8454B),
+          UINT64_C(0x784EC1A1F08C32D1), UINT64_C(0x222716D8E1FE9C4E)}},
+        {{UINT64_C(0xAF6AEF5D3FB1DB1E), UINT64_C(0xB8B55842C4C2A4D8),
+          UINT64_C(0x258A2F44CA5AB578), UINT64_C(0x558A803F7D8B2D70)},
+         {UINT64_C(0x9A7345C37E0247A3), UINT64_C(0x4E5A6904B4D920B1),
+          UINT64_C(0xCF7FAA4176BCBBE1), UINT64_C(0x66CF993FEE112271)}},
+    },
+    {
+        {{UINT64_C(0xDE7D208F84D2C56B), UINT64_C(0xD1C77403DDA20F33),
+          UINT64_C(0xB73FDC099A6F337A), UINT64_C(0x1B2A380740CD2CBD)},
+         {UINT64_C(0xB642FA2C65988D73), UINT64_C(0x117E75BC059DAB8E),
+          UINT64_C(0xC7E2E935D6B279AA), UINT64_C(0x5EEB9654EEA2A445)}},
+        {{UINT64_C(0xA84747C0A59D7A2A), UINT64_C(0x4478AD4A1004C5B8),
+          UINT64_C(0xF55C2B1BA22DE791), UINT64_C(0x2FF6097D23F8F89F)},
+         {UINT64_C(0xD079C875E117BC40), UINT64_C(0x14AEA36003CB43DD),
+          UINT64_C(0x8C730D890A20D653), UINT64_C(0x6956274A02FD02D8)}},
+        {{UINT64_C(0x9F5D0E9DD46293CF), UINT64_C(0x53748DD4F0D93AB7),
+          UINT64_C(0x6F81339FB9C37CF0), UINT64_C(0x00B8677AF4B041FC)},
+         {UINT64_C(0xF76E0FFEB5A6FE97), UINT64_C(0x6D3C71F5F7D198A2),
+          UINT64_C(0xF91E840811420372), UINT64_C(0x36F9F35470036AED)}},
+        {{UINT64_C(0x503AF4F25D446956), UINT64_C(0xCA08C5372DC9777C),
+          UINT64_C(0xDB4BA888E1308D3A), UINT64_C(0x01EA28EA01DB98CB)},
+         {UINT64_C(0x27CC52A9A7DF5FE0), UINT64_C(0x7DA5186B7DE31E0A),
+          UINT64_C(0x63E32889F136FAD5), UINT64_C(0x1BB010A8A363AF23)}},
+        {{UINT64_C(0x65828B54C0FE56C9), UINT64_C(0x7322CD514ED3935A),
+          UINT64_C(0x42F068F437B4A727), UINT64_C(0x7AA9F9F0B4C02BE4)},
+         {UINT64_C(0xBB77851ADEBB2DD4), UINT64_C(0x7757D5F6D105B81F),
+          UINT64_C(0x7805369C52FA1512), UINT64_C(0x4CBC43AE38B6976A)}},
+        {{UINT64_C(0x24FE8ABD4096725B), UINT64_C(0xC3FAC73A3895D1E2),
+          UINT64_C(0xBCAF7757006A2360), UINT64_C(0x75AE96ADC03EBB33)},
+         {UINT64_C(0x310744780BD1FB6F), UINT64_C(0x729E8E6AEA386CBE),
+          UINT64_C(0xA8BBCC0B4845AAEC), UINT64_C(0x1A0A2D19E6582656)}},
+        {{UINT64_C(0x332BC9BD69BD55F7), UINT64_C(0x93D987E2EFB6F780),
+          UINT64_C(0xE57DE09614381F4D), UINT64_C(0x7BDF4217FF01C4D9)},
+         {UINT64_C(0x2A07C4AB1956BF02), UINT64_C(0x7C7B3684553823D9),
+          UINT64_C(0x8F750E8ED40F600C), UINT64_C(0x63F253E99693A3C3)}},
+        {{UINT64_C(0x250ED8BFC62CE42B), UINT64_C(0xE8A1A295E70674E1),
+          UINT64_C(0x05ED093D163A92F1), UINT64_C(0x515FF44B628969A0)},
+         {UINT64_C(0xF617DF0341CE3AF8), UINT64_C(0xCADE131AF9E60202),
+          UINT64_C(0xFE83C379363B87E9), UINT64_C(0x7196A80B493EF65F)}},
+        {{UINT64_C(0x4B176FE6D7A2047B), UINT64_C(0x6981D18241DCA514),
+          UINT64_C(0xDDC7EE8EDC74AC2E), UINT64_C(0x3A95A20385CC07D1)},
+         {UINT64_C(0x8D4BA2D8841E3200), UINT64_C(0x837DDD9B5F654197),
+          UINT64_C(0x388D358EFBFE4D06), UINT64_C(0x562DE2F261143A85)}},
+        {{UINT64_C(0x3BA1F6E5CFACB903), UINT64_C(0xB5BBA41FBD97A3A2),
+          UINT64_C(0xB86F117FCFCF2547), UINT64_C(0x506428593D9A13DB)},
+         {UINT64_C(0xC15C82AE7B5F2A8F), UINT64_C(0x47E772DDEF89351E),
+          UINT64_C(0x78C53901CAAC4CC7), UINT64_C(0x6B0F5D3068D72131)}},
+        {{UINT64_C(0x47E17734A0B407E6), UINT64_C(0x29E0683034949A81),
+          UINT64_C(0x63D83340CB1AC772), UINT64_C(0x178A6DD6EB84F909)},
+         {UINT64_C(0xA9E948263C27D7BA), UINT64_C(0xC86AF96DDB027A4C),
+          UINT64_C(0xE7D04E3456D5DF86), UINT64_C(0x7212EAC22E8D0EE3)}},
+        {{UINT64_C(0xE7E5AA648A75F66B), UINT64_C(0x7E86B6AA8CFD9597),
+          UINT64_C(0x1B7DDE0C834C0271), UINT64_C(0x397EAF2AD4AD306F)},
+         {UINT64_C(0x0A3579061657E32B), UINT64_C(0xAAEB2DCF4957B3AF),
+          UINT64_C(0x1C0CBD0269D3CEE9), UINT64_C(0x7434EC325A6E7D53)}},
+        {{UINT64_C(0xEB5878F785559E86), UINT64_C(0xB9555F704A09C168),
+          UINT64_C(0xBFFAC5DB80501134), UINT64_C(0x4CDBF53A05B53160)},
+         {UINT64_C(0x1413BA295F90344B), UINT64_C(0xC6A9D1EDD0DD0CFD),
+          UINT64_C(0x8C56AA29A0C31B73), UINT64_C(0x1C9B0B61F4E58E08)}},
+        {{UINT64_C(0xBF8D22370E2F595A), UINT64_C(0x7A646816CBA13CD8),
+          UINT64_C(0xBD2E93A15CD728B6), UINT64_C(0x30FDF85C07CF9009)},
+         {UINT64_C(0x3496D94906122B98), UINT64_C(0xE63EC7415A80B3AF),
+          UINT64_C(0xA2A39CF782838A44), UINT64_C(0x4A064F99C015E1D4)}},
+        {{UINT64_C(0x9CCDF95B456CB242), UINT64_C(0xDA1CB24E6F4517DC),
+          UINT64_C(0x60450E0F931A1115), UINT64_C(0x6780D774B5680A8D)},
+         {UINT64_C(0xAFE48DCD1FDA4243), UINT64_C(0x6BDD541CAE9733C7),
+          UINT64_C(0xCBBCC69CD79D1D52), UINT64_C(0x334F4F671A513B3E)}},
+        {{UINT64_C(0xCE7712C4DF49E1A0), UINT64_C(0xB5444862E0B96135),
+          UINT64_C(0x10564C4BF050D010), UINT64_C(0x0531AEC8FEBEFCC8)},
+         {UINT64_C(0xD45B4BE770DF6D29), UINT64_C(0x1ACC2D706829054E),
+          UINT64_C(0x9744CDE154E56E05), UINT64_C(0x3C5DE93E6EE02696)}},
+    },
+    {
+        {{UINT64_C(0xF43A2B993951B674), UINT64_C(0xE82789E85E72FC98),
+          UINT64_C(0x2AD4843686992601), UINT64_C(0x3FDEB17201A2B65A)},
+         {UINT64_C(0x926B48393666322B), UINT64_C(0x68847D5C44B3FDB7),
+          UINT64_C(0xD06C450DF2F5E247), UINT64_C(0x0CEC0646BBA7C892)}},
+        {{UINT64_C(0x76446D2661F9C9DA), UINT64_C(0xEF2C7B98AC60376F),
+          UINT64_C(0xEEA8CABE2410C057), UINT64_C(0x4C2CE2A73672A2B6)},
+         {UINT64_C(0x3F77094512879BA5), UINT64_C(0x719D5BD0AD913022),
+          UINT64_C(0x28A82DD936D445A4), UINT64_C(0x26382C23965965AA)}},
+        {{UINT64_C(0x66709D92B8AA8419), UINT64_C(0xFAEFF2E40AB5C241),
+          UINT64_C(0xABB7C5DD1DD46DEB), UINT64_C(0x7DD03C3339DB6CB5)},
+         {UINT64_C(0x76CDD1EA9E160F01), UINT64_C(0x00598D5681C5CA37),
+          UINT64_C(0x16D23B04241772EC), UINT64_C(0x5132B02852A6B807)}},
+        {{UINT64_C(0x6D48D4B5CC041445), UINT64_C(0x0B1CD9231528DF63),
+          UINT64_C(0x82EE4DC64A815F60), UINT64_C(0x29DA60590451E242)},
+         {UINT64_C(0xCD90BFB017A8A6D0), UINT64_C(0x8BCF439252A7FC3D),
+          UINT64_C(0x49AD55F21974860C), UINT64_C(0x20BBF0105EDCB1D2)}},
+        {{UINT64_C(0xB4F0EA84A8F6C08C), UINT64_C(0x4341BEA7D50164F3),
+          UINT64_C(0xE538901906320C0F), UINT64_C(0x69D4851A8BA6F033)},
+         {UINT64_C(0x1CE5866077902045), UINT64_C(0xF3B88D85BD8579B3),
+          UINT64_C(0xF84FF63A4FB0A17B), UINT64_C(0x09EE62EEDE6581BF)}},
+        {{UINT64_C(0x8B8C15B57C0516DE), UINT64_C(0x3B448FC3A530B89F),
+          UINT64_C(0xE385BBE5500B0251), UINT64_C(0x5F643F85ED70804B)},
+         {UINT64_C(0x550D9B7D239E85A5), UINT64_C(0xDC910B5B8666E41F),
+          UINT64_C(0x655221817D4E390F), UINT64_C(0x5DD2D3E83162FE10)}},
+        {{UINT64_C(0x59609390DF024A25), UINT64_C(0xE66A77E908CCBA91),
+          UINT64_C(0xC5CEA91A65E24DB6), UINT64_C(0x0888DFB53DCEA0A7)},
+         {UINT64_C(0x8C8E58CC92FA0754), UINT64_C(0x99C259ABF7DC9538),
+          UINT64_C(0x3A06D8ED9BEFE750), UINT64_C(0x71AF22E1FAACDC97)}},
+        {{UINT64_C(0xCC41D094250AC059), UINT64_C(0xCD792A733BE3DA01),
+          UINT64_C(0x2DA07802CC61EFE1), UINT64_C(0x293AFB0857053A5D)},
+         {UINT64_C(0x3E7E48842FD8A8A0), UINT64_C(0x183FA5000B9B48D3),
+          UINT64_C(0x9CAC07BE431AACF6), UINT64_C(0x4F82D7992DF89F10)}},
+        {{UINT64_C(0xFD9F61A80A84935C), UINT64_C(0x78B948D0BB5A7E56),
+          UINT64_C(0xDA4787660ACCEEB3), UINT64_C(0x47BDAE4453C3851D)},
+         {UINT64_C(0x5AE2C60C0CFE8D0D), UINT64_C(0xAC8F79B31D8A79C9),
+          UINT64_C(0xA958C15E0A79CA31), UINT64_C(0x1C46E20EF0952018)}},
+        {{UINT64_C(0xAE552ECEF04AC529), UINT64_C(0xB295B601E2BFEFBC),
+          UINT64_C(0xECC1EE5554733412), UINT64_C(0x28BCBA5312282094)},
+         {UINT64_C(0x306C078150B25069), UINT64_C(0x10D5D23CE9A18FFE),
+          UINT64_C(0xC34FC5C71BD5489F), UINT64_C(0x2B610028E191867D)}},
+        {{UINT64_C(0x458A1CC13E17E84D), UINT64_C(0x6EAE343D5D7CFB98),
+          UINT64_C(0xC6E0FDAA101F0B7E), UINT64_C(0x0B9F7C2C2A023288)},
+         {UINT64_C(0xBEA893A86F3FCAA0), UINT64_C(0x7D711B2B452B07C0),
+          UINT64_C(0x2895873798E2C88D), UINT64_C(0x553A0180DFD99A2A)}},
+        {{UINT64_C(0x8D617BE80DBA5986), UINT64_C(0xDB763C1413D18594),
+          UINT64_C(0x822CB0DAD2DAD82F), UINT64_C(0x37ACD99F93239947)},
+         {UINT64_C(0x6A2A7070CDC08BE6), UINT64_C(0x86B3B66ACF6D63FF),
+          UINT64_C(0x5BEFF3FB0F7D4A67), UINT64_C(0x05C25557EBC94AE5)}},
+        {{UINT64_C(0x5D1DC08789183418), UINT64_C(0xA25C7AE26EA5A960),
+          UINT64_C(0x074698B9D31F3AAE), UINT64_C(0x5A5B510B221788A4)},
+         {UINT64_C(0x896A87871DCE95FE), UINT64_C(0x89E7B93D7F24020C),
+          UINT64_C(0xFC19BF42865B4334), UINT64_C(0x0389FBF75B78B06D)}},
+        {{UINT64_C(0x73B6DA7B0BB3A3E2), UINT64_C(0xDBC1267044D56755),
+          UINT64_C(0x7AF2DE287CC1C589), UINT64_C(0x7E248FCB697CB6B7)},
+         {UINT64_C(0x9410EC06C64202C0), UINT64_C(0x79C8215875EB3A8C),
+          UINT64_C(0x74FDD2F6E95C5EA9), UINT64_C(0x2A40B5B51CCA72C7)}},
+        {{UINT64_C(0x569842235C29E320), UINT64_C(0x8266392AE871D9E2),
+          UINT64_C(0x9D86C6C77B391763), UINT64_C(0x5E9E61E202543C9E)},
+         {UINT64_C(0xD62A9334D2501D1A), UINT64_C(0x9D19F54D9211135D),
+          UINT64_C(0x66D0B9618FE81272), UINT64_C(0x6E64635AD09C2033)}},
+        {{UINT64_C(0x93BD0AD806F84E11), UINT64_C(0x45F18F2B131AFDBF),
+          UINT64_C(0x881F053F6058EB37), UINT64_C(0x36B8D656948AD0D5)},
+         {UINT64_C(0x53DC2E02E1934E38), UINT64_C(0xA8AD5055C0435B6C),
+          UINT64_C(0x0DF7BD114BD7154F), UINT64_C(0x6350B05E73BC98FC)}},
+    },
+    {
+        {{UINT64_C(0x12AC549604BF927A), UINT64_C(0x9BB322DBE749323E),
+          UINT64_C(0xC10C666DF6D99AD6), UINT64_C(0x0FDF8FB34C883E0A)},
+         {UINT64_C(0x10667F92665272E8), UINT64_C(0xA30D4CE15BF8702F),
+          UINT64_C(0x56314B47A2D6033D), UINT64_C(0x09EC90D9DAC1A10E)}},
+        {{UINT64_C(0x364F06DDC9EB81D1), UINT64_C(0xFD181A564DC5CB76),
+          UINT64_C(0x91CF010CE264567C), UINT64_C(0x71D9A95BA05C02FC)},
+         {UINT64_C(0xAB5AFBA653967407), UINT64_C(0x3FC779139B0AA089),
+          UINT64_C(0xDF1D4912AF29EF02), UINT64_C(0x01C3D61C5796A0A5)}},
+        {{UINT64_C(0x11503A1CB376E8DE), UINT64_C(0x5CB17D6DB8B98321),
+          UINT64_C(0x96C9D585BD8FE9C2), UINT64_C(0x048C8DA7D117171D)},
+         {UINT64_C(0xDF7FABB8B582282A), UINT64_C(0x75C2A93724FD6BB7),
+          UINT64_C(0xDF0DBD3200633701), UINT64_C(0x04FB7AEC039B3E72)}},
+        {{UINT64_C(0xE60CCE960E20C09A), UINT64_C(0xAD295B31116E1C38),
+          UINT64_C(0xCA6B625DC04477D0), UINT64_C(0x032FE03BFFA32E36)},
+         {UINT64_C(0x46334FEEE2AAABC6), UINT64_C(0x9808B03CDA1C6871),
+          UINT64_C(0x76D0E3AAF934A482), UINT64_C(0x2B0BF54AF9CB8F97)}},
+        {{UINT64_C(0xB5D527172CA29D02), UINT64_C(0xF9DAEAFBDBEACF03),
+          UINT64_C(0x3786E64B113A3811), UINT64_C(0x6A01A1A55C30569D)},
+         {UINT64_C(0x0A91E160BA1C28B6), UINT64_C(0x5BFA32BA929D3F05),
+          UINT64_C(0x1108F87540C51084), UINT64_C(0x37FD238342FD5AE1)}},
+        {{UINT64_C(0xABF14EDE2A79BFB8), UINT64_C(0x08B34155AA34300C),
+          UINT64_C(0x85C0DFA064077041), UINT64_C(0x3AE5D28DF542D447)},
+         {UINT64_C(0xC303A0FEB74DC4FB), UINT64_C(0xB75292FA556E0B87),
+          UINT64_C(0x785628B051BDC64C), UINT64_C(0x43FE786E13C579F6)}},
+        {{UINT64_C(0xBC5898CB5F08790F), UINT64_C(0xA298A59A125644EC),
+          UINT64_C(0xD2D9627BB048217A), UINT64_C(0x6DCEEF327B1F23F7)},
+         {UINT64_C(0x7F02FC44FA7B9C6A), UINT64_C(0x90C6496073597BF7),
+          UINT64_C(0x5DD7E4F42CB0B3A2), UINT64_C(0x5EC5F92C43E83553)}},
+        {{UINT64_C(0xC06B4D4959E2C8E9), UINT64_C(0x7DBC82181DF8AD8B),
+          UINT64_C(0x35570120DAE8B6D7), UINT64_C(0x4222A1BA0CDE2691)},
+         {UINT64_C(0xD2F1EFA6C1693046), UINT64_C(0x2707228D7D36D9CD),
+          UINT64_C(0xD668EE25062D499C), UINT64_C(0x7AC81BDFCE2621A0)}},
+        {{UINT64_C(0x3A9F04BB16F6A215), UINT64_C(0x739BB2BC89E5494E),
+          UINT64_C(0xCB8DBAE8D1CEB043), UINT64_C(0x6B177DF009A6B465)},
+         {UINT64_C(0xB7C4980E1A529744), UINT64_C(0x3941B9970E9012B5),
+          UINT64_C(0xDF317B9504C6D677), UINT64_C(0x17898D81829F51D6)}},
+        {{UINT64_C(0x3D48FD66A12282BA), UINT64_C(0xB775465B899E5A1A),
+          UINT64_C(0xDE0CCB9955D95C35), UINT64_C(0x4CB3CCDD950AB9DF)},
+         {UINT64_C(0x0B4ABA02175C4CAE), UINT64_C(0x2DA7C698CF86187C),
+          UINT64_C(0x3A4453DF9A9BF6CA), UINT64_C(0x53C86F9C8BB9F543)}},
+        {{UINT64_C(0x806B815E5B7DB133), UINT64_C(0x2451D6AC118FA7C1),
+          UINT64_C(0x32C148B6FB0BEFC3), UINT64_C(0x2E6ECEF6E433031E)},
+         {UINT64_C(0x2B78F31754B2EE29), UINT64_C(0xBC321BF95A73BF01),
+          UINT64_C(0xDF6F7840F8F7F981), UINT64_C(0x751A917A22280C40)}},
+        {{UINT64_C(0x73EFA6314F9161C8), UINT64_C(0xB61C5E6821145C52),
+          UINT64_C(0x609477736A04DC52), UINT64_C(0x758E38FF2C2073B2)},
+         {UINT64_C(0xDC6FEA7303A54541), UINT64_C(0x5E77682CB6E65787),
+          UINT64_C(0xAFEF6C1C37370FD0), UINT64_C(0x33DEEF00D5AC255A)}},
+        {{UINT64_C(0x1AD81101061D35CC), UINT64_C(0xD55EED7D8A77D246),
+          UINT64_C(0x8D59DC22926E64C3), UINT64_C(0x76C9D6CEAFC6FFA6)},
+         {UINT64_C(0x945A89B53F4FCC0F), UINT64_C(0x65EB52CF9087F46A),
+          UINT64_C(0xC3380377AE9F09DE), UINT64_C(0x59067EDD43DFD5FB)}},
+        {{UINT64_C(0xCBB7BC66CF841445), UINT64_C(0x9ED681D3A3BE7C94),
+          UINT64_C(0xF5CF59BE396C6DD5), UINT64_C(0x2598A5DCFA763634)},
+         {UINT64_C(0xAD2B445A85CF4FDE), UINT64_C(0xC8CE3F42A0D92F4C),
+          UINT64_C(0x78356D5BF01CD0F5), UINT64_C(0x26E44A455D50C9D7)}},
+        {{UINT64_C(0x22EB53E34EDF35A5), UINT64_C(0xA0C6CDEFAF1A8A60),
+          UINT64_C(0x1D31BA2CD07C1EBD), UINT64_C(0x513511A0D2C2ADE1)},
+         {UINT64_C(0xBD3772D4C4449889), UINT64_C(0xAF5EF819D3F49C61),
+          UINT64_C(0xAAF2159940047745), UINT64_C(0x2128938CA54B8080)}},
+        {{UINT64_C(0x9761A94A73ADBEC8), UINT64_C(0x4710BBF01FB2F257),
+          UINT64_C(0xFE52603EB3920007), UINT64_C(0x663937507DE06F13)},
+         {UINT64_C(0x35F4E633965AC706), UINT64_C(0xF49DC41833F953E5),
+          UINT64_C(0x1562AD5131CFE467), UINT64_C(0x035FB54D8ADB1F7A)}},
+    },
+    {
+        {{UINT64_C(0xF632081FFD73062E), UINT64_C(0xB2740C19CB740B59),
+          UINT64_C(0x2DFD957F8751E315), UINT64_C(0x5722E015C21039C2)},
+         {UINT64_C(0x44781BFCA4E56D39), UINT64_C(0x894BD2F7DA2FBE63),
+          UINT64_C(0x9E81007B5DE22DE0), UINT64_C(0x0CED0859C68788FC)}},
+        {{UINT64_C(0x97DD8CF18DDA6292), UINT64_C(0x3E9191F727FCF7F1),
+          UINT64_C(0x07885E32DAA6AD44), UINT64_C(0x624CE66EBE9F7E62)},
+         {UINT64_C(0x0483DA421893A3D9), UINT64_C(0x1041B7EA8F2A105F),
+          UINT64_C(0x5B706F99429A24B9), UINT64_C(0x30BFBCEE167C12E1)}},
+        {{UINT64_C(0xEB2C7218C38251D8), UINT64_C(0x5FE5D8F6022B6411),
+          UINT64_C(0xF62200C193DCCB63), UINT64_C(0x2CF0F8F1CFF221E6)},
+         {UINT64_C(0xDCF1BCD69217EE42), UINT64_C(0x1904879C9DB2580B),
+          UINT64_C(0x2DDB7E5DF6510164), UINT64_C(0x7BB299858A0EAC6B)}},
+        {{UINT64_C(0x98313C0E0FCF8397), UINT64_C(0xB594D0B742C8EEF1),
+          UINT64_C(0xBD31FC3497E842F7), UINT64_C(0x49476B9D8F3ADB9B)},
+         {UINT64_C(0xD1B5FD3750B45445), UINT64_C(0x526C51CAD583A89F),
+          UINT64_C(0x5D461F096782C060), UINT64_C(0x414023EC27274A60)}},
+        {{UINT64_C(0x7C809B26EAE4285A), UINT64_C(0x939814BF0A066043),
+          UINT64_C(0x9CBAC0BB6C640E3D), UINT64_C(0x647E22E130EB1B86)},
+         {UINT64_C(0x21E2A42D3C7DFA0D), UINT64_C(0xFF8CC304E2CD0CCE),
+          UINT64_C(0x3DC8C9203496964C), UINT64_C(0x5D91FE782B4DF7C2)}},
+        {{UINT64_C(0xD5BBBD6E96D84346), UINT64_C(0x8363527BF91FFA8C),
+          UINT64_C(0x931D0FDA7F408588), UINT64_C(0x2C51F17BB0B19D0F)},
+         {UINT64_C(0x7A693804FF61C86D), UINT64_C(0xBAB4AC45B3FFD529),
+          UINT64_C(0xEDEA275F4C171C84), UINT64_C(0x0520925CD59B94D9)}},
+        {{UINT64_C(0xB6A620AAE8718BB4), UINT64_C(0x67851F0F88D37A61),
+          UINT64_C(0xCBEE8DBC9984A787), UINT64_C(0x7190B766AE834635)},
+         {UINT64_C(0x3A1D7DB4C9AC1A8E), UINT64_C(0x6EEBD5AD7B97BCB7),
+          UINT64_C(0x609786259D0AB769), UINT64_C(0x5AD56C0C7C7F02DD)}},
+        {{UINT64_C(0x2C0003DE2DB3B6F2), UINT64_C(0x3BE1CE3FEFCF1DD8),
+          UINT64_C(0xE2F79872379E6B8A), UINT64_C(0x3F9640D80B898094)},
+         {UINT64_C(0x11EBD93715B29D41), UINT64_C(0xD6A076B93EF17D8C),
+          UINT64_C(0x0A2C0016B38ED3BA), UINT64_C(0x64329A02CCB161CC)}},
+        {{UINT64_C(0xD135032DB1ED1DEA), UINT64_C(0x43F7684842F734A0),
+          UINT64_C(0x1F6C12BD3C18D8C5), UINT64_C(0x7D7757B7C0A304E8)},
+         {UINT64_C(0x3F0C2867DE3B6B9F), UINT64_C(0x72F98EBBB7201E4F),
+          UINT64_C(0xCC408000940E748D), UINT64_C(0x34FE6D8FAD74B322)}},
+        {{UINT64_C(0xA12A9359E6D884FE), UINT64_C(0xB080A081DE063103),
+          UINT64_C(0x672DE27D97ABB854), UINT64_C(0x712B0883EE6F3485)},
+         {UINT64_C(0xF430BF2D2044A2A2), UINT64_C(0x665610207D12027A),
+          UINT64_C(0x5ED63AD22C539C3B), UINT64_C(0x7982AAD0FE5EE1D1)}},
+        {{UINT64_C(0x873DC8F63BE94D26), UINT64_C(0x909236394B41BD76),
+          UINT64_C(0xE439A4960CBE4B5C), UINT64_C(0x424F8D2411782BF1)},
+         {UINT64_C(0x6612BD9949686ED9), UINT64_C(0x78157AA9FB04E27E),
+          UINT64_C(0x844E1616805F809C), UINT64_C(0x717AEB3262CB8BCD)}},
+        {{UINT64_C(0xE98C1A0E5248CF6A), UINT64_C(0xC84294A8B0E4ADF8),
+          UINT64_C(0xD35748A4A7769275), UINT64_C(0x2C3867E103363C82)},
+         {UINT64_C(0x2EC7AF438F43885A), UINT64_C(0x7979D1A23AE516C7),
+          UINT64_C(0x059939EC8B81056C), UINT64_C(0x434AA4DD7E358480)}},
+        {{UINT64_C(0x12EA1C874A5228EA), UINT64_C(0x47B481984D293B9F),
+          UINT64_C(0x319CE379E9696688), UINT64_C(0x7C9FF5957CE6FD05)},
+         {UINT64_C(0x15E954DF3093E3E4), UINT64_C(0xBC98307C304015AF),
+          UINT64_C(0x66522DF8975C69C5), UINT64_C(0x4C9EBFB3963CE892)}},
+        {{UINT64_C(0x1CEEF18A628FB125), UINT64_C(0xFB69A2344BF30BB6),
+          UINT64_C(0x510EB33970C9C864), UINT64_C(0x1EE9D1ED8A89151D)},
+         {UINT64_C(0x340940284EE1A486), UINT64_C(0x664401672FC79CEE),
+          UINT64_C(0xB597625AC7DA3A75), UINT64_C(0x6E5B920E65205AF9)}},
+        {{UINT64_C(0x749D0CA4D87C914C), UINT64_C(0x55ECBEBB0D60C59E),
+          UINT64_C(0x916A1127A65B4652), UINT64_C(0x503964D44E4767A3)},
+         {UINT64_C(0x8899A4C21B1F94D5), UINT64_C(0xEFFCAF5233E0D94D),
+          UINT64_C(0x61B89B3FA3DAD87D), UINT64_C(0x3CB455F55088D6BE)}},
+        {{UINT64_C(0x5088A52B70678C14), UINT64_C(0x212823D941B00FC3),
+          UINT64_C(0x38D5CEB619865BDB), UINT64_C(0x2E9C7FD712E63491)},
+         {UINT64_C(0x6656F91659E73913), UINT64_C(0x57AE9A47E9035A63),
+          UINT64_C(0x970DCF2BF02B8DAE), UINT64_C(0x3366F8A6950FF8A9)}},
+    },
+    {
+        {{UINT64_C(0x93DABD6FAC4A8F83), UINT64_C(0x272334881CFF0AAD),
+          UINT64_C(0xBCAC3181F500EDFB), UINT64_C(0x27C6DB15B5297515)},
+         {UINT64_C(0x9CD142D92F08A89F), UINT64_C(0x3C0054232EAD0A80),
+          UINT64_C(0x82845F9544A7623A), UINT64_C(0x5104707072BC4862)}},
+        {{UINT64_C(0x4303797ADC1B9159), UINT64_C(0x7842434B5D9C9AC1),
+          UINT64_C(0x8A36ED2D6009FE2E), UINT64_C(0x11FE35C95106429C)},
+         {UINT64_C(0xDF20A39323554A92), UINT64_C(0x59364A48932E37C2),
+          UINT64_C(0x6D7DE6AE7754A5DF), UINT64_C(0x00CCC6A3462725AC)}},
+        {{UINT64_C(0xB1F86CA5BAE83077), UINT64_C(0x82FE28A55110782C),
+          UINT64_C(0x8031BBF3D942182C), UINT64_C(0x4F1F3815410D9F83)},
+         {UINT64_C(0xE57F9907835ABA65), UINT64_C(0x0A8220C25AA10903),
+          UINT64_C(0x2E9847178812602E), UINT64_C(0x0AEC467D2A7D2C6C)}},
+        {{UINT64_C(0xC779F708C4DBED03), UINT64_C(0x10A30CD88582BD4E),
+          UINT64_C(0xFA5646C5243FEAEE), UINT64_C(0x1CFAF38ECA459EF7)},
+         {UINT64_C(0xCCDD014695BC8077), UINT64_C(0x4ECDE91965858C49),
+          UINT64_C(0x562764C677FEE1B6), UINT64_C(0x3CF5A3AB43524407)}},
+        {{UINT64_C(0x0CCEAADD0F6EF445), UINT64_C(0x690C12C1C297AFAF),
+          UINT64_C(0xD67AA6EAC15B3D7B), UINT64_C(0x445D233C9FF8884E)},
+         {UINT64_C(0xC38FFD096CAD3234), UINT64_C(0xA690FFD1C7002F6F),
+          UINT64_C(0xD445E85111ACB469), UINT64_C(0x64EE138097166E52)}},
+        {{UINT64_C(0x1EB031CCCEFBFB0A), UINT64_C(0x60F3DEF4AA40D6A9),
+          UINT64_C(0x240F7CA5F96FCAFE), UINT64_C(0x53AF2F10E4450A06)},
+         {UINT64_C(0xE8AF980FA84058EF), UINT64_C(0x3E30001734AFFC6E),
+          UINT64_C(0x62D1D094C86B458C), UINT64_C(0x5338383D75732C7E)}},
+        {{UINT64_C(0x6BD46AEB04D82638), UINT64_C(0x86940A3162E645A0),
+          UINT64_C(0xD025B4B1A5736B40), UINT64_C(0x1056D9D0924E8E5E)},
+         {UINT64_C(0x3D0495CC1DB58101), UINT64_C(0xC300C6E72D677581),
+          UINT64_C(0xFE38B898610AECEC), UINT64_C(0x1C8B94E2D66F64ED)}},
+        {{UINT64_C(0x5C9C3A3706D0C7EC), UINT64_C(0x6B4B5437B8A74918),
+          UINT64_C(0x85689C989052A235), UINT64_C(0x4F7C2C8D87B53AA6)},
+         {UINT64_C(0x9FCD866FD8F1D334), UINT64_C(0xDBAAA2276898223C),
+          UINT64_C(0x933DE9DA95C7B35A), UINT64_C(0x329AE20F3EA949FD)}},
+        {{UINT64_C(0xB83547AF948A2ECD), UINT64_C(0xEBF7C1E7BE34890C),
+          UINT64_C(0x5F0F44F3F8211C33), UINT64_C(0x14A10BDBC6927638)},
+         {UINT64_C(0x7FD885675B579BF5), UINT64_C(0xD7C712815B7417F0),
+          UINT64_C(0x7C04F1112083502E), UINT64_C(0x42029128E9AD6283)}},
+        {{UINT64_C(0x32FBFFAE2C5C0928), UINT64_C(0x4E31D3121469F1D3),
+          UINT64_C(0x17307E28D79F51A2), UINT64_C(0x546C91AF79A51EBD)},
+         {UINT64_C(0x041D464D668086A6), UINT64_C(0x4986BDE50DB695DB),
+          UINT64_C(0xCBA5F6EEEF317AA0), UINT64_C(0x5879259F730221D3)}},
+        {{UINT64_C(0xBD9C5CA5253BB4BA), UINT64_C(0xBBFC60790E2A75BB),
+          UINT64_C(0xB5F11AE367AB9033), UINT64_C(0x6411CB1EAC2BFAFE)},
+         {UINT64_C(0x750734FEBF5390B0), UINT64_C(0xA044BED4879A3D3D),
+          UINT64_C(0xE1E9F0E4A0C47093), UINT64_C(0x3BCAD93EB64DA48C)}},
+        {{UINT64_C(0xAFC6BCB6B37E16C2), UINT64_C(0xB54F56C02331B0CD),
+          UINT64_C(0x725E81B45BBFBEE7), UINT64_C(0x2AE0C039E8B9D922)},
+         {UINT64_C(0x85301041DB958319), UINT64_C(0xDFAE34DD0681C4A4),
+          UINT64_C(0x906C9219CBF7BB2B), UINT64_C(0x1463E9EF10A1710A)}},
+        {{UINT64_C(0x41E6C38821E6FC9D), UINT64_C(0x0B629A1E24A39EC8),
+          UINT64_C(0xC62F60BE1AEF7A46), UINT64_C(0x59A50B54C5A16B6E)},
+         {UINT64_C(0x41CA367A285B891E), UINT64_C(0x70A6CE6BE2F8AF59),
+          UINT64_C(0x74058747CBCEEF98), UINT64_C(0x4B912170601C375F)}},
+        {{UINT64_C(0x7D975CE2734EE866), UINT64_C(0x8D3572C6A09F5F14),
+          UINT64_C(0x1DB4CC882232EE5E), UINT64_C(0x6C9790497C04C250)},
+         {UINT64_C(0xB5EC7706AE1EBC20), UINT64_C(0x7BDBD34DE21AAA32),
+          UINT64_C(0xAD4125FDC5D1C733), UINT64_C(0x28B0302D731E6B09)}},
+        {{UINT64_C(0xD68EEC491521415E), UINT64_C(0x31963424092763C0),
+          UINT64_C(0xCA90F48D0BFB513B), UINT64_C(0x4814DDFF573A056A)},
+         {UINT64_C(0x7E67599C400E804D), UINT64_C(0x3545275051FD0596),
+          UINT64_C(0x45EDD7FBDB331B66), UINT64_C(0x172DA8B3BDEDE107)}},
+        {{UINT64_C(0xD46F284CB5BEB1C8), UINT64_C(0x5DE5D3F17B125701),
+          UINT64_C(0xC3BA591E248053D1), UINT64_C(0x4E67F1F29C8F487C)},
+         {UINT64_C(0x380D93E48C252EC5), UINT64_C(0x913F96F122BC5CF6),
+          UINT64_C(0xC1F06BBDD7BAA634), UINT64_C(0x7B625179A30BF1B9)}},
+    },
+    {
+        {{UINT64_C(0x125D398DABD424AC), UINT64_C(0xFE65DF039CC70479),
+          UINT64_C(0x89A31794FB5EC82C), UINT64_C(0x63EFFB55A31C5DCA)},
+         {UINT64_C(0x948F7571045B576A), UINT64_C(0xEC9F6FAB022B5FC8),
+          UINT64_C(0x174DC936BD9F0DD2), UINT64_C(0x5EEA65E6F4C4EE8B)}},
+        {{UINT64_C(0xE97070AE8B800D67), UINT64_C(0xB9CB66FAB59B433E),
+          UINT64_C(0xC4496574C6141364), UINT64_C(0x530AA9B56A9677EA)},
+         {UINT64_C(0x4A4E2EE375200533), UINT64_C(0x4C38A5090F20A9BE),
+          UINT64_C(0x0A6FFBA4EA683510), UINT64_C(0x7340EFEE65732EA9)}},
+        {{UINT64_C(0x3A5612E4E41C2B43), UINT64_C(0x31F51B80FCB5C0A8),
+          UINT64_C(0x4C5BBA64BD1F03E6), UINT64_C(0x253872433694ADCA)},
+         {UINT64_C(0xF114EFAF1F7E4D5C), UINT64_C(0xBEA5223A4EA3A59D),
+          UINT64_C(0x82CEF46F67EB414D), UINT64_C(0x09D351C19B6CAC3D)}},
+        {{UINT64_C(0xC69F25CE810F5054), UINT64_C(0xE33E5E97548A2CDF),
+          UINT64_C(0x20B3F44236946D3C), UINT64_C(0x572C0F5C65DF2D3B)},
+         {UINT64_C(0xFC5B2DF3CC953CC8), UINT64_C(0x934D54C0D1CCADC6),
+          UINT64_C(0x828A906EA6E7B4DB), UINT64_C(0x610D36C15AD3076F)}},
+        {{UINT64_C(0x960B0A0174F56E27), UINT64_C(0x9942C6ACCF3FEA75),
+          UINT64_C(0x2E4D786D82C51490), UINT64_C(0x23A516369A4749C9)},
+         {UINT64_C(0xD86AB36A2F7560FC), UINT64_C(0xDA66B49DDDB852A9),
+          UINT64_C(0x84E1587D544C1023), UINT64_C(0x7AB8BC696AA3C1DA)}},
+        {{UINT64_C(0xFD0397AFA5F30701), UINT64_C(0x96FFB15DDFC8B187),
+          UINT64_C(0xF2C864531475E520), UINT64_C(0x71521986EF37300E)},
+         {UINT64_C(0xD81F75A868006D45), UINT64_C(0xDF7814EACBC06D4D),
+          UINT64_C(0x5BCF959B2E8E9150), UINT64_C(0x146D37D756668C18)}},
+        {{UINT64_C(0x1ABD731288E8DC77), UINT64_C(0x0B34B877C1C3A4DB),
+          UINT64_C(0x85739093F844BACE), UINT64_C(0x5DEDCF8F04A7CF80)},
+         {UINT64_C(0xD8BB237ED87CDBDC), UINT64_C(0x89852174CCBA784F),
+          UINT64_C(0x6843BAB8B2FAECC3), UINT64_C(0x15268302AA4BBA32)}},
+        {{UINT64_C(0x3B58225AB23D3770), UINT64_C(0x9357EB5910CC9DE6),
+          UINT64_C(0x8665F92A42ECF80E), UINT64_C(0x4819CC9DC875C031)},
+         {UINT64_C(0x09CBE5D8C34B979B), UINT64_C(0x161E8AC07E1D0E63),
+          UINT64_C(0x874DF24F282E36E8), UINT64_C(0x6528E6FA0712A0CD)}},
+        {{UINT64_C(0xE37AD786107633E4), UINT64_C(0x122D7123CF1FE646),
+          UINT64_C(0x1E6E682BCFA93AC0), UINT64_C(0x0A25F4EE276200DB)},
+         {UINT64_C(0x44E290EDE25FBB01), UINT64_C(0x3E392DF5C3C1B418),
+          UINT64_C(0xE5E1574583EBE689), UINT64_C(0x016139D24B999926)}},
+        {{UINT64_C(0x048915B065D7DA58), UINT64_C(0x6EF7C4EFA78F3D9E),
+          UINT64_C(0x78CCCE55AD614974), UINT64_C(0x43DB7DA054B95643)},
+         {UINT64_C(0xFC423B70E53F1A67), UINT64_C(0x8F8BED814EFE2427),
+          UINT64_C(0xF5D6AD5F95B045EB), UINT64_C(0x23582D5DD7407716)}},
+        {{UINT64_C(0x9E5D24FB9F674472), UINT64_C(0x1AE1863668626041),
+          UINT64_C(0x8977E68F7ABC4380), UINT64_C(0x7D9FF8E805AF2D04)},
+         {UINT64_C(0x9D31195F4197C4E1), UINT64_C(0x9F3F6E114400F35E),
+          UINT64_C(0x1A87D5867BBEF801), UINT64_C(0x42AE0380952BB025)}},
+        {{UINT64_C(0xC6A3ED756B96482B), UINT64_C(0x58B38724A9C6DD2F),
+          UINT64_C(0x464C8CE89297FB47), UINT64_C(0x0245797EFB6D6C55)},
+         {UINT64_C(0xBE141C80C0B58C8F), UINT64_C(0xC4C405CB77766C48),
+          UINT64_C(0xD57EE428D10C0F31), UINT64_C(0x03D4862B50E8FE7B)}},
+        {{UINT64_C(0x21976F8A1DC3722C), UINT64_C(0x02EC30D55F476F0D),
+          UINT64_C(0xD711E01DCA434B06), UINT64_C(0x551AC91099FF2488)},
+         {UINT64_C(0x24AEC72DA56CA3C7), UINT64_C(0x2DD1219A891896CE),
+          UINT64_C(0xD84BAD1967882925), UINT64_C(0x27E65D7F9D4778EF)}},
+        {{UINT64_C(0x09F19C8F4685687F), UINT64_C(0xB7C7B9E3BBB58BD3),
+          UINT64_C(0x349D03A78FA34DD5), UINT64_C(0x41F9D0038D59E889)},
+         {UINT64_C(0xCF3367D42B3ED6FA), UINT64_C(0xCF3C6715378DA1ED),
+          UINT64_C(0x86DC39034E935E9A), UINT64_C(0x50692CFFF08CB23A)}},
+        {{UINT64_C(0x18CA772AC2D65C87), UINT64_C(0xC9092B384F1D0CB6),
+          UINT64_C(0x91E71CF1BBD2015A), UINT64_C(0x4A09DAAC4F3DEF26)},
+         {UINT64_C(0x7CCA7B4A735C9281), UINT64_C(0x2028F1441BF0AAEE),
+          UINT64_C(0xCF72A082ACB5B748), UINT64_C(0x58957D5D43299B85)}},
+        {{UINT64_C(0x64BB164E901F1789), UINT64_C(0xC68766E65AEF97BF),
+          UINT64_C(0x30ECA3E2942B6DCE), UINT64_C(0x632676FAF9E798F3)},
+         {UINT64_C(0xB52533D3F13896EE), UINT64_C(0xAD9128312D8A29C1),
+          UINT64_C(0x12F1B9A4BC14E7FF), UINT64_C(0x4E1D23FD8828D196)}},
+    },
+    {
+        {{UINT64_C(0xC4F89E00EF494793), UINT64_C(0xA6044BC3C93D2F55),
+          UINT64_C(0x68E60B588797F8AF), UINT64_C(0x4D5969FA841E4B5E)},
+         {UINT64_C(0xB1EE70FBD759BB2D), UINT64_C(0x9AC3043366D8AD01),
+          UINT64_C(0xD93F23DB84E9F677), UINT64_C(0x2AD9D16FC53029A4)}},
+        {{UINT64_C(0xD01FC16BDD882D23), UINT64_C(0x3BF921F1FA5B4128),
+          UINT64_C(0x3D3FE145235BC9CE), UINT64_C(0x5955671662E686E1)},
+         {UINT64_C(0xE329A7C279F99D69), UINT64_C(0xA67EF5ECA4F5F5F5),
+          UINT64_C(0xF96A41EED5A34FF0), UINT64_C(0x09D0CF0674674B5F)}},
+        {{UINT64_C(0x8CCDF71C6135B7E2), UINT64_C(0x91F1E33EAFB6AD6B),
+          UINT64_C(0xC452F439DB0CFEDF), UINT64_C(0x15724711C05B06D4)},
+         {UINT64_C(0x5FEE0E0EA3BC1277), UINT64_C(0xD6847FAD8D8BA081),
+          UINT64_C(0x8B02666C0D4C8DDD), UINT64_C(0x149E5009C35559DB)}},
+        {{UINT64_C(0xB4D0D2C95461D9CA), UINT64_C(0xFE7993B6CE0A3973),
+          UINT64_C(0x42B2A500D6032E95), UINT64_C(0x4DEEE35A217131C6)},
+         {UINT64_C(0x94E65C8CFFE7C2EB), UINT64_C(0x0DAD7785B19D4B4A),
+          UINT64_C(0xEEBA6794925613F9), UINT64_C(0x6AF45BBEE30494CB)}},
+        {{UINT64_C(0x41352A6132F43F67), UINT64_C(0x0D218DE948F886D3),
+          UINT64_C(0xCDFC0C559B33B0F6), UINT64_C(0x21FC63536C5B90CD)},
+         {UINT64_C(0x5D8CA5AD7898AFF2), UINT64_C(0xA743F80E24287C30),
+          UINT64_C(0x4D0371319084A3A2), UINT64_C(0x52041EEDB5EFC978)}},
+        {{UINT64_C(0x80B588EECC1BCFCB), UINT64_C(0xAD871A11E5CE0035),
+          UINT64_C(0xF47224D0F966D746), UINT64_C(0x5215A9D2B387FCC2)},
+         {UINT64_C(0xC54EB2E7695C02AF), UINT64_C(0x36FD06BCDFC8493D),
+          UINT64_C(0x1CE8A9AA98CE7C76), UINT64_C(0x058DFCBF644D398B)}},
+        {{UINT64_C(0xCD7E67DC5BB81464), UINT64_C(0xE7A19301047A7789),
+          UINT64_C(0xCCC31EE5573E837B), UINT64_C(0x25EE99AFAF7703D5)},
+         {UINT64_C(0x34FDD6DADDB3E807), UINT64_C(0x273D8288109092DD),
+          UINT64_C(0xF8F2464FB7357633), UINT64_C(0x26B2CBADCCAA31D5)}},
+        {{UINT64_C(0xBA9CFEDEF707F9F7), UINT64_C(0xA9A6896CAC4975FB),
+          UINT64_C(0x62135D9DBB1C35E4), UINT64_C(0x13AE840FCBA133D2)},
+         {UINT64_C(0x6ABF39134C2BA3A9), UINT64_C(0xE4D8508A6D8A62C1),
+          UINT64_C(0xF256535466D96607), UINT64_C(0x5C368CCEB6CABAE8)}},
+        {{UINT64_C(0x0C3B52E88B3999BB), UINT64_C(0xB752E28FEF691871),
+          UINT64_C(0xA0460ABCF17D0D2D), UINT64_C(0x7DDCE3C1B7741F2C)},
+         {UINT64_C(0x076A6BAB3673000F), UINT64_C(0xCDB1CD2B425E8A9D),
+          UINT64_C(0x357FCFFF2606EAB5), UINT64_C(0x308644F8035DE7B4)}},
+        {{UINT64_C(0xBA64A1276D6FF45E), UINT64_C(0x1F52B6AE6B0C3CEF),
+          UINT64_C(0x91295179CBF496CB), UINT64_C(0x2B986FADA1B12BE4)},
+         {UINT64_C(0x243D236644DBAF57), UINT64_C(0x48E22BBA346E88C2),
+          UINT64_C(0xCDFB79578BBAFA0D), UINT64_C(0x094ED36E0D70670E)}},
+        {{UINT64_C(0x2BAD1539A0D60407), UINT64_C(0xC1A9286E6E744111),
+          UINT64_C(0x6D08C0DB81A6DCAA), UINT64_C(0x108F35EC80AFB34F)},
+         {UINT64_C(0xBE79A6E31E3E34AE), UINT64_C(0x206EAA2816D524E5),
+          UINT64_C(0x563B6E1C344ABA64), UINT64_C(0x6C362A613207CA68)}},
+        {{UINT64_C(0x04D8145BEF9A9A0F), UINT64_C(0x8B57559BA15B6247),
+          UINT64_C(0x72D53570303AFBF3), UINT64_C(0x01C36B41D6DB5736)},
+         {UINT64_C(0x94D583C91173B5FA), UINT64_C(0x71F8E12D013C8AAA),
+          UINT64_C(0xA4B5A532F29CB838), UINT64_C(0x4B1797007CE4EBA4)}},
+        {{UINT64_C(0x69CFA7B00CE86FC3), UINT64_C(0x3705D7C0D60E076C),
+          UINT64_C(0xB1A1464AB1091E10), UINT64_C(0x097945A97FE80950)},
+         {UINT64_C(0xD9C71A959AA381E3), UINT64_C(0x2A929073A410FF56),
+          UINT64_C(0x79EF8353F0FEB121), UINT64_C(0x1437C4B05F3107E5)}},
+        {{UINT64_C(0xC5128C8B621DB2E5), UINT64_C(0x4E9C9B2E51A9499A),
+          UINT64_C(0x11535880D8CD7594), UINT64_C(0x35A26F59B0697C07)},
+         {UINT64_C(0xAB3F4B75C43B624E), UINT64_C(0x69F82105B8E03E6B),
+          UINT64_C(0xFB268288FB04E036), UINT64_C(0x6A5E6BD3A0BDB41C)}},
+        {{UINT64_C(0x8C716A1AC8082916), UINT64_C(0xB1D1B1524592472C),
+          UINT64_C(0x63657A6D3AB6938A), UINT64_C(0x44882EB6F03214AE)},
+         {UINT64_C(0x19575B8AC615AF7D), UINT64_C(0x14D740C135EE3D98),
+          UINT64_C(0xBC478E8957768D2D), UINT64_C(0x30CC8FA213FC5E4C)}},
+        {{UINT64_C(0x705607C54EBE1E7C), UINT64_C(0x631E5B88284EDA2B),
+          UINT64_C(0x07E9E39C07F54DDB), UINT64_C(0x4E554D888DCF6BC5)},
+         {UINT64_C(0x12E9FB200CBAB0FE), UINT64_C(0x6F3BC7CEBA5E007F),
+          UINT64_C(0xA770BA1DBC871DF6), UINT64_C(0x541AA4C6FE01142C)}},
+    },
+    {
+        {{UINT64_C(0xBFE26700F2412EC7), UINT64_C(0x0E975796CFE96AF4),
+          UINT64_C(0x7D30BF7CDD6B04F7), UINT64_C(0x5421925DF1D8FCE4)},
+         {UINT64_C(0x1CF5E9F5EC709107), UINT64_C(0x124FCFC2B4580AA9),
+          UINT64_C(0x02F7012B67A835B3), UINT64_C(0x753FE01B47C0760F)}},
+        {{UINT64_C(0x82FD5D47B1D2A896), UINT64_C(0x7EABC17554E75DDB),
+          UINT64_C(0x724FC3A81AB080BC), UINT64_C(0x363D6016A75C31DD)},
+         {UINT64_C(0x5D465FF2863F308F), UINT64_C(0x9EC70664E515ADCB),
+          UINT64_C(0x4BD7A1A2B3BC206A), UINT64_C(0x2022576C4A167D34)}},
+        {{UINT64_C(0xF5AC34515CD6AC65), UINT64_C(0x7629731E5839F554),
+          UINT64_C(0xA3260AE393545A60), UINT64_C(0x49D190E8A7AD1979)},
+         {UINT64_C(0x5AA8492FF0B35045), UINT64_C(0x4A5FAB7B2584E651),
+          UINT64_C(0x5A05420E395E2AAE), UINT64_C(0x30613C78547B4038)}},
+        {{UINT64_C(0x47E1C59DF9DAE7E6), UINT64_C(0x8D68839B247A5A9D),
+          UINT64_C(0x663B5977C1A80D5E), UINT64_C(0x5E51F87240D8CF32)},
+         {UINT64_C(0x88ADBF9EECE49494), UINT64_C(0x40B4AC5C1792BAE8),
+          UINT64_C(0x278200D19A1B3314), UINT64_C(0x7D15320ED9F83584)}},
+        {{UINT64_C(0xFE6DAA74EAF2BFF8), UINT64_C(0x6E4EE4C0C156AA6B),
+          UINT64_C(0xD9310FF8D0F4E7D5), UINT64_C(0x552EEF9E7BB0C42D)},
+         {UINT64_C(0x323FF6F1FDC69E1A), UINT64_C(0x00FA66B741D79365),
+          UINT64_C(0x0006B16EA96B22B4), UINT64_C(0x71BBC653D20F07BE)}},
+        {{UINT64_C(0x89A7B7EEA440FA1C), UINT64_C(0x52BB5278757CD658),
+          UINT64_C(0xC5906F4BB0CDDEA4), UINT64_C(0x66AAAFEE5DE2D8DA)},
+         {UINT64_C(0x4D5E016A53B6E226), UINT64_C(0xA2F73DC61993A1D7),
+          UINT64_C(0x7CDD4C1DA09DD554), UINT64_C(0x6F723079AB416627)}},
+        {{UINT64_C(0xE641639EC4E5C4AF), UINT64_C(0x8BC6100D371CC648),
+          UINT64_C(0x7BD161B19B216E8A), UINT64_C(0x58098AEBF810DB32)},
+         {UINT64_C(0xEE52BB465AD92372), UINT64_C(0x4B2C48E1EEF938CA),
+          UINT64_C(0xE8FDE4D6AB43A5D0), UINT64_C(0x459274CDA5284C83)}},
+        {{UINT64_C(0xA98925B0D015095D), UINT64_C(0xC8969F5F4611A1A5),
+          UINT64_C(0xBDDCD62F2CE4663B), UINT64_C(0x1C9D9007A076C8BE)},
+         {UINT64_C(0xE8DE8890749F7BE5), UINT64_C(0xC9E455E7FF208E75),
+          UINT64_C(0xDCEE17A98F5FAC9A), UINT64_C(0x776B72D368A3A666)}},
+        {{UINT64_C(0x28C7D648FEE0E89A), UINT64_C(0x621B370F463AF60D),
+          UINT64_C(0x9DC1548E5ADC8ACD), UINT64_C(0x48032ACFA0B49504)},
+         {UINT64_C(0x146C6EAC85E992D5), UINT64_C(0x5A2CB5775CB491E0),
+          UINT64_C(0x669DD6D4454C120A), UINT64_C(0x3431AB3398203C39)}},
+        {{UINT64_C(0xE87615039DE017BF), UINT64_C(0xAB117D2FB60AE61F),
+          UINT64_C(0x0846463F827937FF), UINT64_C(0x45E6BD406BD89C65)},
+         {UINT64_C(0x3160AD67A613BDB8), UINT64_C(0xBD5266F3B8714A49),
+          UINT64_C(0xF7D29C4751A233E4), UINT64_C(0x6887B48D4DE6A90C)}},
+        {{UINT64_C(0x087290A5DFDE1EF8), UINT64_C(0xC70CCB52A166950A),
+          UINT64_C(0xAA7F095B4A170AAE), UINT64_C(0x15301F4E5517CA0B)},
+         {UINT64_C(0x3C86B787302F1F84), UINT64_C(0x95D4153544676E39),
+          UINT64_C(0xBFEC4AE39DF5F751), UINT64_C(0x4A0D3986304923D3)}},
+        {{UINT64_C(0x70FAABA979B1390C), UINT64_C(0xA9067EEE62BA8B9E),
+          UINT64_C(0x987895031E17DF6F), UINT64_C(0x5997E8AE78D5B295)},
+         {UINT64_C(0x31E13AD7AE0C6768), UINT64_C(0x23262F05EF17A7B1),
+          UINT64_C(0x1580322749B7B101), UINT64_C(0x1234A9C536B5BA70)}},
+        {{UINT64_C(0xED65C961395793AC), UINT64_C(0x01157CD8CCDE1C47),
+          UINT64_C(0x0D0240B01D5614DF), UINT64_C(0x0F0DA1EF568E83A5)},
+         {UINT64_C(0x57C90846C0B783C1), UINT64_C(0x4501048C81E2F613),
+          UINT64_C(0x03D8A69BA2709DC1), UINT64_C(0x06F365C4A97CCE0E)}},
+        {{UINT64_C(0xEAF23159551580CD), UINT64_C(0x0F1E586A053DD5EE),
+          UINT64_C(0xEB7A78DD3CBCC3D5), UINT64_C(0x39BBC65AB014B850)},
+         {UINT64_C(0x13DA4E8579B61AC7), UINT64_C(0x33E78DCF0DA59E37),
+          UINT64_C(0x4E65AF252A643C4C), UINT64_C(0x0DC38C9708869D03)}},
+        {{UINT64_C(0x2B648345A3A38837), UINT64_C(0x2FA6D8F7905E261D),
+          UINT64_C(0xA23BD78666A14946), UINT64_C(0x781633FD5E01CC9A)},
+         {UINT64_C(0xB1352709E2C71AD1), UINT64_C(0x9D74505283A6D365),
+          UINT64_C(0xD88B5CAE66567032), UINT64_C(0x27FC40DF53D875CA)}},
+        {{UINT64_C(0xB254E54C47F7554F), UINT64_C(0x33AD0ED6D708614D),
+          UINT64_C(0x830566A376CE908D), UINT64_C(0x73DF94BDAA1ADD5C)},
+         {UINT64_C(0x23EC411F2DBDD8A3), UINT64_C(0x9BA473383A979FDC),
+          UINT64_C(0x56A2C27FC667E9F7), UINT64_C(0x295647C7427E6BFB)}},
+    },
+    {
+        {{UINT64_C(0x9B5F4652F8E48C13), UINT64_C(0xE979034F9EEF4BA3),
+          UINT64_C(0xF95FD7767CF5AF6E), UINT64_C(0x4236C47E506CEB46)},
+         {UINT64_C(0x0C02A249E08D2312), UINT64_C(0xAA5A38CCC056499A),
+          UINT64_C(0xCB26A8E27C188B64), UINT64_C(0x38FB961D0AE373D5)}},
+        {{UINT64_C(0xEB179C9E7B23470D), UINT64_C(0xAE70102F1EBC44E7),
+          UINT64_C(0x8184C1D492E0EED0), UINT64_C(0x329882815C21BF08)},
+         {UINT64_C(0x469589678180D11E), UINT64_C(0xEBD5518C7FD7278D),
+          UINT64_C(0xFCEB7F68AD2B74F7), UINT64_C(0x082D2011F9C7B6DA)}},
+        {{UINT64_C(0x65D5AED1BBE0299D), UINT64_C(0x0077F756CF565A0A),
+          UINT64_C(0xD44FCD6B344BB90D), UINT64_C(0x6C2A19C0536F3F25)},
+         {UINT64_C(0x32EE7439BB2A4D91), UINT64_C(0xA97E677AED9351E1),
+          UINT64_C(0x6752EDCF413A16E0), UINT64_C(0x5DE1B0C71CE4FBE6)}},
+        {{UINT64_C(0x6C10DA15D6009B36), UINT64_C(0xAAD05F4FE5D8CFBE),
+          UINT64_C(0xD8BCE0B431D58B76), UINT64_C(0x08DE344E27B2811B)},
+         {UINT64_C(0xD9A78AAE80B51E48), UINT64_C(0x1E1D0A813E41C63A),
+          UINT64_C(0x844376DE8076B3C7), UINT64_C(0x73F0D4A35FDF9D53)}},
+        {{UINT64_C(0xF1532922558C7719), UINT64_C(0x0F10188AA8221197),
+          UINT64_C(0x51A97E5F5DDC1716), UINT64_C(0x0F583A9B444789E7)},
+         {UINT64_C(0xAA8FC58D97D63B87), UINT64_C(0xA5AF048B1CFDA59C),
+          UINT64_C(0x2A4A0C5F2DDB34EB), UINT64_C(0x66C0F0C7701E2E07)}},
+        {{UINT64_C(0xC0BC88B836BE2ABF), UINT64_C(0x265CCE745C721B85),
+          UINT64_C(0x483EBB01D54299BA), UINT64_C(0x18F11CBE348ED89E)},
+         {UINT64_C(0x5E9AE7B9E42129D4), UINT64_C(0x6B3E9E8D81DE5B77),
+          UINT64_C(0xB3ADBAC97A14A74A), UINT64_C(0x1B6CEBB20003B266)}},
+        {{UINT64_C(0xD4D4DD1015EB200E), UINT64_C(0xEEAEA4C6FB87C57B),
+          UINT64_C(0x48F0B95772FF6321), UINT64_C(0x187C4B75B782B01D)},
+         {UINT64_C(0x3DC1AACDE9B4D622), UINT64_C(0x0358418E3F4ED519),
+          UINT64_C(0x981A24F8773D019C), UINT64_C(0x6643CA913DB0B4F4)}},
+        {{UINT64_C(0xE3254F4BD47670E3), UINT64_C(0x9822612530B1DDE9),
+          UINT64_C(0x61EB6C86DA8AF160), UINT64_C(0x725C771618363269)},
+         {UINT64_C(0xB051DC9F02F62462), UINT64_C(0xFF8C9EDF00AC5531),
+          UINT64_C(0x3909C79B962A92A3), UINT64_C(0x25C90D9327790237)}},
+        {{UINT64_C(0x0A5DF2CC88ADC475), UINT64_C(0x48D26967E5D27D0A),
+          UINT64_C(0x21D5F616359FF194), UINT64_C(0x38ACD14189977CE2)},
+         {UINT64_C(0x39B9BD92FDAA8ACB), UINT64_C(0xDB157DF2035B62D0),
+          UINT64_C(0x4E33386EB7D252D9), UINT64_C(0x6BD2E33FCF196258)}},
+        {{UINT64_C(0xE0806297CE8F10C5), UINT64_C(0x446AFD6D8A14B746),
+          UINT64_C(0xD7931F29BF566190), UINT64_C(0x4D9CFBFA86FDB72A)},
+         {UINT64_C(0x7752885195009F63), UINT64_C(0x5FE5013434C0FF45),
+          UINT64_C(0xC38CABBB6E134B81), UINT64_C(0x2E60B277E36DB037)}},
+        {{UINT64_C(0xA614CF6757184CA5), UINT64_C(0x6CBD8D6325BE01E3),
+          UINT64_C(0xE313EE8DA0030BE3), UINT64_C(0x69AF03992B1E7C60)},
+         {UINT64_C(0x519ABFBB50423F30), UINT64_C(0x200111FF486B9519),
+          UINT64_C(0x6FF93CCB3351F692), UINT64_C(0x32EB3E543ED9BE71)}},
+        {{UINT64_C(0x0851ACB954052EBD), UINT64_C(0x3A389B7B6D2336D7),
+          UINT64_C(0x50A8792517C6ACD9), UINT64_C(0x031FE845B807D9B1)},
+         {UINT64_C(0xA348BB01E22F7492), UINT64_C(0x9547ED3605F39661),
+          UINT64_C(0x97DF675668EC4AC2), UINT64_C(0x5836FEFE85B7F81B)}},
+        {{UINT64_C(0x4E4869A65F0B2ACB), UINT64_C(0xC4798F3FDEC46001),
+          UINT64_C(0x281A4ED600903474), UINT64_C(0x04F22E9DEFB9AABD)},
+         {UINT64_C(0x2AC92264FAA721A4), UINT64_C(0xBCE2FF0B276F8041),
+          UINT64_C(0x5F605607E4943926), UINT64_C(0x388C5FAB55506DF7)}},
+        {{UINT64_C(0xFF104F6DAB5687E2), UINT64_C(0x1B6DAFE93B2D0245),
+          UINT64_C(0x6405C02681B2EC4B), UINT64_C(0x2B7676DAF489EBBC)},
+         {UINT64_C(0xBAA158F06DA1F57A), UINT64_C(0x9CB044AD27A8457F),
+          UINT64_C(0xC23737A5A3BBD6C9), UINT64_C(0x71FB5B471D2267E1)}},
+        {{UINT64_C(0x779BD825D14F56E4), UINT64_C(0xD7E672A008396F23),
+          UINT64_C(0x23FE3FC0D40BA6EE), UINT64_C(0x41E749E73B56A3AB)},
+         {UINT64_C(0xD19471CE72042F67), UINT64_C(0x8A686DA74989D4D7),
+          UINT64_C(0x52A709C64FA09BC9), UINT64_C(0x1DC21162B3B6AA64)}},
+        {{UINT64_C(0x62C9838BF9B3BD1D), UINT64_C(0x1EE59E5A0CE6384C),
+          UINT64_C(0xA9F5ABF6ECE8CC7F), UINT64_C(0x1961D80F80BDDA83)},
+         {UINT64_C(0x7A40880CCA406FB1), UINT64_C(0x5035D307DFBCE2E4),
+          UINT64_C(0x590259E03D637299), UINT64_C(0x1607AC9FD6C34E05)}},
+    },
+    {
+        {{UINT64_C(0x4ABC27109D818B72), UINT64_C(0x2496CEA6092607B7),
+          UINT64_C(0xFB1087E1055C4EC8), UINT64_C(0x50A30C6A258ADC7D)},
+         {UINT64_C(0xAF4EB6B30FF502E3), UINT64_C(0x5D5D76AD190607AB),
+          UINT64_C(0xC9C9B71134482C13), UINT64_C(0x574A971842213696)}},
+        {{UINT64_C(0x7C90FAFD7018FC70), UINT64_C(0x36A045592B83291C),
+          UINT64_C(0x6120B51E40D1B175), UINT64_C(0x45F10B203DCF9606)},
+         {UINT64_C(0x3C6A9EFFF20C5636), UINT64_C(0xB2768BA3FFBBC648),
+          UINT64_C(0x1C9DF90AB523B36C), UINT64_C(0x4148BF06D6FF34ED)}},
+        {{UINT64_C(0x3D29821A3B5F9492), UINT64_C(0xAE12C78290B24561),
+          UINT64_C(0xEF6FB2778A3BDC5F), UINT64_C(0x6034BF3BAC3BD74E)},
+         {UINT64_C(0x131D57CD4ACB6F85), UINT64_C(0xDED1C4333BE79B31),
+          UINT64_C(0xB091348978A896B8), UINT64_C(0x1247C0B7B287862C)}},
+        {{UINT64_C(0xEB6428937C494054), UINT64_C(0x7922793022142D26),
+          UINT64_C(0x8F1C8371943E8398), UINT64_C(0x583C7AEF60886DB7)},
+         {UINT64_C(0xAFE460223A12EE0E), UINT64_C(0xE9C9253AB6CB8685),
+          UINT64_C(0x5334F9DD6316A4C6), UINT64_C(0x4E2F13D8E6F1DEE9)}},
+        {{UINT64_C(0x7499A5B4B37D8BA5), UINT64_C(0xA12AA6371C9BCDE2),
+          UINT64_C(0xCC99471DBFD6AE86), UINT64_C(0x0996637892048D63)},
+         {UINT64_C(0x42CBFA9D552E71A3), UINT64_C(0x84A8B153675C1716),
+          UINT64_C(0xB9C07C0E4CF00A7D), UINT64_C(0x32E2322B0DA504DB)}},
+        {{UINT64_C(0x569F581FE671EE59), UINT64_C(0x293522D7422E86C7),
+          UINT64_C(0x5E4CEA7E15DCEF10), UINT64_C(0x67C8A9FC483C0FE3)},
+         {UINT64_C(0x4DE5AC0947B79284), UINT64_C(0x22AB8FBD025016BA),
+          UINT64_C(0x51318C232A099B37), UINT64_C(0x542EA0FA49E06623)}},
+        {{UINT64_C(0xDD240F6428909F31), UINT64_C(0x46B66F9E101B7F01),
+          UINT64_C(0x788C29CA20481C3F), UINT64_C(0x3218A509CA5D5182)},
+         {UINT64_C(0x64BCC7AD63E9A2B9), UINT64_C(0x3D213CA2ADDF5C0B),
+          UINT64_C(0x6D93ED4C9960D650), UINT64_C(0x3F13DB22284EE5F3)}},
+        {{UINT64_C(0x5B678C3A6697E0D1), UINT64_C(0x25A171F416D9D878),
+          UINT64_C(0xC20A6D80FAEC362B), UINT64_C(0x1BB3F14CC512EA4B)},
+         {UINT64_C(0xECE5313B2AE35FA5), UINT64_C(0xE390A01FBBD76B87),
+          UINT64_C(0xC78EA4C5882DA3FC), UINT64_C(0x771BCDAE42086A77)}},
+        {{UINT64_C(0x8E9E3C8B565802E9), UINT64_C(0xC37A7B3553FA1BE7),
+          UINT64_C(0x9D2F1A264408FB77), UINT64_C(0x0B3ECE36FF308B7B)},
+         {UINT64_C(0x8FB35B361F30FC37), UINT64_C(0x463B44E283E1A3C9),
+          UINT64_C(0x7218F09F3402233A), UINT64_C(0x1519638AFC9A6990)}},
+        {{UINT64_C(0x51FB3E5D8EAAC478), UINT64_C(0x620E4826760ED4EC),
+          UINT64_C(0x46FC5B1F1D865577), UINT64_C(0x15EF2AD95244A538)},
+         {UINT64_C(0x8D7E477C4BF382BD), UINT64_C(0xCBF170C902A5C9EE),
+          UINT64_C(0xB91A870C4AFB0EC1), UINT64_C(0x052FFC5169C31425)}},
+        {{UINT64_C(0x1FD437462018D066), UINT64_C(0xBC5015174C67FC35),
+          UINT64_C(0xE65BC2FBBC990EB6), UINT64_C(0x538CA6F973F87F92)},
+         {UINT64_C(0x42FBDAE08352B03F), UINT64_C(0xF265B1E099A4C9B9),
+          UINT64_C(0x6E3EAB2F185CA070), UINT64_C(0x6E6F4F7D37D0A2C1)}},
+        {{UINT64_C(0x9B20D8EEC2D5D73E), UINT64_C(0x190521AE75844C15),
+          UINT64_C(0x67663AC426AD08FE), UINT64_C(0x67AEEFEFF984EC06)},
+         {UINT64_C(0x61C71142CBDD87EF), UINT64_C(0x0FA4995B63396E3B),
+          UINT64_C(0x3196E55185C193B0), UINT64_C(0x36C0A2A8DACB3A3D)}},
+        {{UINT64_C(0xEAB89FDC178A1115), UINT64_C(0xC7B764D8D7C31303),
+          UINT64_C(0xA5B2D6FB90203755), UINT64_C(0x3C360BF9D5F8AEEE)},
+         {UINT64_C(0x8DFDCD0502F1CC3C), UINT64_C(0x7F8A64D264E5269E),
+          UINT64_C(0xA36196ECEA13FFD7), UINT64_C(0x35E2241577E3839F)}},
+        {{UINT64_C(0x29E7AB0BE22E0C52), UINT64_C(0x68BF32C78B27DEDA),
+          UINT64_C(0x52A762A2DC7971AE), UINT64_C(0x4CA4348718B0CDCC)},
+         {UINT64_C(0xED429DA13FCEAF73), UINT64_C(0x49396E6F06718D19),
+          UINT64_C(0xDECB93375BB3301C), UINT64_C(0x4B7723C10FF489B1)}},
+        {{UINT64_C(0xAE321F09ABEE6B9B), UINT64_C(0xF251BF4D37318F60),
+          UINT64_C(0xB0A8A251B63DC269), UINT64_C(0x514A25FC71817963)},
+         {UINT64_C(0x518F574755C9B2E9), UINT64_C(0x3E56CC3E1C9B4845),
+          UINT64_C(0xBDFD637A283AE1FA), UINT64_C(0x419BA4B4C3DE778E)}},
+        {{UINT64_C(0xC7F18E93BCD2EB74), UINT64_C(0x171264C8FC61FB42),
+          UINT64_C(0x27282E7685119033), UINT64_C(0x225006A4D7DB91C7)},
+         {UINT64_C(0x628E0F3C1ECF5024), UINT64_C(0xDC5111E000859CDE),
+          UINT64_C(0x4AB1764F1F220711), UINT64_C(0x7C6916F170DDED3C)}},
+    },
+    {
+        {{UINT64_C(0xF9FFE8FC5F0CA58A), UINT64_C(0x09E34F3022879EBB),
+          UINT64_C(0x648D6339ED7B0520), UINT64_C(0x0D6719D01AF5ECDC)},
+         {UINT64_C(0x2878714D0B8590E4), UINT64_C(0x827D04ED90EC312B),
+          UINT64_C(0xD415C8B43B5767C3), UINT64_C(0x4170F0ADC09FD18D)}},
+        {{UINT64_C(0x9B649CFC3C601031), UINT64_C(0x0478603A636DDAE7),
+          UINT64_C(0xDC972DFA914E100A), UINT64_C(0x519C55DF091621AE)},
+         {UINT64_C(0x863046CBD4A9963D), UINT64_C(0xDF16763C5ACF7C0C),
+          UINT64_C(0x4999A93EFF5468A4), UINT64_C(0x35543EFF424074A5)}},
+        {{UINT64_C(0x27B1DBFADD33307C), UINT64_C(0xA0D04784927CA6F3),
+          UINT64_C(0xBD3EBC5EA37CF855), UINT64_C(0x59D02EF549F5AA2C)},
+         {UINT64_C(0xCDABE86FBDD57BF3), UINT64_C(0x7B3ADD2F37819D86),
+          UINT64_C(0x7B90BA150413B7B0), UINT64_C(0x470717826B99685B)}},
+        {{UINT64_C(0xB7C3218EEF0CE97F), UINT64_C(0xDAE3B56C0898C79C),
+          UINT64_C(0x6349D83D0908877D), UINT64_C(0x0970C6C0C81E8C4E)},
+         {UINT64_C(0x0E45C4A7A47F426C), UINT64_C(0xAB000A593FBB194E),
+          UINT64_C(0x570FBBA53A6DD13E), UINT64_C(0x66045580C8F44A57)}},
+        {{UINT64_C(0x5ABEB74912A72F7F), UINT64_C(0x15072A927AE56F4D),
+          UINT64_C(0x1C77AE00222AB2C4), UINT64_C(0x591EAEC69AFE63DE)},
+         {UINT64_C(0xB51D41AFDFD24304), UINT64_C(0xDE28DF26DFBCC096),
+          UINT64_C(0x02F046C838A20DA7), UINT64_C(0x5EC3DBDC1AE0A45B)}},
+        {{UINT64_C(0x7C19BD7563DD86C2), UINT64_C(0xDB1193118D78A57B),
+          UINT64_C(0xF48BB4FA23C5C4E7), UINT64_C(0x65514C1C97DB0A05)},
+         {UINT64_C(0x1BC1F2F043CAC49C), UINT64_C(0x975FEB512851B4BE),
+          UINT64_C(0x0E0A4633DD60D530), UINT64_C(0x32BBBF1409B1D2C6)}},
+        {{UINT64_C(0x79124749A670EAC0), UINT64_C(0x504D89D531DD893C),
+          UINT64_C(0xDDCED74CE0654D63), UINT64_C(0x58956BE5E2208707)},
+         {UINT64_C(0xBE6A3ECD437E7077), UINT64_C(0xB8AB332D574095C8),
+          UINT64_C(0x4E79AC1C3869DA42), UINT64_C(0x79D4C3FB68859F51)}},
+        {{UINT64_C(0x1E5FC1B97936A831), UINT64_C(0x1EA42ED2D74F1F41),
+          UINT64_C(0x33D22EC1C4EA3228), UINT64_C(0x5705333F729BEBFE)},
+         {UINT64_C(0xDBD1A67B64596076), UINT64_C(0x6BFF269DFA65BA98),
+          UINT64_C(0x8451A9C26C47E715), UINT64_C(0x243D679D22898DB3)}},
+        {{UINT64_C(0xE935D705B8323FD0), UINT64_C(0xE2DA88456937E5CB),
+          UINT64_C(0x1C9DFFF84A5EAE1E), UINT64_C(0x796F0B9545DF7A79)},
+         {UINT64_C(0xC24D573F640DBA32), UINT64_C(0x2B77521702E4B792),
+          UINT64_C(0xD437EB6394D12C40), UINT64_C(0x6182AF6D4AD371F0)}},
+        {{UINT64_C(0x133EDA5241FC7551), UINT64_C(0xA0088A2BE91714AF),
+          UINT64_C(0xB41B9AC25E0A73C0), UINT64_C(0x4808BB5A1D3B3953)},
+         {UINT64_C(0xD875AA142B9AE648), UINT64_C(0x4F38C9462408244C),
+          UINT64_C(0x04B6B941FF051A87), UINT64_C(0x1D5B0B9E6DF48ECD)}},
+        {{UINT64_C(0x27FD368A169E757F), UINT64_C(0x2ACB35607B94D9DB),
+          UINT64_C(0x81903F4B4D4C9B5F), UINT64_C(0x641F806C169B81DE)},
+         {UINT64_C(0x574E94449E957475), UINT64_C(0xE08814AEC6C8EE52),
+          UINT64_C(0xD1AE71EC6C84FDDF), UINT64_C(0x44A56014FAA040D9)}},
+        {{UINT64_C(0x06DA690875A48F60), UINT64_C(0x7BA6C9CBBB2CD408),
+          UINT64_C(0x57D2D0FF3A1BCBFF), UINT64_C(0x186F1A8B8928CE36)},
+         {UINT64_C(0x0FFD205B7A40F877), UINT64_C(0x2915BC8E01AF68F7),
+          UINT64_C(0x816AC4DFC36A5FB1), UINT64_C(0x609B0A872C9E1F7D)}},
+        {{UINT64_C(0x4032AC5EB97536FB), UINT64_C(0x53E6FE68A7C5EDB6),
+          UINT64_C(0x2F4149305F0DCBA1), UINT64_C(0x209752562837E314)},
+         {UINT64_C(0xDF5DC4963C3C1D27), UINT64_C(0x0DFDAAF371797C36),
+          UINT64_C(0x5F3E9229DA504E04), UINT64_C(0x354EA88D8C234246)}},
+        {{UINT64_C(0xAF6741C30922D317), UINT64_C(0x7429853B9DF0A572),
+          UINT64_C(0x0EA1AE041DC207A8), UINT64_C(0x2C1DAA1C450075F5)},
+         {UINT64_C(0x27C71F166ED729B4), UINT64_C(0x785718A653AB8EC0),
+          UINT64_C(0x1EEC7BBFA8465487), UINT64_C(0x78DA9B044C578BA9)}},
+        {{UINT64_C(0xFF9ED65EB3B707FA), UINT64_C(0xF8C8301FF5D28D33),
+          UINT64_C(0xB15D498FA65F5C0F), UINT64_C(0x6DEF256DB0EF2B89)},
+         {UINT64_C(0x0D40A6B252184EF6), UINT64_C(0xC702EBE52BF06F5A),
+          UINT64_C(0x13E50E184BA041AA), UINT64_C(0x53552D887EC4C784)}},
+        {{UINT64_C(0x2CD09B19F28ABB3A), UINT64_C(0x4F5C040F724EDB9B),
+          UINT64_C(0xD6820590E0DCBD16), UINT64_C(0x45D84DE91B7155A3)},
+         {UINT64_C(0x995BDD01A251B1BA), UINT64_C(0x607F951737CAA4DC),
+          UINT64_C(0x747FEA1CA15D9674), UINT64_C(0x646C187673E97C97)}},
+    },
+    {
+        {{UINT64_C(0x1951682B6FAC1486), UINT64_C(0x8B578E1E4A4D14C5),
+          UINT64_C(0x083FA101B7384D42), UINT64_C(0x13380CE9ED1C8A87)},
+         {UINT64_C(0xC7052ED8732A493B), UINT64_C(0xD5FEF40FB32E3D69),
+          UINT64_C(0xA64ACE8788833566), UINT64_C(0x6E36CFDB4177DC00)}},
+        {{UINT64_C(0xAA14E281E742C3B4), UINT64_C(0xB75E7B2AEE5AF40A),
+          UINT64_C(0x3FC5FF0B1616EFA2), UINT64_C(0x090259B0AD763298)},
+         {UINT64_C(0x4105B57E38753438), UINT64_C(0x70ED1A00CF2D8926),
+          UINT64_C(0x78921395322F40BB), UINT64_C(0x3AEE819967A3FF56)}},
+        {{UINT64_C(0x88073D0011EA75FC), UINT64_C(0xD23D279606A4B4EB),
+          UINT64_C(0x1FD22F9ED85D3A6B), UINT64_C(0x6B5EA051AFB43B70)},
+         {UINT64_C(0x96C9C176D99BE576), UINT64_C(0x85AC2B6C4C47261E),
+          UINT64_C(0x2726395999A9C378), UINT64_C(0x6D36E9FE8B5CABDA)}},
+        {{UINT64_C(0xC9FC7661A58F614C), UINT64_C(0x82AA317D2E45AE73),
+          UINT64_C(0xDCB1925FC8CB9CC7), UINT64_C(0x1341C1AA27813205)},
+         {UINT64_C(0xDD06745B6CD478AB), UINT64_C(0x0C2534B21E28F6A3),
+          UINT64_C(0xE21833459D27FE63), UINT64_C(0x7F1E2A3306466147)}},
+        {{UINT64_C(0x378D727E5AEE2471), UINT64_C(0xB718FC17D47739B6),
+          UINT64_C(0xDA27CB9B4145E8EF), UINT64_C(0x3F8AB1A30EF2AB20)},
+         {UINT64_C(0xA89ADD37E16C0141), UINT64_C(0x2127823B59DF1C95),
+          UINT64_C(0x53F90B73B7455CC2), UINT64_C(0x7F9605861183FBE5)}},
+        {{UINT64_C(0x56D0475AE77235C3), UINT64_C(0xED2907C5B18ED61A),
+          UINT64_C(0x2D02C4CB7D73F6F8), UINT64_C(0x35EF69B4C42E7AED)},
+         {UINT64_C(0x53A6120A31B7324A), UINT64_C(0x982DD22159F1A395),
+          UINT64_C(0x03ECA86F835CFD94), UINT64_C(0x4CBA837D73CA1BD5)}},
+        {{UINT64_C(0x64F66D3941B17E6D), UINT64_C(0x3C869BF5CB14F3B3),
+          UINT64_C(0x1EBA045A28350EFA), UINT64_C(0x7ACFB882C7CDEC47)},
+         {UINT64_C(0x7ACFD28D8FB3097B), UINT64_C(0xDA397C3162986426),
+          UINT64_C(0xD49F84212A1A7A94), UINT64_C(0x7B372E2DFAB65156)}},
+        {{UINT64_C(0x3ADBDD0701D9DB0F), UINT64_C(0x617521E694FF0CFB),
+          UINT64_C(0x5BA5905C3F5BD583), UINT64_C(0x6F89603378670CD1)},
+         {UINT64_C(0x0A59C447FB98EA11), UINT64_C(0x59B918CC653EDC59),
+          UINT64_C(0x00BF4D2A9F72C01E), UINT64_C(0x748455D147DEE00F)}},
+        {{UINT64_C(0xE371A7A8386E7491), UINT64_C(0xF71711CC621A3484),
+          UINT64_C(0x1568256EE0015C3B), UINT64_C(0x5ACEF7A67D3FFDE9)},
+         {UINT64_C(0x02ED70E5B08E4219), UINT64_C(0x7ECE1726832AC3AA),
+          UINT64_C(0xC3C0D32B951D1CA2), UINT64_C(0x4C99166438DECC59)}},
+        {{UINT64_C(0xB99DF8BA96EB21A4), UINT64_C(0xB88D25F42BBF8E6D),
+          UINT64_C(0x16B3E0B1686DAA3C), UINT64_C(0x1131456170D47C57)},
+         {UINT64_C(0x8DCDC3D13338342D), UINT64_C(0xE6D39B0188E028A7),
+          UINT64_C(0xB781F1ED72855B5E), UINT64_C(0x0E0D82F6CC192572)}},
+        {{UINT64_C(0xC86A8E5DCF1E20AA), UINT64_C(0x1A87AEF3F9AB96D5),
+          UINT64_C(0xA8941635F3D19051), UINT64_C(0x67B1D0A2654FFF15)},
+         {UINT64_C(0x266FD5ED92862ACD), UINT64_C(0xB72587BED11DEEAC),
+          UINT64_C(0x5CF0D2E2D09320AA), UINT64_C(0x68456EBA515E0277)}},
+        {{UINT64_C(0x86A5461C771F64CA), UINT64_C(0xB7A220B748FF8D7A),
+          UINT64_C(0x9A0DD72AD7A568D1), UINT64_C(0x18F5E1DCF644D858)},
+         {UINT64_C(0xB7AE1BC23E00364F), UINT64_C(0xD7EA31F3CEE8D9F7),
+          UINT64_C(0xD18DA30FDCDB883D), UINT64_C(0x179CFCA5CBA00F48)}},
+        {{UINT64_C(0x496F2C0139E7860C), UINT64_C(0xACDF8B4027F15EAF),
+          UINT64_C(0x8871966C687AC815), UINT64_C(0x6228F1B58DB8FDB5)},
+         {UINT64_C(0x8644656AF30ECF2B), UINT64_C(0x15576CC2AE1DEAFF),
+          UINT64_C(0x93D86D56697AB3FC), UINT64_C(0x3E4A428E811E3FF2)}},
+        {{UINT64_C(0xFB85DE3D91B9F5DF), UINT64_C(0xCDB595D4B20A9C71),
+          UINT64_C(0x55CB08F3B44D671E), UINT64_C(0x780FC2E5FCD7D5ED)},
+         {UINT64_C(0x815AB41F7F939366), UINT64_C(0xA7597A02ECD52B20),
+          UINT64_C(0x9BE078F04648E3C5), UINT64_C(0x7A3E217917BD3DC2)}},
+        {{UINT64_C(0x22758C419D9E5E53), UINT64_C(0x44D675F49EF09FAE),
+          UINT64_C(0x1AB7986D27159F97), UINT64_C(0x72B3F02BB6B9465B)},
+         {UINT64_C(0xA372FAC7FE56F578), UINT64_C(0x33FA6479DA534F4A),
+          UINT64_C(0xB0003307DF63BF2D), UINT64_C(0x34D40B4DB80D0F64)}},
+        {{UINT64_C(0x8A8929DC3D2B9FC2), UINT64_C(0x7D12E86C55EE75E5),
+          UINT64_C(0xB3FE1AD392E1A870), UINT64_C(0x27148C94729CFE4C)},
+         {UINT64_C(0x6A8C3B5218BA868B), UINT64_C(0xDD2006E47F038A9C),
+          UINT64_C(0x4606FA9EB7124908), UINT64_C(0x434A8C07F4940CB1)}},
+    },
+    {
+        {{UINT64_C(0x15F36EBEF98B91EA), UINT64_C(0x94D802DEC1ED17B1),
+          UINT64_C(0x3C45FA08085D77F8), UINT64_C(0x0A30B3C302FF571A)},
+         {UINT64_C(0x70F5852D264C93D0), UINT64_C(0x5E51BCAB191AEE57),
+          UINT64_C(0xD5C14AE9FAD8E96E), UINT64_C(0x73B00534D4BC414B)}},
+        {{UINT64_C(0x21CF876B12AFF5E7), UINT64_C(0x3E9F664CF75799A6),
+          UINT64_C(0xC23B7D199A0E73CD), UINT64_C(0x77AAB691427EEA36)},
+         {UINT64_C(0x2E74F972604EE854), UINT64_C(0x8712C7A0F867C81A),
+          UINT64_C(0x6085980F953A4C56), UINT64_C(0x2DB997070F7707E1)}},
+        {{UINT64_C(0x5ECC087F78BDB7A7), UINT64_C(0x43CC156C04C693F2),
+          UINT64_C(0x965067CF039BD7F1), UINT64_C(0x72140E566E3FAE2F)},
+         {UINT64_C(0x26452E4DE019DED1), UINT64_C(0x6F4C23492EDEF154),
+          UINT64_C(0xA7066D7F054DFC0F), UINT64_C(0x544E6F6D3381AB44)}},
+        {{UINT64_C(0x9B6E94699214C791), UINT64_C(0xD74F9C5586938BDC),
+          UINT64_C(0x0F1527F6FC2928FD), UINT64_C(0x5B0FBF0F63C3A053)},
+         {UINT64_C(0xAC1F442CFC41FF10), UINT64_C(0x34EF88EF787B4932),
+          UINT64_C(0xF8120F08316732AC), UINT64_C(0x7BCCF12CA655DC4A)}},
+        {{UINT64_C(0x750DF97FA6C7760E), UINT64_C(0xF1A0A827609BF215),
+          UINT64_C(0x7348C1B467FD04B4), UINT64_C(0x6A581016615C8145)},
+         {UINT64_C(0x9DC012259A11AAFC), UINT64_C(0x24F65B053F2B0C8B),
+          UINT64_C(0xA27CB8BFDCB1B2A4), UINT64_C(0x3C44B811E48C1A71)}},
+        {{UINT64_C(0xBC059AF2F780B295), UINT64_C(0xDF58928C0B6B247D),
+          UINT64_C(0x224D4C3C01903F3D), UINT64_C(0x7152E120818EE0AC)},
+         {UINT64_C(0x6C8F474554BFF1BE), UINT64_C(0x98A6C7EC431ADEF7),
+          UINT64_C(0xDCB6BB7591B2CFB6), UINT64_C(0x145F6D397E83A5BB)}},
+        {{UINT64_C(0x827C000C81D23BC1), UINT64_C(0x5CDC1135403956FC),
+          UINT64_C(0xD967A5B13C751158), UINT64_C(0x52AF85BC96201D7D)},
+         {UINT64_C(0x522BC492644558F7), UINT64_C(0xF74A35AFED7A060D),
+          UINT64_C(0x10E5F9FD4DC4619E), UINT64_C(0x06071F1F324F60BB)}},
+        {{UINT64_C(0xC5FFD5EF65921C34), UINT64_C(0x46CE1A69302BAA5D),
+          UINT64_C(0x89CC84EC4E22FF1D), UINT64_C(0x16A481AE68131754)},
+         {UINT64_C(0x2A06A156B89039F5), UINT64_C(0x40B6401BB3A95AB9),
+          UINT64_C(0xFFCC53EB313820C3), UINT64_C(0x256B00E7EA959F76)}},
+        {{UINT64_C(0xCCE87FC954FBDD74), UINT64_C(0xEC258542B23C6E1D),
+          UINT64_C(0x5BE392B49E5E1928), UINT64_C(0x65AF311047A8A759)},
+         {UINT64_C(0x943F7A2547DFFD31), UINT64_C(0xDCCDA18651E896FA),
+          UINT64_C(0x71A93B1E933E747F), UINT64_C(0x44F5C468DFB043AD)}},
+        {{UINT64_C(0xF6AEC52C786FCCBA), UINT64_C(0x23D49DCF6D51FA78),
+          UINT64_C(0x0F81463B9B40D8E6), UINT64_C(0x18B9D932708D3DA2)},
+         {UINT64_C(0x796F94EDF986DC6D), UINT64_C(0x33B2CCC1FC2622C3),
+          UINT64_C(0x16790DFB9CCEC606), UINT64_C(0x6F5D1452CFD31481)}},
+        {{UINT64_C(0x91F15DDC6C3A15D6), UINT64_C(0x45D12F404D360E75),
+          UINT64_C(0xF2E28EE81DAFFC9C), UINT64_C(0x5CC6A0566CDF5566)},
+         {UINT64_C(0x855166D21779B9BF), UINT64_C(0x92BA5EF4CF94D9FE),
+          UINT64_C(0x1266FB2A985BC1DD), UINT64_C(0x4572CE8FCA3018AD)}},
+        {{UINT64_C(0x8729A12DBE4BB604), UINT64_C(0x6A29C8494E99E9AB),
+          UINT64_C(0x54AE50117A89894D), UINT64_C(0x5E66A255CDB0EEBD)},
+         {UINT64_C(0x006736EACBEE153B), UINT64_C(0x8A36CC2D225E7B86),
+          UINT64_C(0xF731E430EC0598EC), UINT64_C(0x49338E4D7FD9A11F)}},
+        {{UINT64_C(0xE038CE03DA6DABAA), UINT64_C(0x13A08DCE7C1BCE0C),
+          UINT64_C(0x12D00DD0DA89EFBF), UINT64_C(0x70A13FB96FCF0510)},
+         {UINT64_C(0x16ED1C925CDB03E2), UINT64_C(0xDF1AB61D08E9EE4B),
+          UINT64_C(0x48983DA803AF3E3D), UINT64_C(0x63CCA113429DB770)}},
+        {{UINT64_C(0x6D9AC1EBCFB805E5), UINT64_C(0x47C3FE6950FA37B8),
+          UINT64_C(0xD308EC732C33D457), UINT64_C(0x3CB08E00D4CCA340)},
+         {UINT64_C(0xC078DAD0BE862794), UINT64_C(0x2D147F83F4E10A57),
+          UINT64_C(0xE91820FF3DE1B3D5), UINT64_C(0x3D85DD726F30491B)}},
+        {{UINT64_C(0xD486A022F5CBDD3A), UINT64_C(0x2663134ACAC0B99E),
+          UINT64_C(0x42DE13F55F3ABFCA), UINT64_C(0x4967A225B365B973)},
+         {UINT64_C(0x99C98A2510F1F997), UINT64_C(0x23F057C97714FAB2),
+          UINT64_C(0xCE07CA6E1BA2338D), UINT64_C(0x3BA69161069F65D7)}},
+        {{UINT64_C(0xCCD8C86FC026FB0E), UINT64_C(0xF49F1FEA50407A8C),
+          UINT64_C(0x72FEA37B7F19A1DB), UINT64_C(0x22A03E253F457DB7)},
+         {UINT64_C(0x2D6C62B271F736D2), UINT64_C(0xCC99F8E7A5ACB4E5),
+          UINT64_C(0x8F7DBF2E0DE5F380), UINT64_C(0x24494786352B4933)}},
+    },
+    {
+        {{UINT64_C(0xF020E7A9AE2A5E8F), UINT64_C(0x5ADC788BD14C5F02),
+          UINT64_C(0xC5E5AFE465C84DB4), UINT64_C(0x392FACC435C2633C)},
+         {UINT64_C(0x47D5007042DEE269), UINT64_C(0x76706ED76EB7849C),
+          UINT64_C(0x6BF56D56316548CB), UINT64_C(0x4A466066D37FF4DF)}},
+        {{UINT64_C(0xC8EBBFB5C30283AD), UINT64_C(0x31E9CF963544E645),
+          UINT64_C(0x90EA9A4988886B50), UINT64_C(0x5E4B8C88021D3D5D)},
+         {UINT64_C(0xA4DB92250DFEB658), UINT64_C(0x8AA95DB61910FDAE),
+          UINT64_C(0x82E9A997DE400EB9), UINT64_C(0x238967E996769A04)}},
+        {{UINT64_C(0x1ABB076A89E2DF0A), UINT64_C(0xDA8B09B007065929),
+          UINT64_C(0x332BE8A563BD349B), UINT64_C(0x0EB973CEA2D35385)},
+         {UINT64_C(0x67F7AE639C7D375E), UINT64_C(0xA235818DE7AE90B1),
+          UINT64_C(0x2B59C26E817493B0), UINT64_C(0x39DC105033C4ACD6)}},
+        {{UINT64_C(0x11801ACE7B7DB3F5), UINT64_C(0x79C214C38CC97CA5),
+          UINT64_C(0xB4BFE1ABBF2674BF), UINT64_C(0x598EA7DC43252011)},
+         {UINT64_C(0x217FF6D3B08F8EF5), UINT64_C(0x9797BBC98B9226B7),
+          UINT64_C(0xAB8E98C97B0EDB09), UINT64_C(0x240EC22D083A401F)}},
+        {{UINT64_C(0x55A75BCF459ABC3D), UINT64_C(0xB2F9859864ECC2DC),
+          UINT64_C(0x271C47C39EE84779), UINT64_C(0x0166E5D4BF9BDBF2)},
+         {UINT64_C(0xD205380F4215B666), UINT64_C(0xF704139664E9FE64),
+          UINT64_C(0x4C737E942BB0DA40), UINT64_C(0x2E763521C8119691)}},
+        {{UINT64_C(0x79550B60FD2F8593), UINT64_C(0x47E00AFD0C17A56F),
+          UINT64_C(0x0D900A9DB44157CF), UINT64_C(0x016CF746A81BED76)},
+         {UINT64_C(0xC21E861BAC47A84B), UINT64_C(0x0E14387A1724BD47),
+          UINT64_C(0xC209303E2077F7BC), UINT64_C(0x33B5EB59BAD12F0B)}},
+        {{UINT64_C(0x7152354F9850FC1F), UINT64_C(0x1239576F83637934),
+          UINT64_C(0xB00C4E4E82AF46BA), UINT64_C(0x563D5062EC3FEEFF)},
+         {UINT64_C(0xEF25E37333D67B7F), UINT64_C(0x3A80A50E50D9845E),
+          UINT64_C(0x1DCED1E9A5787EF5), UINT64_C(0x15723E9AA0F87C3C)}},
+        {{UINT64_C(0x217435112B4A156D), UINT64_C(0xB75C041CCD12BD2B),
+          UINT64_C(0x6947368C79F393A6), UINT64_C(0x32CDE49E76420E56)},
+         {UINT64_C(0x67FBA31543D612FF), UINT64_C(0x697F7FAEE3B87BC2),
+          UINT64_C(0x980DAFBC7391129A), UINT64_C(0x438B28586F707469)}},
+        {{UINT64_C(0xDA8AD16D5E9D085F), UINT64_C(0xE636F1AF768FA87C),
+          UINT64_C(0x08520756B85FF1F1), UINT64_C(0x1B8184816ABB31BE)},
+         {UINT64_C(0x25B3DCB92E686F1A), UINT64_C(0xE12821342B0CB829),
+          UINT64_C(0x626232BC3B9B759C), UINT64_C(0x797316BB38C4338E)}},
+        {{UINT64_C(0xF8365B644A62DCBD), UINT64_C(0xC2CF51BA6BF0EFED),
+          UINT64_C(0x37E379EFABF74764), UINT64_C(0x5DC32071A350D603)},
+         {UINT64_C(0x5465CC805B732100), UINT64_C(0x3231B4E3B3BB5366),
+          UINT64_C(0x23F5385ED0D067CE), UINT64_C(0x76CD762167D33451)}},
+        {{UINT64_C(0xC6C93A0555D857DD), UINT64_C(0xB4B6F1768F308F7F),
+          UINT64_C(0x2371CD88C0F13577), UINT64_C(0x1E507D6C70807D9D)},
+         {UINT64_C(0x7A77CCE1C73E8E2F), UINT64_C(0x1DD96274FCCBDEEB),
+          UINT64_C(0xA4DBEA5D03F378B8), UINT64_C(0x44B4DF552A1C347F)}},
+        {{UINT64_C(0x9853D2828D067A47), UINT64_C(0xBF0ADAF486813E74),
+          UINT64_C(0xFDE1F24D39409037), UINT64_C(0x0E629604973B045D)},
+         {UINT64_C(0x9880A74B3BB92FAB), UINT64_C(0xBC4E3405C6C4D6C6),
+          UINT64_C(0x98C243185184A2D6), UINT64_C(0x07D65412C210C183)}},
+        {{UINT64_C(0x3938E528441A5FBC), UINT64_C(0x2CCD837DCCC66B22),
+          UINT64_C(0x075FADE75E606282), UINT64_C(0x321811654BB0E76A)},
+         {UINT64_C(0xE7240305FC929890), UINT64_C(0x1FA427C8E03AAA52),
+          UINT64_C(0xF23C879B0BC7B9F8), UINT64_C(0x699A1235D6BBC908)}},
+        {{UINT64_C(0x20C2978114124B8A), UINT64_C(0x0C6464B348000278),
+          UINT64_C(0xF1939127D644E10C), UINT64_C(0x47A479E64EC07EE3)},
+         {UINT64_C(0xB631576877023389), UINT64_C(0xC0FD319D8BFDD90F),
+          UINT64_C(0x0EBEC2006CB022D4), UINT64_C(0x6810DF3D302F58EF)}},
+        {{UINT64_C(0xCF97FA07ACB1C3F2), UINT64_C(0xACC60D84A2C3F2F1),
+          UINT64_C(0x4EF3CAAC5DEB73D4), UINT64_C(0x654D0D90D5472C1D)},
+         {UINT64_C(0x5A39A718E4729062), UINT64_C(0x84B286B08324E0F2),
+          UINT64_C(0xA07A01CBD21E8457), UINT64_C(0x0EC091C7B094714E)}},
+        {{UINT64_C(0x7AB81940895736BD), UINT64_C(0x9AE791B7E4679DF5),
+          UINT64_C(0x36163D81F064109B), UINT64_C(0x3DDEE4A40E956B07)},
+         {UINT64_C(0xE146E7EEFEAAE47C), UINT64_C(0x81C0C2A76A8EEC03),
+          UINT64_C(0x10BB8DD9A8C315CB), UINT64_C(0x2CB423D8D21B9AB0)}},
+    },
+    {
+        {{UINT64_C(0x5B11D3C7166A5B9A), UINT64_C(0x973627BB8768861D),
+          UINT64_C(0x82A5E2CD5A3E442A), UINT64_C(0x13F6C741DDE63678)},
+         {UINT64_C(0x8DAA3C74D892738E), UINT64_C(0x0A07D651A932376F),
+          UINT64_C(0xE12612C56892504B), UINT64_C(0x619D2B1DCA3FF301)}},
+        {{UINT64_C(0x2B6D686F1B07CEB7), UINT64_C(0x90C0260C298D0996),
+          UINT64_C(0x8CAAB926102BC73C), UINT64_C(0x445A6487AEB3911C)},
+         {UINT64_C(0x7EE1E54757F17290), UINT64_C(0xC055478B417711BF),
+          UINT64_C(0x29EF9FEC5CFA42C2), UINT64_C(0x5A022DE42B8EA0D6)}},
+        {{UINT64_C(0x81A5EC18AEEB2675), UINT64_C(0xA867C5AAAD1BBA8A),
+          UINT64_C(0xAECB36888DB47EBC), UINT64_C(0x77CE00BC26D1038F)},
+         {UINT64_C(0xADC635EF3E68504B), UINT64_C(0x0EFC21DEDAE8AF4F),
+          UINT64_C(0xDE57FD43AC70C4C9), UINT64_C(0x123360BEE78FFC0D)}},
+        {{UINT64_C(0xD608DB32D82B61DB), UINT64_C(0x05AF2A908E45C853),
+          UINT64_C(0xF1B8213E9D3B0032), UINT64_C(0x2312F8ABCAD15361)},
+         {UINT64_C(0xDC8D8E32C29EE818), UINT64_C(0x07D7A475DE5CD587),
+          UINT64_C(0x766109130C6C38B8), UINT64_C(0x0131B6C6D7984BD9)}},
+        {{UINT64_C(0xC05CD4D0CF69C844), UINT64_C(0x747C092D81A9B005),
+          UINT64_C(0x0D793551D9E39F54), UINT64_C(0x3BBB00DA7FFEF17C)},
+         {UINT64_C(0x6CAB83D9655AD7C1), UINT64_C(0x601BECD066A8F590),
+          UINT64_C(0xFADB086DAE51811B), UINT64_C(0x7768A5D8D69F734B)}},
+        {{UINT64_C(0x3BB9B347F0E2385E), UINT64_C(0x376C8C48F7D39F23),
+          UINT64_C(0xE656C1A4D82EC840), UINT64_C(0x328B25C9FC2AC59A)},
+         {UINT64_C(0xD02B2F39A046BEE6), UINT64_C(0xDBAB19A580066D6C),
+          UINT64_C(0x6A2E8F67E938B7F7), UINT64_C(0x645A57A1AA7F2661)}},
+        {{UINT64_C(0x6227904D9A006FAE), UINT64_C(0xA975FC4CB598CB72),
+          UINT64_C(0x945BFC2FA1120B82), UINT64_C(0x437A8AB42AC15CE5)},
+         {UINT64_C(0xA512A1070F53317C), UINT64_C(0x7B552554FF9BD7D6),
+          UINT64_C(0xF81213E754155AF9), UINT64_C(0x0923F42CFDCE0842)}},
+        {{UINT64_C(0x135239165216BB55), UINT64_C(0xF27E4C7A599CA117),
+          UINT64_C(0x464D040A7DD95BE1), UINT64_C(0x408974863C417D05)},
+         {UINT64_C(0x0A3D16BF7C88E5D7), UINT64_C(0x0B94C661C13B286F),
+          UINT64_C(0xF73C7126E2214821), UINT64_C(0x4B3D5BF0F2F6DAFA)}},
+        {{UINT64_C(0xCFABD8A2F1A4332A), UINT64_C(0x56DB1546BAAC9A51),
+          UINT64_C(0x8CC5204B04416247), UINT64_C(0x75EC13BFF0583310)},
+         {UINT64_C(0x0D68896ED35B55D0), UINT64_C(0xE89274E267FC14D9),
+          UINT64_C(0x18D425C0FC322878), UINT64_C(0x69477DD7916C714A)}},
+        {{UINT64_C(0x427CBB6C9BDDF0F9), UINT64_C(0xCF6941E2DB9F52CB),
+          UINT64_C(0xEF144DF635E60DFA), UINT64_C(0x27B5246EB61DF45C)},
+         {UINT64_C(0x0E124518B8D3D1D9), UINT64_C(0xBB3BA1348B313B95),
+          UINT64_C(0x050DCBDF0FA2B7A9), UINT64_C(0x50DBCF6D1D0A99B5)}},
+        {{UINT64_C(0x8A8B22CB3924A1E5), UINT64_C(0x86CB4C5A118F9D55),
+          UINT64_C(0xE5330ACC5B339C53), UINT64_C(0x6D5FDDF966A35A67)},
+         {UINT64_C(0xC95007196F6438A5), UINT64_C(0x9723F2BA07E5394E),
+          UINT64_C(0xA9CE2117866B45A8), UINT64_C(0x1B737D8D045CA2CA)}},
+        {{UINT64_C(0x6093F5A56EE00E30), UINT64_C(0x5CAB98D45DE0A6FC),
+          UINT64_C(0xADFB652C65DE754F), UINT64_C(0x679900D1862EFD1D)},
+         {UINT64_C(0x6E5C230FAFC5D235), UINT64_C(0x3A1E557912CF6DD3),
+          UINT64_C(0x241C20FB03FB4FA0), UINT64_C(0x562FFAE320F6C013)}},
+        {{UINT64_C(0x6EFC732F397F25EC), UINT64_C(0x304D1F7DBC1F03B8),
+          UINT64_C(0xA2FA60018890DADE), UINT64_C(0x4F91F97C51A25539)},
+         {UINT64_C(0xE75F9C5048F4EF02), UINT64_C(0xCC53F460218AEE9D),
+          UINT64_C(0xE7B4048910D76649), UINT64_C(0x148F90A242ECDBA4)}},
+        {{UINT64_C(0xBF45023A1F683AD6), UINT64_C(0x2EA5F70C95E868D1),
+          UINT64_C(0x47A19F33A97F2DE3), UINT64_C(0x3C8CCA9E8A76ED9F)},
+         {UINT64_C(0x01562C6EE1A268D0), UINT64_C(0x9EB6EBACBA4EF01E),
+          UINT64_C(0x835E64D4342410FB), UINT64_C(0x06F96B87FFF4594D)}},
+        {{UINT64_C(0xE49A383AD233612B), UINT64_C(0x3CA5421FC9C14F64),
+          UINT64_C(0x25192E1BBB53DF81), UINT64_C(0x3C1451FEA94C046C)},
+         {UINT64_C(0x72B270F80423FAA8), UINT64_C(0xFF63513D3763888A),
+          UINT64_C(0xB22F2F20C1745190), UINT64_C(0x2E005A7A35DEA32C)}},
+        {{UINT64_C(0x6B5A4E7A6305B2EB), UINT64_C(0xF017BCA19CCD05D2),
+          UINT64_C(0xB37027C9D19AD8CB), UINT64_C(0x2CFCB4700CBB36A6)},
+         {UINT64_C(0x17F4FE51663F3485), UINT64_C(0x7DC20A170DC3467B),
+          UINT64_C(0x6B56BA3F4AF63CBD), UINT64_C(0x4E7CF2890D5D64AF)}},
+    },
+    {
+        {{UINT64_C(0xE2C5CD1F7F59D2E9), UINT64_C(0x6B9ACEB79D7FBE1E),
+          UINT64_C(0x84F0441DA20225B0), UINT64_C(0x15875CDA8B369FBC)},
+         {UINT64_C(0xED1332770659E294), UINT64_C(0x7FAA913E7AE02043),
+          UINT64_C(0xCA0E58DA9DCEDE14), UINT64_C(0x5F6A70FDCDE68547)}},
+        {{UINT64_C(0x524B790DE7282711), UINT64_C(0x4B4F6246BCA05694),
+          UINT64_C(0x85169ECB949AF774), UINT64_C(0x5B168842CC743068)},
+         {UINT64_C(0xB8D0E9F231FB3BA3), UINT64_C(0x56DD4BC362D471C7),
+          UINT64_C(0xB14D689CE2A34F75), UINT64_C(0x7F4E171702E8D2D2)}},
+        {{UINT64_C(0x8EE3491AB17090B9), UINT64_C(0x67C071166B7EDAF4),
+          UINT64_C(0x6876E4CE4D0E6CCE), UINT64_C(0x6D2FBB64BC5A86BE)},
+         {UINT64_C(0x0431C67A070FA8C3), UINT64_C(0x91EFF9BE0F5D65F4),
+          UINT64_C(0x332985E2E07088DF), UINT64_C(0x006D2583676EADA8)}},
+        {{UINT64_C(0xA1FBCC370AA747D6), UINT64_C(0xADEA4A90B0DFDF3C),
+          UINT64_C(0x650162C7401ED81B), UINT64_C(0x0FBC4841A8B15E22)},
+         {UINT64_C(0x1044B4E8BF98CDAC), UINT64_C(0x37071115ECD1C668),
+          UINT64_C(0x29B93C17233C220C), UINT64_C(0x4BEBC3CCE69BC0C0)}},
+        {{UINT64_C(0xD1A16E3746BF7E51), UINT64_C(0x889C7782F7A7370C),
+          UINT64_C(0xC73F396E3CCB474D), UINT64_C(0x1C508F18B9D67A2E)},
+         {UINT64_C(0x3F17E9676B03B7E7), UINT64_C(0x3928F1D8F857BB26),
+          UINT64_C(0x3086FB2EC0EA8620), UINT64_C(0x15DC32C21BE7C3E4)}},
+        {{UINT64_C(0xF48D4C3211F4D949), UINT64_C(0xE14A4AE3B0357C05),
+          UINT64_C(0x77A1121F151D91AE), UINT64_C(0x33F85C2FE8C6869D)},
+         {UINT64_C(0x8EA3BB4C364B77B0), UINT64_C(0x1F155B919BD43E50),
+          UINT64_C(0xA6C2873054748E7D), UINT64_C(0x5AA34DDAE7DDC539)}},
+        {{UINT64_C(0xF0F80DDAA6CF8A82), UINT64_C(0x87DE6D6C091663B5),
+          UINT64_C(0x9479873402FE5519), UINT64_C(0x109D411F96722130)},
+         {UINT64_C(0xBC47CA73E661041F), UINT64_C(0x071D605965741541),
+          UINT64_C(0x7CD4DF6607E08735), UINT64_C(0x175E1F77E68FC807)}},
+        {{UINT64_C(0xB88BDAB8DA58865B), UINT64_C(0x14AD911220ED2B89),
+          UINT64_C(0x2B21AEDF039BF0A3), UINT64_C(0x789717779D4B77E9)},
+         {UINT64_C(0x133DA2ACD6612EF3), UINT64_C(0x6260FCF512AD1785),
+          UINT64_C(0xDBA784DA9DF08843), UINT64_C(0x1A30C4CF4449FBD1)}},
+        {{UINT64_C(0xB6FECE874EF7ACA2), UINT64_C(0x9CE7B61A13F7C58C),
+          UINT64_C(0x6B0223C9F8719A60), UINT64_C(0x21199AA5A3B3B088)},
+         {UINT64_C(0x4A7171966938BB02), UINT64_C(0x2E9A17C9E7ABC263),
+          UINT64_C(0x83F796234BAB12B7), UINT64_C(0x15C0C4AF49D7CFBD)}},
+        {{UINT64_C(0x99B3413956D2957F), UINT64_C(0xA51B8DFD07218BB6),
+          UINT64_C(0x47CA4323FC91D7C9), UINT64_C(0x44B01E753DCFD5F0)},
+         {UINT64_C(0x29F9D18E8CE894F3), UINT64_C(0x22BCC54095227C6F),
+          UINT64_C(0x815CD9363FC75409), UINT64_C(0x0D58B325D8989472)}},
+        {{UINT64_C(0x8B4C6980B6C80208), UINT64_C(0xA5D974978FB77CCD),
+          UINT64_C(0x1B8965719477132F), UINT64_C(0x348ABC213AE45F53)},
+         {UINT64_C(0xE438C1C314BCDB96), UINT64_C(0x63150CF98007C1BF),
+          UINT64_C(0xDB861A338508B903), UINT64_C(0x421DFB017B04ECD6)}},
+        {{UINT64_C(0xF2FCE58B19430E7B), UINT64_C(0x851A5F03D0F8ECB7),
+          UINT64_C(0xE756C1670A5A1833), UINT64_C(0x25A51405227F866C)},
+         {UINT64_C(0x40F34CB03C6EE5F3), UINT64_C(0xF4010401F244B5CF),
+          UINT64_C(0x0E21BDED01349BCF), UINT64_C(0x1B129D8204547F42)}},
+        {{UINT64_C(0x802EC4800927D153), UINT64_C(0x0F75E4FE72541520),
+          UINT64_C(0xA4A1557A026C4613), UINT64_C(0x25E8DAFB7D92BC18)},
+         {UINT64_C(0x1D87A14312F15F05), UINT64_C(0x79390E3C7B6B4240),
+          UINT64_C(0xFC199D76492E6273), UINT64_C(0x0053F1C47EB090C0)}},
+        {{UINT64_C(0xE790F1CAACEE6DFC), UINT64_C(0xC8FB4626DFEA04FF),
+          UINT64_C(0xBF03627F627D88D7), UINT64_C(0x1B3698843D81A75A)},
+         {UINT64_C(0x83405DDA917FA19D), UINT64_C(0xFFB23FF98C7DDCD2),
+          UINT64_C(0x644F54C740F10B48), UINT64_C(0x4636FADF17FF713A)}},
+        {{UINT64_C(0xDA62ECC227F417E4), UINT64_C(0xC0DBE48FFD8662BE),
+          UINT64_C(0x729EE4AA1011E73C), UINT64_C(0x4BAE5D3C3E11C84B)},
+         {UINT64_C(0x854DFFF86CEF6CDA), UINT64_C(0x7939228CCB7131EA),
+          UINT64_C(0x58B3744AD3EBC607), UINT64_C(0x6EB9248F2049E239)}},
+        {{UINT64_C(0x0265CAE9ED0D4E57), UINT64_C(0x92166D028AA65AEF),
+          UINT64_C(0x2E337CDA198345D6), UINT64_C(0x6775330CABE1AD7B)},
+         {UINT64_C(0xA9A828A8BF6FBC7D), UINT64_C(0x33A56F8DCBFEA393),
+          UINT64_C(0x2DB72F77D811EC51), UINT64_C(0x3DDFCD268327C78E)}},
+    },
+    {
+        {{UINT64_C(0x7CF8A521B46AA2C4), UINT64_C(0xE3B20937ACF0D567),
+          UINT64_C(0xD47D8D1BA440648E), UINT64_C(0x674E79201E9791A1)},
+         {UINT64_C(0x27B714EB18366462), UINT64_C(0x1526E5588476F588),
+          UINT64_C(0x72C8D3746C240D70), UINT64_C(0x066BBAFB805C1265)}},
+        {{UINT64_C(0x15F1CFF5457034E1), UINT64_C(0xCF7C6550DD819FA7),
+          UINT64_C(0x57C2CD5377AC7AD6), UINT64_C(0x7DB2A8BEAFED669D)},
+         {UINT64_C(0x2DAFD95FD4697340), UINT64_C(0x382FF89215A6B6E7),
+          UINT64_C(0x036FC753BF4A6B1B), UINT64_C(0x3E7AC46DE4012711)}},
+        {{UINT64_C(0xBA5ECDED5752A34D), UINT64_C(0xB08749D46BAA08DD),
+          UINT64_C(0x8A2B98974A4A47A8), UINT64_C(0x7230966FE42DCE02)},
+         {UINT64_C(0xA6FF614A58654FF5), UINT64_C(0x7F3531D1AB3C2A7E),
+          UINT64_C(0x0282A2F00D0ED417), UINT64_C(0x2DC7B872EA9755A3)}},
+        {{UINT64_C(0x7678D7652392536A), UINT64_C(0x0C2025F1574C657D),
+          UINT64_C(0x01701C80795413DC), UINT64_C(0x63F0D4965396279E)},
+         {UINT64_C(0xB0F9968AFA32EA64), UINT64_C(0x81265D155BB393DE),
+          UINT64_C(0xC05ECC6D0BCD8C10), UINT64_C(0x4F3769F92824457E)}},
+        {{UINT64_C(0x9AA58686F13DB92E), UINT64_C(0x1155CDF4ED2E1B18),
+          UINT64_C(0xA06E919409823F5A), UINT64_C(0x7F1BBE734257AB0E)},
+         {UINT64_C(0x2DFB6472ABA6FCD1), UINT64_C(0x04BE6BCAD73D850E),
+          UINT64_C(0x72AAEC34297D312B), UINT64_C(0x31F4C02C7509D9F5)}},
+        {{UINT64_C(0xAA9BA0007CA72AD5), UINT64_C(0x21EE29457FBCB4D6),
+          UINT64_C(0x0E210AAB1CF8580A), UINT64_C(0x600479FE0FA8DE10)},
+         {UINT64_C(0x246FD26554322F70), UINT64_C(0xC60BE9BB60DF1893),
+          UINT64_C(0x04D4F99D05137E38), UINT64_C(0x6ACB9E016164C176)}},
+        {{UINT64_C(0x126F2C7EC1DB7B6C), UINT64_C(0x4C3B30B5CF4DD3C0),
+          UINT64_C(0x827D57A2F782A489), UINT64_C(0x41B897DEE52621F0)},
+         {UINT64_C(0xED31C55ADDA0A3CD), UINT64_C(0x21C91BB2A11AD179),
+          UINT64_C(0x60E606B843FD6E23), UINT64_C(0x31B8138D51ED7FA6)}},
+        {{UINT64_C(0x1387B313E72E4BC5), UINT64_C(0xDCCCB09C82EBFC72),
+          UINT64_C(0xF0B01202AA4432D6), UINT64_C(0x632599C47C52B69D)},
+         {UINT64_C(0x3922D0C0BCE9A04C), UINT64_C(0xC2397D88B53F4268),
+          UINT64_C(0x50AE5ED900669858), UINT64_C(0x1B2BD4C216C7696B)}},
+        {{UINT64_C(0x6FAE1B082BF7DF06), UINT64_C(0x870B3FE85210DB3B),
+          UINT64_C(0x680BE4229BDC0B91), UINT64_C(0x56BA83C6BCC970AD)},
+         {UINT64_C(0x1AE91BAC859D6C78), UINT64_C(0xC5BDD5FB2895A1A6),
+          UINT64_C(0xA169E73C550610F5), UINT64_C(0x01B467670CC7D3EA)}},
+        {{UINT64_C(0x1E147A510EC5ECE2), UINT64_C(0x9B612A1FD0E2C46C),
+          UINT64_C(0x664FDD555E293783), UINT64_C(0x52070E1567DC4DBC)},
+         {UINT64_C(0x449B53E54A4903FB), UINT64_C(0x79B53583A8D30103),
+          UINT64_C(0x616C97F3AF7CC314), UINT64_C(0x6BEB304C2849862C)}},
+        {{UINT64_C(0xB9C636D6019F0313), UINT64_C(0x0B08E7CBD3E0188D),
+          UINT64_C(0xEAEB1715D704DE15), UINT64_C(0x4990282C837E7543)},
+         {UINT64_C(0xCBB0BD49FBD3A061), UINT64_C(0x3454A8AC1DA124AE),
+          UINT64_C(0x0D524A0237D64EAB), UINT64_C(0x766807490B3E4ADE)}},
+        {{UINT64_C(0xC293E01195B04835), UINT64_C(0x76D304BA23D0C885),
+          UINT64_C(0x36A63627D6552D80), UINT64_C(0x3B4FA680C504CCAB)},
+         {UINT64_C(0xF25B3A04E1FC08DF), UINT64_C(0x786380E562D080F8),
+          UINT64_C(0x0A731427DAC0D110), UINT64_C(0x1D65288FD628429A)}},
+        {{UINT64_C(0x3CE5E929DC94453E), UINT64_C(0xEC7CF988B6073324),
+          UINT64_C(0x023361E7DCB35234), UINT64_C(0x3AF20624F5E89B7C)},
+         {UINT64_C(0x860F188EA5B2B103), UINT64_C(0x5EAC84CECB6D112F),
+          UINT64_C(0x63B200C3914C9FFD), UINT64_C(0x327870A055A1FDCB)}},
+        {{UINT64_C(0x4F94633C155280ED), UINT64_C(0xF98321D53654B8AA),
+          UINT64_C(0x9C057A23489AE89A), UINT64_C(0x1124A1FBD59CA3B5)},
+         {UINT64_C(0x2F4CE0521F64AFD7), UINT64_C(0x841EE4417C789152),
+          UINT64_C(0x93531ED459A98374), UINT64_C(0x69A4F48C36BB8F07)}},
+        {{UINT64_C(0xD8FFD2435FD512A7), UINT64_C(0xF48C96F19BEA1738),
+          UINT64_C(0xF70E1F6A0FFB4553), UINT64_C(0x29DB63B15FF91D21)},
+         {UINT64_C(0xC1355C2377BF7279), UINT64_C(0xD3946EE9A2FC904D),
+          UINT64_C(0x07223881E7B7A9F4), UINT64_C(0x212D896756E08ED6)}},
+        {{UINT64_C(0x32B8C22A45503451), UINT64_C(0x9E4FDAF1E6AB7B3D),
+          UINT64_C(0x7A300E3D04A31294), UINT64_C(0x0F529DFD05FE2AEB)},
+         {UINT64_C(0x7EFFEA9E9951B6FB), UINT64_C(0x18C60266336B9A2B),
+          UINT64_C(0xB78A5EE16C8D0EEC), UINT64_C(0x68C17FE446ED0B23)}},
+    },
+    {
+        {{UINT64_C(0xF707FAD596B3222E), UINT64_C(0xD6AF61610223F804),
+          UINT64_C(0x13FFDC744F43A0E9), UINT64_C(0x6A3B70E93347F487)},
+         {UINT64_C(0xBDDF02A46A4AF4F5), UINT64_C(0x61B451E1E4C69950),
+          UINT64_C(0xFF854590F9E3BB99), UINT64_C(0x46EB1F697CD54C54)}},
+        {{UINT64_C(0x70E643B68E6848D3), UINT64_C(0xC58B8519848C2587),
+          UINT64_C(0x2F195C54EDF4A38E), UINT64_C(0x206E6A323D2A52E8)},
+         {UINT64_C(0x234845B5417595BF), UINT64_C(0x90354373FF5AE3CB),
+          UINT64_C(0x13BE31CE89C0E555), UINT64_C(0x2D18AA43CC67E26F)}},
+        {{UINT64_C(0xC74EE8C4F041BD17), UINT64_C(0x655CF527C2B3CC64),
+          UINT64_C(0x6735CF0A160FF053), UINT64_C(0x35DAB9EB04218A0D)},
+         {UINT64_C(0x32BB2E9ACBC34E46), UINT64_C(0xF780CEAF7D190342),
+          UINT64_C(0x161C0C1A9F0DA1A4), UINT64_C(0x7B198C9EE7642FD6)}},
+        {{UINT64_C(0x936C763E122FD0B4), UINT64_C(0xA3819ED9A7E0C435),
+          UINT64_C(0x86228B04CAAE6D7B), UINT64_C(0x2E1160187A3C65B4)},
+         {UINT64_C(0xF55BB1F3D4EB0345), UINT64_C(0x858A0BF40630B569),
+          UINT64_C(0x8CC22657CB78A626), UINT64_C(0x7CD93BDEB45E3005)}},
+        {{UINT64_C(0xCAA1F45998E517AB), UINT64_C(0x36E60281B34A6F5C),
+          UINT64_C(0x877A49F30B46F47F), UINT64_C(0x0179824B9E7BE761)},
+         {UINT64_C(0x6830A2B2D455D9C0), UINT64_C(0xB734BA0A7BA31962),
+          UINT64_C(0x344665A4065C3B51), UINT64_C(0x0B1D2210562E7F1D)}},
+        {{UINT64_C(0x289BAFCA0B2E22E8), UINT64_C(0x038929A083390107),
+          UINT64_C(0x968A014D0683E782), UINT64_C(0x5A1AD5C853D34463)},
+         {UINT64_C(0xA26133349527B2CA), UINT64_C(0xE8471271310B745F),
+          UINT64_C(0x49C81A2631387F59), UINT64_C(0x1B955AF70343C691)}},
+        {{UINT64_C(0x069328ADA4A9FCA4), UINT64_C(0x14EF09A7624FCB94),
+          UINT64_C(0x21C76F0DE3E0CECD), UINT64_C(0x5F470B866C1BCE0F)},
+         {UINT64_C(0x79319A3FB15BC8B4), UINT64_C(0xB1407CB1DB06AFA1),
+          UINT64_C(0xD69E9E09911116E0), UINT64_C(0x6E77524E0756579E)}},
+        {{UINT64_C(0xD3EC5EBCE2D851D5), UINT64_C(0xC888BC2303B63143),
+          UINT64_C(0x5F3DE41EDB0C357F), UINT64_C(0x646FFBD3C3D47D37)},
+         {UINT64_C(0xE53F8BEB0692639B), UINT64_C(0x7E194E37D4FBC3D4),
+          UINT64_C(0xE1988A22452B2A2E), UINT64_C(0x5D359A15B013F9E1)}},
+        {{UINT64_C(0xA48160A7B2A6627D), UINT64_C(0x5EFDC8483CE8789E),
+          UINT64_C(0x264CBFF1B1CD14EE), UINT64_C(0x288823D444D84222)},
+         {UINT64_C(0x2F091B233A6DB1F8), UINT64_C(0xBFD737B5CEA89B44),
+          UINT64_C(0x682AB86C17F5E969), UINT64_C(0x7653005CABB0FA87)}},
+        {{UINT64_C(0x619C2629D4B8A43A), UINT64_C(0xBFDAF433B6DAF943),
+          UINT64_C(0xDC7AA1EE6D640DB8), UINT64_C(0x35ADEEA83B08D55C)},
+         {UINT64_C(0x30935454D7AF5382), UINT64_C(0x1F9C51A13D68A24A),
+          UINT64_C(0xDBD13CFC78BDBEA9), UINT64_C(0x003B6D9931210A3F)}},
+        {{UINT64_C(0xD4547A329C2B515D), UINT64_C(0x4AF29AA8FECDAAA9),
+          UINT64_C(0x85C80ECDE401D5AD), UINT64_C(0x2830332D8AA315A1)},
+         {UINT64_C(0x5675882371DCE198), UINT64_C(0x55AC9D106ACBDEE3),
+          UINT64_C(0xF6D468CF575CF4BB), UINT64_C(0x46E4FA98576B5C4A)}},
+        {{UINT64_C(0xAD20F82020D859EF), UINT64_C(0x380915882A5462B0),
+          UINT64_C(0x35F45C9F2135DA7D), UINT64_C(0x6B426F91F7F20DBD)},
+         {UINT64_C(0x4A0D8CBEF96E77D2), UINT64_C(0x8FC36F5BCC51D3F4),
+          UINT64_C(0x7A1870DDBE16A0A8), UINT64_C(0x29C3E2B3114DB780)}},
+        {{UINT64_C(0xFF692A4C21779E6E), UINT64_C(0x698231ABA6026EC1),
+          UINT64_C(0xDAB0D835EF03E21B), UINT64_C(0x770BFFACC846D56F)},
+         {UINT64_C(0xCD28722D3B8B0747), UINT64_C(0x3DEFE04032AE95E5),
+          UINT64_C(0x6F5D816A0F9857D6), UINT64_C(0x2E483FEDFC630F5E)}},
+        {{UINT64_C(0xDBF82EC4967C7140), UINT64_C(0x6265CAD10D20A2A5),
+          UINT64_C(0x1509652B5862DEFE), UINT64_C(0x699DD93994A284E5)},
+         {UINT64_C(0xC01166460B2CC732), UINT64_C(0x583FE01294C3EF86),
+          UINT64_C(0xCD5DAEA8CD353430), UINT64_C(0x2B39A746C7ADA62B)}},
+        {{UINT64_C(0xF449B989E4257BBC), UINT64_C(0x95BA21BAA90DCCE6),
+          UINT64_C(0xDD53AD5C93CA4ACD), UINT64_C(0x7FCF27380BB4213B)},
+         {UINT64_C(0x0E57C1C0C2E7E54E), UINT64_C(0xD1769DAEA1A0E975),
+          UINT64_C(0x68F62C4EC3B6E13B), UINT64_C(0x75152F9A781242D8)}},
+        {{UINT64_C(0x4D58276824B8B820), UINT64_C(0x36E37AC45BBD9F84),
+          UINT64_C(0x1F34414ADA076F12), UINT64_C(0x08A77C283E0333C6)},
+         {UINT64_C(0xBB1F017DD9193382), UINT64_C(0x56E9AA2483A5612D),
+          UINT64_C(0x6959B02BD0B4554F), UINT64_C(0x2479BC56E4559B52)}},
+    },
+    {
+        {{UINT64_C(0x96D631C60F570A8E), UINT64_C(0xE3F566A3D714B807),
+          UINT64_C(0x564DD512EF7E1550), UINT64_C(0x1C5CF24A79FA2F58)},
+         {UINT64_C(0x973BA599897958DB), UINT64_C(0x93951D1711A9CBB1),
+          UINT64_C(0x86BA17F6A37A969A), UINT64_C(0x4807CAC7A069B195)}},
+        {{UINT64_C(0xB64AC0D46665B35E), UINT64_C(0xBA9CD3947EF72C68),
+          UINT64_C(0x838807B29C4CBC44), UINT64_C(0x2675D26882770197)},
+         {UINT64_C(0xBFC2F13717087FA9), UINT64_C(0x811E644BE7B79B31),
+          UINT64_C(0x597CE23FC963A061), UINT64_C(0x40BC32E42EA0DEB0)}},
+        {{UINT64_C(0xC0AEFB5027C85959), UINT64_C(0x76D1087E058E0FDD),
+          UINT64_C(0x6ADA5AAF7E51A6F8), UINT64_C(0x424B16E0054A058D)},
+         {UINT64_C(0x9A2C20A963AF9766), UINT64_C(0x4C1CB5323CF18DAB),
+          UINT64_C(0x599CD9296C5D6A00), UINT64_C(0x57C39BAE8AA311BF)}},
+        {{UINT64_C(0x3FDF5B46CD987F02), UINT64_C(0x57755078353175C4),
+          UINT64_C(0x80223EC0CD578394), UINT64_C(0x04BBA6ACAEB7D278)},
+         {UINT64_C(0xD27FD2BE8688BFB2), UINT64_C(0xB2F80278C27A62E5),
+          UINT64_C(0x8BA6FB07339429D8), UINT64_C(0x57737FF63AB70AA0)}},
+        {{UINT64_C(0x0140E47F8EAEB3C9), UINT64_C(0xB91C9798735AC8EA),
+          UINT64_C(0x325E031283D4EFAA), UINT64_C(0x1E7DA3BED9C5888E)},
+         {UINT64_C(0xA210CDA6F7F1EB13), UINT64_C(0xEDC1F6B3936EA9E9),
+          UINT64_C(0x46E831C41B097F65), UINT64_C(0x008576011939A0AE)}},
+        {{UINT64_C(0x7C26F7111F68BB40), UINT64_C(0xEA69C84539DDBE6D),
+          UINT64_C(0x590BF426E5316F22), UINT64_C(0x40CDC921CC2DF9C9)},
+         {UINT64_C(0x28A32DDEF3F991C6), UINT64_C(0xD75B59E65356CA78),
+          UINT64_C(0xB5DD3861D1F5F318), UINT64_C(0x09EB1A2DE7929834)}},
+        {{UINT64_C(0x701F9A2DDBC0370D), UINT64_C(0x559D0FAF2870B59D),
+          UINT64_C(0xE89E5DF055367B5D), UINT64_C(0x22BBD4FC74005A58)},
+         {UINT64_C(0x7ACED1E499CDC76B), UINT64_C(0xD41C827CE3C219D3),
+          UINT64_C(0x5AF3F2AE8221D91F), UINT64_C(0x6D62C990E5B6BC98)}},
+        {{UINT64_C(0x23B2A0BF7FFC9D0F), UINT64_C(0xED98F71D974CA299),
+          UINT64_C(0x10F8C07A151D559B), UINT64_C(0x40E46FC38E949C62)},
+         {UINT64_C(0x0CF53E34BBE55338), UINT64_C(0xF2D6CF26115520D4),
+          UINT64_C(0x915FF09A590B4E23), UINT64_C(0x072E4233BEDC75F2)}},
+        {{UINT64_C(0xB67A6B60997E9BFA), UINT64_C(0xE7686AC9973BC3E7),
+          UINT64_C(0x9525B4490B228320), UINT64_C(0x6C7275837ADE8F19)},
+         {UINT64_C(0x3D064298062FF3D5), UINT64_C(0x5483826C07E22768),
+          UINT64_C(0xF4ADE9211F7A64A4), UINT64_C(0x70BDDCF7BD92EB25)}},
+        {{UINT64_C(0xA8DB36115D8A9E36), UINT64_C(0xAA6A5F33FA81065A),
+          UINT64_C(0x8EC120A3366DDA90), UINT64_C(0x2AA0AB25D8A15CF7)},
+         {UINT64_C(0x5E11E169A0DFFB9C), UINT64_C(0x8C7572E9118408A7),
+          UINT64_C(0x4EEFD13E35833ADF), UINT64_C(0x2C6732E8FC2C1811)}},
+        {{UINT64_C(0x15D063F9B1537DF6), UINT64_C(0x864176B30414FCFD),
+          UINT64_C(0x9C0A194C8FF9E32E), UINT64_C(0x4DB14C6FDDE1540B)},
+         {UINT64_C(0xFAA4AED431F6493F), UINT64_C(0x2C479F1DD3C41A46),
+          UINT64_C(0xC31196678E5E85A2), UINT64_C(0x7E567C8084E9A76C)}},
+        {{UINT64_C(0xB9E2C92A689A6B95), UINT64_C(0xCCEAC3833B635B01),
+          UINT64_C(0x04FEA46534AAB952), UINT64_C(0x772E502763B5CF63)},
+         {UINT64_C(0xCB94F5D225830581), UINT64_C(0x791004AFC77FB7DE),
+          UINT64_C(0x53273C335140E4AE), UINT64_C(0x0C2D329EA524419F)}},
+        {{UINT64_C(0xB7CEDA36B307B0E4), UINT64_C(0x12DF7FD00F8F9667),
+          UINT64_C(0x74274002BF62BD94), UINT64_C(0x6765C73DC436C319)},
+         {UINT64_C(0x79B64CE5F6EEC946), UINT64_C(0x3B1B4B43DAB258B6),
+          UINT64_C(0x377819A3EE1F8B84), UINT64_C(0x1F45F1D676D0EB1F)}},
+        {{UINT64_C(0xCC5BF9B358C953AD), UINT64_C(0x8303250F7BAD1D2C),
+          UINT64_C(0xBCA7BC36F164972B), UINT64_C(0x2CACF8A9B1DFDA64)},
+         {UINT64_C(0xB03A59B9D4E2A06F), UINT64_C(0xFED68E681B7FB8FD),
+          UINT64_C(0x08F75A527E747AE6), UINT64_C(0x3299EA6B37A4420B)}},
+        {{UINT64_C(0x49A00BE6932E5BA6), UINT64_C(0x4921250556114C4B),
+          UINT64_C(0x786B7D31376183C7), UINT64_C(0x01F9E229DD8A5EAF)},
+         {UINT64_C(0xE9B8E99053094AD4), UINT64_C(0x2EDA305CBFAEDFA8),
+          UINT64_C(0x344437267F9E3BC8), UINT64_C(0x1729519C6B55B3C3)}},
+        {{UINT64_C(0xEA5A68C050A597D6), UINT64_C(0xA65147D4F1E86D1B),
+          UINT64_C(0x554FA36B8B47CDEB), UINT64_C(0x7F38364B9F24FFED)},
+         {UINT64_C(0x657C7E051D2A8E2B), UINT64_C(0x8270F1A7E3F64D62),
+          UINT64_C(0xFD258B59953AF5A2), UINT64_C(0x6DE0114143510AA3)}},
+    },
+    {
+        {{UINT64_C(0x483904280D7A5CBE), UINT64_C(0xD37E8C1FDE441E5E),
+          UINT64_C(0x908C88B80DE31C8C), UINT64_C(0x7C0E24BB0ACD87CE)},
+         {UINT64_C(0x4A78117725ECCCE8), UINT64_C(0xC06C2F7ACBDA746F),
+          UINT64_C(0xDB9E9A08AB565DD4), UINT64_C(0x1E9B44C0BE776F5B)}},
+        {{UINT64_C(0x7CFD4E5085B54ABC), UINT64_C(0x41A4A4DCE7A44F8B),
+          UINT64_C(0x751C5052A4422576), UINT64_C(0x534FE0B2D56B6CB1)},
+         {UINT64_C(0x22DAA5CDD5D767D0), UINT64_C(0x9C1999AB0AF8E22C),
+          UINT64_C(0xC70C093299259068), UINT64_C(0x459D212EFD0839F0)}},
+        {{UINT64_C(0xA207E7DEFD32D79B), UINT64_C(0xA7B54991410B479F),
+          UINT64_C(0x806912B6D68E5CDC), UINT64_C(0x1CB7B68C92AB8B64)},
+         {UINT64_C(0x3DB85378DF98339F), UINT64_C(0xA24101DC83EA7A18),
+          UINT64_C(0x8892367CE25522C5), UINT64_C(0x491A8BB37753A2C3)}},
+        {{UINT64_C(0x571C547E8C7875A7), UINT64_C(0x7E5F23E4E9747C13),
+          UINT64_C(0x00F3BBB21058548D), UINT64_C(0x7081F172E2397102)},
+         {UINT64_C(0xB4351B8A6B573034), UINT64_C(0xB35A4F44C1A094F0),
+          UINT64_C(0xE2C1DAEDAE951E96), UINT64_C(0x5CF2A742B9DAA081)}},
+        {{UINT64_C(0xB4F0D3F09828ED9F), UINT64_C(0x6DB312FBA9251386),
+          UINT64_C(0xC9A4583F537203F2), UINT64_C(0x5E0996399CE76D40)},
+         {UINT64_C(0x3381B894C9F8CEA8), UINT64_C(0x8242DAF8626E07E8),
+          UINT64_C(0x64A0B68C6077DFD9), UINT64_C(0x3CC462C0563CF051)}},
+        {{UINT64_C(0x8937364C87AF4A45), UINT64_C(0x8C4ACBFA2DE0FD60),
+          UINT64_C(0xF10AED11472A5D8A), UINT64_C(0x3F5674B55380C2E6)},
+         {UINT64_C(0x8F4FD0F52BF8A452), UINT64_C(0xB436E388C7390418),
+          UINT64_C(0xAFAB7B7CE6EE9406), UINT64_C(0x4F623177951739BA)}},
+        {{UINT64_C(0x90B0ED35A9B50F2A), UINT64_C(0x46DC3F91AC6CF217),
+          UINT64_C(0x2F1420312C7B119C), UINT64_C(0x55A93CBC07D79225)},
+         {UINT64_C(0x45E0DD7DB304A642), UINT64_C(0xB743DFCDD572D446),
+          UINT64_C(0x867B02EBAC74B368), UINT64_C(0x67B2B86C169B94B0)}},
+        {{UINT64_C(0x18396DA7483CFEDB), UINT64_C(0x6C6E03708A3A07C2),
+          UINT64_C(0xF32A1AFEAB554998), UINT64_C(0x408C911987D1C136)},
+         {UINT64_C(0x755F63254BBE0B78), UINT64_C(0xDC4A7319D1178550),
+          UINT64_C(0x44B49813B3B9E459), UINT64_C(0x0294B9A94C3D3620)}},
+        {{UINT64_C(0x6480F6FE067FA6FF), UINT64_C(0x67891400F307A52E),
+          UINT64_C(0x9F846EF87F865DA8), UINT64_C(0x318DAC55AE02F671)},
+         {UINT64_C(0x91119652E288A317), UINT64_C(0x4D7CF2B8038C61B8),
+          UINT64_C(0x098F80DD5154C1A8), UINT64_C(0x10C04F87D239A2D4)}},
+        {{UINT64_C(0x134609265CA6F183), UINT64_C(0x5E97AD18D52001ED),
+          UINT64_C(0x7DCD2477E14843DF), UINT64_C(0x27DAB27698A30426)},
+         {UINT64_C(0x7939CAE3E120D80C), UINT64_C(0xC9F4646651E5B81A),
+          UINT64_C(0xED620322E2E49D52), UINT64_C(0x3C0F5A2EFA172BBB)}},
+        {{UINT64_C(0xBFFE87425DB1196B), UINT64_C(0xCD45F8ED49B7214E),
+          UINT64_C(0x923ABA47C35F5C33), UINT64_C(0x16ED1F1083F3EE48)},
+         {UINT64_C(0x042E6DF099274930), UINT64_C(0xE8AE1DCFC5F8EA16),
+          UINT64_C(0x004462CBF02EA2B2), UINT64_C(0x427F9381D284B04E)}},
+        {{UINT64_C(0x4CD481F875EFACC5), UINT64_C(0xD98C3FD421C83368),
+          UINT64_C(0x4335E7C83894CE88), UINT64_C(0x18321F87955A298C)},
+         {UINT64_C(0x073DD00AD1716E18), UINT64_C(0x66D82A5FFE0BFE61),
+          UINT64_C(0x7D869E202310C532), UINT64_C(0x29A376FB19BF4704)}},
+        {{UINT64_C(0xA1B12B35C149B5B0), UINT64_C(0x3411B2311E828959),
+          UINT64_C(0x56417519560D99FB), UINT64_C(0x4E0EB143EBB52124)},
+         {UINT64_C(0x7B594B5E6AEF3801), UINT64_C(0x00AEE12E9ECB536E),
+          UINT64_C(0x6BF0FB2956E23145), UINT64_C(0x2B2D83B961AE8E98)}},
+        {{UINT64_C(0x9CB3E2E86AC27F2D), UINT64_C(0x82BACA965A6280AA),
+          UINT64_C(0xCBC6C01B2C6B7C8F), UINT64_C(0x390511BCD0C01ABD)},
+         {UINT64_C(0xB322D97249551C0D), UINT64_C(0x7905E82E7B6489C8),
+          UINT64_C(0x4DD0CE8B40EEC20D), UINT64_C(0x5C0B3EE72409298A)}},
+        {{UINT64_C(0x4418D685B635FB99), UINT64_C(0x652EA6083ACE8B39),
+          UINT64_C(0xE586FBDC46FC4047), UINT64_C(0x3C832D34D8CC13D8)},
+         {UINT64_C(0x14CC9F23F7AA54A1), UINT64_C(0x80D094E607153B9F),
+          UINT64_C(0x0776E5406A2EED8E), UINT64_C(0x03CC3BFC77249085)}},
+        {{UINT64_C(0x5F8F281F1308C1A8), UINT64_C(0x31C8E737D1AFC4B7),
+          UINT64_C(0x6778529841AE8EF2), UINT64_C(0x17716086FD028A4B)},
+         {UINT64_C(0x1A2083E0F922E100), UINT64_C(0xD67EC9D1D53FE691),
+          UINT64_C(0x2DF8B6EDECCA8DEB), UINT64_C(0x3B595EE4BCCC999E)}},
+    },
+    {
+        {{UINT64_C(0x11F03F895A4B8C04), UINT64_C(0x254C36487DAE8E6B),
+          UINT64_C(0xAB6EAAF1637CDB83), UINT64_C(0x41F52243FDDED8F6)},
+         {UINT64_C(0x487078E1BBDF3270), UINT64_C(0x98853B49339CEA28),
+          UINT64_C(0x8AF0522BAB3EDE57), UINT64_C(0x734D711F85EB4CC0)}},
+        {{UINT64_C(0xFD1F46ADF86BA644), UINT64_C(0xA5332B97A3299855),
+          UINT64_C(0x61BE90DBD9493634), UINT64_C(0x308F09B1C2705911)},
+         {UINT64_C(0xD59F1B1A0B7918A5), UINT64_C(0x9CF333D0CF6399E6),
+          UINT64_C(0xD09C63CDFBB26B6B), UINT64_C(0x76C27913A6536647)}},
+        {{UINT64_C(0x3DF1811FAAAB555C), UINT64_C(0x60853351886C828B),
+          UINT64_C(0xF6CA7707F1E87F41), UINT64_C(0x5B4F6EDF7D7082E6)},
+         {UINT64_C(0xADE518E03F672DE7), UINT64_C(0x00ED0B84022541B2),
+          UINT64_C(0x04FE5DD6618E8969), UINT64_C(0x2F5F5C65DB9CCA4D)}},
+        {{UINT64_C(0x00B69B4596BDAE2C), UINT64_C(0x06DB22CF770604C4),
+          UINT64_C(0xC2EB7F8F856585C3), UINT64_C(0x6E3225390413C614)},
+         {UINT64_C(0x22C09EA870A46872), UINT64_C(0x143E73BC1FF23734),
+          UINT64_C(0xCAC5E2DD575C20B4), UINT64_C(0x225E53903FEBE787)}},
+        {{UINT64_C(0x594FEA4EBE9C512D), UINT64_C(0x5850709292CB73AE),
+          UINT64_C(0xFD8EFC7DB0CE2096), UINT64_C(0x3B58C199E031D6AB)},
+         {UINT64_C(0x55DA1CBD479F23E4), UINT64_C(0x060C6BB5A6DB6137),
+          UINT64_C(0xD8319CF86864488E), UINT64_C(0x6C15A31B21B02EDA)}},
+        {{UINT64_C(0x13C483728CA7084D), UINT64_C(0xF7554E59A171ECE5),
+          UINT64_C(0x7425C5D823A97699), UINT64_C(0x6F2C68DA71E1120E)},
+         {UINT64_C(0x9591B9B624324B64), UINT64_C(0x2DA33472C02AC704),
+          UINT64_C(0xC5DE7FC981EE1295), UINT64_C(0x6A646A445D6E93C6)}},
+        {{UINT64_C(0x48684061A39D6554), UINT64_C(0xB70ABF61C3DF57B6),
+          UINT64_C(0x9824AFD658B9EEE3), UINT64_C(0x46EBE9D13A14A733)},
+         {UINT64_C(0x8E70F95DD74F8E94), UINT64_C(0xA9D922A26AFCA4E2),
+          UINT64_C(0x519A97536988CC16), UINT64_C(0x711DEF16D545AF8A)}},
+        {{UINT64_C(0x362A5D95811A2BF7), UINT64_C(0x42A84A33566B90CE),
+          UINT64_C(0x25CBC7607C41EC87), UINT64_C(0x6B77E39CD4B7DBEE)},
+         {UINT64_C(0xA98B8201833015A4), UINT64_C(0xE412E217C31B26F4),
+          UINT64_C(0x518BE8F0E0090782), UINT64_C(0x08D9F4B63DB51D4E)}},
+        {{UINT64_C(0x2C80CE87297D421E), UINT64_C(0x2FD137F8ADBA1498),
+          UINT64_C(0xA2ED3D472899AA14), UINT64_C(0x2AC924A5FE4F365A)},
+         {UINT64_C(0xAC0389B7666DC0A0), UINT64_C(0x3CC997398ABF3D9E),
+          UINT64_C(0x33060DB6DFBFF83A), UINT64_C(0x54EEE2150339C3B8)}},
+        {{UINT64_C(0x06C3A4F5820F7E4D), UINT64_C(0x86F083E208C3D311),
+          UINT64_C(0x47E29984FE4B0476), UINT64_C(0x218F52E2CA7DF6CF)},
+         {UINT64_C(0x59317E26BF2C2084), UINT64_C(0xEA9C865B289A10CF),
+          UINT64_C(0x7AA1E50B2074FEA3), UINT64_C(0x708A1D8C4B3EFC31)}},
+        {{UINT64_C(0x34C5C63E864817D7), UINT64_C(0x0F614043D89E995B),
+          UINT64_C(0x60CE8BCE975E2A03), UINT64_C(0x70916E2978493E0C)},
+         {UINT64_C(0xBD0748F9216782C6), UINT64_C(0x0051C65AED32FB72),
+          UINT64_C(0x9DC5F5584DD64705), UINT64_C(0x674F1A63EEC14B50)}},
+        {{UINT64_C(0x73D6E68EDB633FD1), UINT64_C(0x7B5F8303F52F9537),
+          UINT64_C(0x980FDDDC88A74CFB), UINT64_C(0x6419C18F47FC32D1)},
+         {UINT64_C(0x93727B4C870B5D59), UINT64_C(0x4BCE05DECF28021D),
+          UINT64_C(0x3C059B47AB4F0CE5), UINT64_C(0x77CA7F67B85FFDBB)}},
+        {{UINT64_C(0xDBEADDCEC525088E), UINT64_C(0x561E12BE390D2221),
+          UINT64_C(0xCD224FC1D9BA7AF0), UINT64_C(0x03744552394DC073)},
+         {UINT64_C(0xCFC67B4921BB6B6E), UINT64_C(0xD234FD8D1B5F8E6A),
+          UINT64_C(0x6DDBC18B40B7F8B0), UINT64_C(0x79F40857DAACCC74)}},
+        {{UINT64_C(0x30E5F9909DD71B9C), UINT64_C(0x00FCBFA5291124EF),
+          UINT64_C(0xBE595A2549B8C570), UINT64_C(0x5B4B8141BC094446)},
+         {UINT64_C(0xB22B4F04469191B6), UINT64_C(0x10845AC8D73C4D38),
+          UINT64_C(0x39C9F0FBED0C8224), UINT64_C(0x7E009DFBF5813BEE)}},
+        {{UINT64_C(0xA47C2989A61D09C0), UINT64_C(0x3706F45659E55A9C),
+          UINT64_C(0x2373976FEA0259B9), UINT64_C(0x13FC0E09077D20CC)},
+         {UINT64_C(0xBB24DD05E78D29CF), UINT64_C(0xD8757A67822CFA02),
+          UINT64_C(0x36CA74863C55A4C6), UINT64_C(0x4234E6893EEABBE1)}},
+        {{UINT64_C(0xA2F54D14B46BDB51), UINT64_C(0x8A530B78675BB770),
+          UINT64_C(0x617D7E8EDE9F1F8B), UINT64_C(0x799B3E442DCC4712)},
+         {UINT64_C(0x658A31D8B486FE8C), UINT64_C(0x45BAFC29163D4AF0),
+          UINT64_C(0x3A2C7F66A5289C8D), UINT64_C(0x4ECC3C7DB91FF3DB)}},
+    },
+    {
+        {{UINT64_C(0x738CF1C7DF4DFD43), UINT64_C(0x72943A2DE987084C),
+          UINT64_C(0xEA21C05F2491FF24), UINT64_C(0x3D3F4ED7DA050094)},
+         {UINT64_C(0xF90644E461C4054D), UINT64_C(0x253792143A50E82A),
+          UINT64_C(0x47EDB006C7DEF970), UINT64_C(0x0F8F031C0F53F307)}},
+        {{UINT64_C(0x50FEB6D8724976D5), UINT64_C(0x57AA499FF40C7720),
+          UINT64_C(0x6B80AC540DAAF428), UINT64_C(0x7AC6845E1F6FC276)},
+         {UINT64_C(0x8EC7FAB117A4B9C5), UINT64_C(0x8336DD62ED0C8F97),
+          UINT64_C(0x6014A510B7B7104E), UINT64_C(0x4991A03BA2911C30)}},
+        {{UINT64_C(0x6D353975CBCC9BA3), UINT64_C(0x23E97E28C4564492),
+          UINT64_C(0xDF432FDAF8AEED3E), UINT64_C(0x11DB40DD6F6B472C)},
+         {UINT64_C(0x5B87005B95AA0174), UINT64_C(0x1DB4108089D9F1A8),
+          UINT64_C(0x5A6BC444689DF208), UINT64_C(0x16153F87BF38FF8D)}},
+        {{UINT64_C(0xD217003FFFD3C814), UINT64_C(0x1ADE64C3FD50AF95),
+          UINT64_C(0x1936332C9FFB8BEB), UINT64_C(0x6EE322DCD70CD8D8)},
+         {UINT64_C(0xE40A0419F2A60976), UINT64_C(0xA62F6FA1EF93B05B),
+          UINT64_C(0x5978206C596575FF), UINT64_C(0x5CDCA200B68BFE5C)}},
+        {{UINT64_C(0x3FB16AEDB7949E33), UINT64_C(0x3453892840304A1B),
+          UINT64_C(0x7FA35A343BCA4239), UINT64_C(0x22FD1AEFEE76919E)},
+         {UINT64_C(0x1F8FE6A40F6A5D50), UINT64_C(0x27CC704F26BBA46B),
+          UINT64_C(0x230FD0CA3420CC52), UINT64_C(0x3E9E4DA4B3A83D85)}},
+        {{UINT64_C(0x1D82390E7F5CC75E), UINT64_C(0x7025624549D0A605),
+          UINT64_C(0x5B8778134FF4BC44), UINT64_C(0x28E6A057B5EC02E4)},
+         {UINT64_C(0xBC7A10DA2E89FB84), UINT64_C(0x3AF182E520E1EA00),
+          UINT64_C(0x4B590FFA9C507274), UINT64_C(0x26BA94D6AA7FD65B)}},
+        {{UINT64_C(0xC02CC77C238CC195), UINT64_C(0x3F175C97A97EE3E4),
+          UINT64_C(0x8A28FA23DFA1F9DC), UINT64_C(0x35CAC0FF1F968D15)},
+         {UINT64_C(0x0FC41B3337C7C773), UINT64_C(0x71E06B10BC999443),
+          UINT64_C(0x073A1ABA2C87B0A4), UINT64_C(0x29F29B129E5E8B70)}},
+        {{UINT64_C(0xAA25F348E491FE70), UINT64_C(0x9371F94BC1713992),
+          UINT64_C(0x674B478C4FA08818), UINT64_C(0x6F3C31FEB1407431)},
+         {UINT64_C(0xBB7D37FBD93DD5E1), UINT64_C(0xE34A40B87E04EE7A),
+          UINT64_C(0xCF82360DF3C33528), UINT64_C(0x0A3B8FF501477712)}},
+        {{UINT64_C(0xA45914716B718511), UINT64_C(0x7B0CE8DED2FD6B9B),
+          UINT64_C(0xC42544FA6845DBEF), UINT64_C(0x456A698563AF476A)},
+         {UINT64_C(0x5DD611F69CDE4E74), UINT64_C(0x860956832B346AEB),
+          UINT64_C(0xD15C5DA06E75B3D7), UINT64_C(0x220FFD73C72D5D2C)}},
+        {{UINT64_C(0x478DA345D2ED888F), UINT64_C(0xA69D4FB9E04CBCC7),
+          UINT64_C(0xA427150AB3F1179D), UINT64_C(0x1DD3B8C2D5CEA78A)},
+         {UINT64_C(0x9462EFF0B8628A22), UINT64_C(0xB2FFFF4AB2CB44A5),
+          UINT64_C(0x8234A3FF24039BA8), UINT64_C(0x01BE7202916DE889)}},
+        {{UINT64_C(0x510669856DFCEF0B), UINT64_C(0x25729D98DF20CDEE),
+          UINT64_C(0x872FD39D9693E5EF), UINT64_C(0x72D03AE12D859635)},
+         {UINT64_C(0x3F28F84EDACAEB82), UINT64_C(0x9EB40FD6CB5284D7),
+          UINT64_C(0x66C2DCA6C5F54041), UINT64_C(0x4BDBA3821C1F2461)}},
+        {{UINT64_C(0xE53421970E0ED176), UINT64_C(0xF588547AA225A47F),
+          UINT64_C(0xC83B54ED1FEB2259), UINT64_C(0x1B03791392F3733D)},
+         {UINT64_C(0x935C97822271ECFA), UINT64_C(0x5F7E94A653CFE07C),
+          UINT64_C(0xBFF5B0E61B40CA19), UINT64_C(0x36C7851D459445E1)}},
+        {{UINT64_C(0xB6547971588C9748), UINT64_C(0xCFD8E81B11970562),
+          UINT64_C(0x41333C80702FE4FA), UINT64_C(0x2F153C8C962A993B)},
+         {UINT64_C(0x028BBD6A8BDA48AC), UINT64_C(0x7B076F88FE1DB02A),
+          UINT64_C(0xC9560400078FB3FC), UINT64_C(0x5DCC0946035907EA)}},
+        {{UINT64_C(0x93D7CF33A6233F1C), UINT64_C(0x03184BC4DF2A187C),
+          UINT64_C(0x291149BCE83DAC32), UINT64_C(0x575F4279FAEDF216)},
+         {UINT64_C(0x101427B4086FC141), UINT64_C(0xC924F2AED288562E),
+          UINT64_C(0xDB610463EEF5799A), UINT64_C(0x20F187676A09661D)}},
+        {{UINT64_C(0xE39BB775F59D0C20), UINT64_C(0x18DA90E2723A4EF2),
+          UINT64_C(0x8E747A7BF56B381B), UINT64_C(0x7EF67224F98F26DC)},
+         {UINT64_C(0xB1373AF5E1F94B99), UINT64_C(0x1076FBA60C3B6AA8),
+          UINT64_C(0x7FCD0017A3A7811C), UINT64_C(0x6D1A697346554E7E)}},
+        {{UINT64_C(0xE5734077B9CED2C2), UINT64_C(0xC94D17F81F770914),
+          UINT64_C(0x58B47BCB1CD248EB), UINT64_C(0x2E06538C24804B6F)},
+         {UINT64_C(0x275D933F32E7CA19), UINT64_C(0x1B982B491FC9241E),
+          UINT64_C(0x8B8A6ED53986B6AC), UINT64_C(0x1756822135B4EA6A)}},
+    },
+    {
+        {{UINT64_C(0x090AD05AE796327F), UINT64_C(0xA78DAE5EAD21DD4B),
+          UINT64_C(0x8EEC9EDB9C2F8CBE), UINT64_C(0x33E375E0653E0F2D)},
+         {UINT64_C(0xDA19EFF28D67AC72), UINT64_C(0xBFC7E62B2737AB8C),
+          UINT64_C(0xBBF8BD1D4CF53C12), UINT64_C(0x5ABFE23F45C6D555)}},
+        {{UINT64_C(0x32460B330DE39342), UINT64_C(0x3567454AB8977067),
+          UINT64_C(0x10A1E47DF954592C), UINT64_C(0x4DE8C6EF4DD019C4)},
+         {UINT64_C(0x1F1D296B1BDAAAFA), UINT64_C(0x4E6B8E8F3A75AD99),
+          UINT64_C(0x259015E1A27FE061), UINT64_C(0x6B6A48209F320632)}},
+        {{UINT64_C(0x8AA089AFA0B5E605), UINT64_C(0x1D6C1EEE1B4058FD),
+          UINT64_C(0x1D920534B4E89BEF), UINT64_C(0x722A3A3516163340)},
+         {UINT64_C(0xA3B9178CF33B49B2), UINT64_C(0xFF8FE9BB65558E90),
+          UINT64_C(0x94766BC09794EFAE), UINT64_C(0x79A1EFA2FDFAEB42)}},
+        {{UINT64_C(0x2FE44B97BCB6D558), UINT64_C(0xB4F4F402DB8B0A79),
+          UINT64_C(0xF53D8AB1247C32E5), UINT64_C(0x3B883CE54DA4C009)},
+         {UINT64_C(0xB46168BD2EC9F1C6), UINT64_C(0xD40BDE7B6B8FE01A),
+          UINT64_C(0x60A5C168CDFE509F), UINT64_C(0x3314D87823BE249E)}},
+        {{UINT64_C(0x02511A854D9F5769), UINT64_C(0x8398F9BDB49D6A8E),
+          UINT64_C(0xE8D773F35D2D7135), UINT64_C(0x09B3B8AB9DECC331)},
+         {UINT64_C(0x8D2B269B584C11D9), UINT64_C(0xF76619446B6B86A9),
+          UINT64_C(0x719A3620C7659AF7), UINT64_C(0x3CFC8DF037C27DBE)}},
+        {{UINT64_C(0x5EE0BE061145B14B), UINT64_C(0xAC6950E423193ED6),
+          UINT64_C(0x7291C44CDF244C7F), UINT64_C(0x4650C16243D744EA)},
+         {UINT64_C(0x60B92D3F34A084D8), UINT64_C(0xBBD44A0E376E5414),
+          UINT64_C(0x5C0E488A0980F36C), UINT64_C(0x4E53FCCAD7991A09)}},
+        {{UINT64_C(0x7A2ADBCF367B55C2), UINT64_C(0x96A88B751FED467E),
+          UINT64_C(0x8E75E37EFB263845), UINT64_C(0x4C2E47B8EB508DD0)},
+         {UINT64_C(0x20BF51DEB19FCD14), UINT64_C(0xD907174914CB67D0),
+          UINT64_C(0xEC90714B29EBDA7C), UINT64_C(0x4ACADAA6634C0F2E)}},
+        {{UINT64_C(0xA516B9B8EC715EC9), UINT64_C(0xC7DCA26342B8A87B),
+          UINT64_C(0x2CE450C9DA27B456), UINT64_C(0x3C97481200A8819F)},
+         {UINT64_C(0xF4822C23ECDED574), UINT64_C(0xFA737FAD19FA48D4),
+          UINT64_C(0xE34B2F2A45D718E0), UINT64_C(0x1D6F19FEBEA7B540)}},
+        {{UINT64_C(0xADC8FCE798E24789), UINT64_C(0xFE2F890C45869609),
+          UINT64_C(0x6466E03C78A35C19), UINT64_C(0x24C70FEDC1F34AA9)},
+         {UINT64_C(0x89530F7557747DD1), UINT64_C(0x343DE05B2B8CDE2D),
+          UINT64_C(0xC33134E335CC8D5A), UINT64_C(0x3CCEFC38AC9B4F2B)}},
+        {{UINT64_C(0x84C904B8EF923364), UINT64_C(0x46E1FECFBDDD31D8),
+          UINT64_C(0xA8126DD6FAE79B6B), UINT64_C(0x4A53C034FBF05C9A)},
+         {UINT64_C(0x44CA3ACBBE8F255F), UINT64_C(0x6F0FD374EC319885),
+          UINT64_C(0xADBCB4AAF1836DC2), UINT64_C(0x6CC3A59665187EE9)}},
+        {{UINT64_C(0x941E7821B397B5E7), UINT64_C(0xD3457371FEE2A9D5),
+          UINT64_C(0x9F69BE4466382F60), UINT64_C(0x6DCEAD04A1F49E9B)},
+         {UINT64_C(0xDC6BC23B3BF21647), UINT64_C(0x1500FD7FB5271BE9),
+          UINT64_C(0x9B0994DDF23FDF3D), UINT64_C(0x38A2ECEB45065CF7)}},
+        {{UINT64_C(0x2667CEFE0DCA8BF4), UINT64_C(0x8227ACB3E46EB469),
+          UINT64_C(0x4C20677DA75C5B8B), UINT64_C(0x224FC5B4B36ACDFE)},
+         {UINT64_C(0xA0007E147A6A01D3), UINT64_C(0x15C79558F8A64EED),
+          UINT64_C(0xFB58A76A93DEDC09), UINT64_C(0x2057DDDC26F10A98)}},
+        {{UINT64_C(0x1FF658AEBDB27AE4), UINT64_C(0x7F30DF57DDD96647),
+          UINT64_C(0x63490B8DC7294313), UINT64_C(0x0EAEC5735435869E)},
+         {UINT64_C(0x85F05C49DF115B78), UINT64_C(0x95739C0C62992F5D),
+          UINT64_C(0x72F143192B573963), UINT64_C(0x05600E6486328FF4)}},
+        {{UINT64_C(0x9BE7331FEAB0F425), UINT64_C(0x2E4CF5AA74447C20),
+          UINT64_C(0x9B26F51266243D2A), UINT64_C(0x77C9672284AB5627)},
+         {UINT64_C(0xEC545427601673B4), UINT64_C(0xEF6A34FB2F127AF7),
+          UINT64_C(0x519559C1E2DFD269), UINT64_C(0x34D7D7548258E37A)}},
+        {{UINT64_C(0xC113747B5E8B5281), UINT64_C(0x0C085456E04D779B),
+          UINT64_C(0x3E3260521CCBCFC6), UINT64_C(0x5C954CC12A37D19F)},
+         {UINT64_C(0xB1A4A5B39124435B), UINT64_C(0x5E8B8D4118ED98E7),
+          UINT64_C(0xC973D969144A3793), UINT64_C(0x0CB98CC888DD8B49)}},
+        {{UINT64_C(0x0E0233B2B48D04DF), UINT64_C(0x1B3916E07BEAA4A5),
+          UINT64_C(0xA24A4BE4B672BE8C), UINT64_C(0x7A61506D845AB94D)},
+         {UINT64_C(0x160DFA0FE7F4CA3B), UINT64_C(0xA9562C89D84C1148),
+          UINT64_C(0x52979B9592A276EB), UINT64_C(0x17869B53924E86E9)}},
+    },
+    {
+        {{UINT64_C(0x5D39F4781A86D0D8), UINT64_C(0xDE5932DAFB8BC8A9),
+          UINT64_C(0xD706C6D72F5B4B70), UINT64_C(0x53F450FC8A36AFC2)},
+         {UINT64_C(0xE1DC35401E550B3B), UINT64_C(0x475507DC8B7EB6D2),
+          UINT64_C(0xF803F78ADFA2E5F7), UINT64_C(0x40B5F263C48097FF)}},
+        {{UINT64_C(0x336FB00E226CDB1F), UINT64_C(0xDDC1BB0288215C40),
+          UINT64_C(0x6C4DD40E73C07FD0), UINT64_C(0x4D0D2E498F7D15E7)},
+         {UINT64_C(0xAF96E9B3D2061402), UINT64_C(0x15A3084A1372FCF8),
+          UINT64_C(0x91B571E6307B02D6), UINT64_C(0x2239592F53AE7705)}},
+        {{UINT64_C(0x7D8615A1C20B6645), UINT64_C(0xF4875767C7C4465B),
+          UINT64_C(0xF6D3E718861702AB), UINT64_C(0x7F014A53131F726A)},
+         {UINT64_C(0x30809F8FDAAB77CA), UINT64_C(0x7CE8DC6128F944D3),
+          UINT64_C(0xF915111D9AEEF6A1), UINT64_C(0x246D7CC8206902FD)}},
+        {{UINT64_C(0x7677488BEF806225), UINT64_C(0x994C8104F4C75EAE),
+          UINT64_C(0x17586D4E4E0C8988), UINT64_C(0x70E5258090E33A2A)},
+         {UINT64_C(0xB993F26A022D2FED), UINT64_C(0x955C130D689FBFBD),
+          UINT64_C(0x0D3D1C63A3612E8E), UINT64_C(0x423D73E1B91A8DE6)}},
+        {{UINT64_C(0x7274BE083027164F), UINT64_C(0xDE907B4942FDB769),
+          UINT64_C(0x61D74449B697060D), UINT64_C(0x18A5FDC226602CC9)},
+         {UINT64_C(0xB08DC02B049CAF4A), UINT64_C(0xC84AF48578DBA1F1),
+          UINT64_C(0x0A5B35197178E4DF), UINT64_C(0x6EC7A7A55B26D0FE)}},
+        {{UINT64_C(0xDEF1782F88554F05), UINT64_C(0xB73E7333D8D6DF47),
+          UINT64_C(0x1DDF902290E9C67A), UINT64_C(0x5D217B51D56181AC)},
+         {UINT64_C(0x7A338C7BE27F90EE), UINT64_C(0xB97CCD2A0D84A177),
+          UINT64_C(0x3E1016017C5E3FA9), UINT64_C(0x2706E77C30FF0918)}},
+        {{UINT64_C(0x1BD1274F72A7CB9F), UINT64_C(0x8B60357A0622DB90),
+          UINT64_C(0x0140E14A2151BB23), UINT64_C(0x358D7DDAE9A30C4C)},
+         {UINT64_C(0x3B15306089BFB2C6), UINT64_C(0x47462C79B6757C69),
+          UINT64_C(0x2B22239DB43EF986), UINT64_C(0x6793671F0B774DE3)}},
+        {{UINT64_C(0x99EDB02EF6F8EDC6), UINT64_C(0x24432760C4257DD9),
+          UINT64_C(0x4FDD73010336EED2), UINT64_C(0x44879709F6C6506B)},
+         {UINT64_C(0x107C7DE213F18D89), UINT64_C(0x71C71DFBA5701FBD),
+          UINT64_C(0x97017E24C7DE3E0B), UINT64_C(0x0F8D7E09FC9EDDC2)}},
+        {{UINT64_C(0x7A0BB3B13897E01D), UINT64_C(0x7FD4F504C5892BDE),
+          UINT64_C(0x2EA9AA77AB752928), UINT64_C(0x19A82F559078B466)},
+         {UINT64_C(0xEF2842C555A0F0D9), UINT64_C(0x5501EEE915B6F2B4),
+          UINT64_C(0x9665EA6F942AA4B4), UINT64_C(0x015F41F40E707C32)}},
+        {{UINT64_C(0x1B4D6A919C6B6FD6), UINT64_C(0xCFD2CEE968217AFC),
+          UINT64_C(0xC5076256BBC9284D), UINT64_C(0x4C7F4EEFAC36547B)},
+         {UINT64_C(0xAB1AAD2C65EE1907), UINT64_C(0xBCFE8C77BAC25425),
+          UINT64_C(0x38BA0F85C9048A35), UINT64_C(0x300E6AC460A035F6)}},
+        {{UINT64_C(0xA8EDBC5E34707CC6), UINT64_C(0x3DA6BC5156ADFC16),
+          UINT64_C(0x5C7CB5E1CA8B6F3F), UINT64_C(0x76E4A0282D612DFA)},
+         {UINT64_C(0x75AB66FD64F49D39), UINT64_C(0x5AF9879DC387A739),
+          UINT64_C(0x839648083E9EDBCF), UINT64_C(0x555D8BBD7F4C4FFE)}},
+        {{UINT64_C(0xAAE8A2FE3C5590B0), UINT64_C(0x461C6CCC8AB34213),
+          UINT64_C(0xB2F3E8229E719B77), UINT64_C(0x25B8FCA8663188BB)},
+         {UINT64_C(0xAA7A047B72548131), UINT64_C(0x0878FFEE189FA6F0),
+          UINT64_C(0x9E7FB402CE3E17C3), UINT64_C(0x6F260D9344418277)}},
+        {{UINT64_C(0x0EF1C290B703B647), UINT64_C(0x995009FA651673E4),
+          UINT64_C(0x661F76D7BE46362D), UINT64_C(0x74B00FD123E56E7A)},
+         {UINT64_C(0x9557D0ABA1A50E4B), UINT64_C(0xC5A1CF95587688CE),
+          UINT64_C(0x2A14D1B27AE08ECA), UINT64_C(0x2DA8816C3C23D507)}},
+        {{UINT64_C(0x51CB405FB9934883), UINT64_C(0xC99A67D401A6864B),
+          UINT64_C(0xCCF622336CDFFFC3), UINT64_C(0x2938F9F998FE0B79)},
+         {UINT64_C(0x7766691139A5AA28), UINT64_C(0xDF56CBB52427BFC0),
+          UINT64_C(0xA39BE968189EB66D), UINT64_C(0x71E6E105A64FD2AB)}},
+        {{UINT64_C(0xA0C6F79560F9D20B), UINT64_C(0xE06DC8BB765670CC),
+          UINT64_C(0x9FA1DD58A67275E0), UINT64_C(0x0F7F670DE2D23BBB)},
+         {UINT64_C(0xF8F07CF333FB15EA), UINT64_C(0x1D09B592723A0271),
+          UINT64_C(0xF14029234E6FCAAB), UINT64_C(0x05BE1273AE301940)}},
+        {{UINT64_C(0x2D83906C114AFD1E), UINT64_C(0x091474FDC88E5761),
+          UINT64_C(0xAFF18EEBEF9E4F9B), UINT64_C(0x136ECAE5F4E646ED)},
+         {UINT64_C(0xEF4526D0EB01808F), UINT64_C(0x3923EBBA940C0AEC),
+          UINT64_C(0xAB34160CA437F460), UINT64_C(0x7A46966E421AD57C)}},
+    }};
+
+/*-
+ * Q := 2P, both projective, Q and P same pointers OK
+ * Autogenerated: op3/dbl_proj_any.op3
+ * https://eprint.iacr.org/2015/1060 Alg 3
+ */
+static void point_double(pt_prj_t *Q, const pt_prj_t *P) {
+    /* temporary variables */
+    fe_t t0, t1, t2, t3, t4;
+    /* constants */
+    const limb_t *b3 = const_b3;
+    const limb_t *a = const_a;
+    /* set pointers for legacy 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 *Z3 = Q->Z;
+
+    /* the curve arith formula */
+    fiat_id_GostR3410_2001_TestParamSet_square(t0, X);
+    fiat_id_GostR3410_2001_TestParamSet_square(t1, Y);
+    fiat_id_GostR3410_2001_TestParamSet_square(t2, Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, X, Y);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, t3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, Y, Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, X, Z);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, a, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, b3, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, X3, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, t1, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, b3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t3, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, a, t3);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, t0, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t0, Z3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t0, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t0, t3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t2, t4, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t2, t3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t2, t1);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3);
+}
+
+/*-
+ * 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_any.op3
+ * https://eprint.iacr.org/2015/1060 Alg 2
+ */
+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, t4, t5;
+    /* constants */
+    const limb_t *b3 = const_b3;
+    const limb_t *a = const_a;
+    /* set pointers for legacy curve arith */
+    const limb_t *X1 = Q->X;
+    const limb_t *Y1 = Q->Y;
+    const limb_t *Z1 = Q->Z;
+    const limb_t *X2 = P->X;
+    const limb_t *Y2 = P->Y;
+    fe_t X3;
+    fe_t Y3;
+    fe_t Z3;
+    limb_t nz;
+
+    /* check P for affine inf */
+    fiat_id_GostR3410_2001_TestParamSet_nonzero(&nz, P->Y);
+
+    /* the curve arith formula */
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, X2, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Y1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, X2, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, X1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t5, Y2, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, t5, Y1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0);
+
+    /* if P is inf, throw all that away and take Q */
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(R->X, nz, Q->X, X3);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Y, nz, Q->Y, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Z, nz, Q->Z, Z3);
+}
+
+/*-
+ * R := Q + P all projective.
+ * R and Q same pointers OK
+ * R and P same pointers not OK
+ * Autogenerated: op3/add_proj_any.op3
+ * https://eprint.iacr.org/2015/1060 Alg 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, t4, t5;
+    /* constants */
+    const limb_t *b3 = const_b3;
+    const limb_t *a = const_a;
+    /* set pointers for legacy curve arith */
+    const limb_t *X1 = Q->X;
+    const limb_t *Y1 = Q->Y;
+    const limb_t *Z1 = Q->Z;
+    const limb_t *X2 = P->X;
+    const limb_t *Y2 = P->Y;
+    const limb_t *Z2 = P->Z;
+    limb_t *X3 = R->X;
+    limb_t *Y3 = R->Y;
+    limb_t *Z3 = R->Z;
+
+    /* the curve arith formula */
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, Z1, Z2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, X1, Y1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, X2, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, X2, Z2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, t4, t5);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t4, t4, t5);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, Y1, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(X3, Y2, Z2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t5, t5, X3);
+    fiat_id_GostR3410_2001_TestParamSet_add(X3, t1, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t5, t5, X3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0);
+}
+
+/* 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;
+
+    fe_copy(precomp[0].X, P->X);
+    fe_copy(precomp[0].Y, P->Y);
+    fe_copy(precomp[0].Z, const_one);
+    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[32], int idx) {
+    int widx, rshift;
+
+    widx = idx >> 3;
+    rshift = idx & 0x7;
+
+    if (idx < 0 || widx >= 32) 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[52], const unsigned char in[32]) {
+    int i;
+    char window, d;
+
+    window = (in[0] & (DRADIX_WNAF - 1)) | 1;
+    for (i = 0; i < 51; 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[257], const unsigned char in[32]) {
+    int i;
+    char window, d;
+
+    window = in[0] & (DRADIX_WNAF - 1);
+    for (i = 0; i < 257; 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[32],
+                              const unsigned char b[32], const pt_aff_t *P) {
+    int i, d, is_neg, is_inf = 1, flipped = 0;
+    char anaf[257] = {0};
+    char bnaf[257] = {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 = 256; i >= 0; i--) {
+        if (!is_inf) point_double(&Q, &Q);
+        if ((d = bnaf[i])) {
+            if ((is_neg = d < 0) != flipped) {
+                fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y);
+                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.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_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y);
+                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.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.Z);
+    }
+
+    if (flipped) {
+        /* correct sign */
+        fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y);
+    }
+
+    /* convert to affine -- NB depends on coordinate system */
+    fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_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[32],
+                           const pt_aff_t *P) {
+    int i, j, d, diff, is_neg;
+    char rnaf[52] = {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[51] - 1) >> 1;
+    for (j = 0; j < DRADIX / 2; j++) {
+        diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1;
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, diff, Q.X,
+                                                      precomp[j].X);
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, diff, Q.Y,
+                                                      precomp[j].Y);
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, diff, Q.Z,
+                                                      precomp[j].Z);
+    }
+
+    for (i = 50; 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_GostR3410_2001_TestParamSet_selectznz(lut.X, diff, lut.X,
+                                                          precomp[j].X);
+            fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, diff, lut.Y,
+                                                          precomp[j].Y);
+            fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Z, diff, lut.Z,
+                                                          precomp[j].Z);
+        }
+        /* negate lut point if digit is negative */
+        fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y);
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y,
+                                                      out->Y);
+        point_add_proj(&Q, &Q, &lut);
+    }
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
+    /* conditionally subtract P if the scalar was even */
+    fe_copy(lut.X, precomp[0].X);
+    fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, precomp[0].Y);
+    fe_copy(lut.Z, precomp[0].Z);
+    point_add_proj(&lut, &lut, &Q);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, lut.X,
+                                                  Q.X);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, lut.Y,
+                                                  Q.Y);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, lut.Z,
+                                                  Q.Z);
+
+    /* convert to affine -- NB depends on coordinate system */
+    fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_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[32]) {
+    int i, j, k, d, diff, is_neg = 0;
+    char rnaf[52] = {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.Z);
+
+#if defined(_MSC_VER)
+    /* result still unsigned: yes we know */
+#pragma warning(push)
+#pragma warning(disable : 4146)
+#endif
+
+    for (i = 1; i >= 0; i--) {
+        for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q);
+        for (j = 0; j < 27; j++) {
+            if (j * 2 + i > 51) continue;
+            d = rnaf[j * 2 + 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_GostR3410_2001_TestParamSet_selectznz(
+                    lut.X, diff, lut.X, lut_cmb[j][k].X);
+                fiat_id_GostR3410_2001_TestParamSet_selectznz(
+                    lut.Y, diff, lut.Y, lut_cmb[j][k].Y);
+            }
+            /* negate lut point if digit is negative */
+            fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y);
+            fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y,
+                                                          out->Y);
+            point_add_mixed(&Q, &Q, &lut);
+        }
+    }
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
+    /* conditionally subtract P if the scalar was even */
+    fe_copy(lut.X, lut_cmb[0][0].X);
+    fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, lut_cmb[0][0].Y);
+    point_add_mixed(&R, &Q, &lut);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, R.X, Q.X);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, R.Y, Q.Y);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, R.Z, Q.Z);
+
+    /* convert to affine -- NB depends on coordinate system */
+    fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->Y, Q.Y, Q.Z);
+}
+
+static void point_mul_two(unsigned char outx[32], unsigned char outy[32],
+                          const unsigned char a[32], const unsigned char b[32],
+                          const unsigned char inx[32],
+                          const unsigned char iny[32]) {
+    pt_aff_t P;
+
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx);
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y);
+    /* simultaneous scalar multiplication */
+    var_smul_wnaf_two(&P, a, b, &P);
+
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y);
+}
+
+static void point_mul_g(unsigned char outx[32], unsigned char outy[32],
+                        const unsigned char scalar[32]) {
+    pt_aff_t P;
+
+    /* fixed scmul function */
+    fixed_smul_cmb(&P, scalar);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y);
+}
+
+static void point_mul(unsigned char outx[32], unsigned char outy[32],
+                      const unsigned char scalar[32],
+                      const unsigned char inx[32],
+                      const unsigned char iny[32]) {
+    pt_aff_t P;
+
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx);
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y);
+    /* var scmul function */
+    var_smul_rwnaf(&P, scalar, &P);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y);
+}
+
+#include <openssl/ec.h>
+
+static const unsigned char const_zb[32] = {0};
+
+    int
+    point_mul_two_id_GostR3410_2001_TestParamSet(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[32];
+    unsigned char b_y[32];
+    unsigned char b_n[32];
+    unsigned char b_m[32];
+    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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
+        BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32)
+        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, 32) == 0 &&
+        CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
+        if (!EC_POINT_set_to_infinity(group, r)) goto err;
+    } else {
+        /* otherwise, pack the bytes into the result */
+        if (BN_lebin2bn(b_x, 32, x) == NULL ||
+            BN_lebin2bn(b_y, 32, 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_GostR3410_2001_TestParamSet(const EC_GROUP *group, EC_POINT *r,
+                                             const EC_POINT *q, const BIGNUM *m,
+                                             BN_CTX *ctx) {
+    int ret = 0;
+    unsigned char b_x[32];
+    unsigned char b_y[32];
+    unsigned char b_m[32];
+    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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
+        BN_bn2lebinpad(m, b_m, 32) != 32)
+        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, 32) == 0 &&
+        CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
+        if (!EC_POINT_set_to_infinity(group, r)) goto err;
+    } else {
+        /* otherwise, pack the bytes into the result */
+        if (BN_lebin2bn(b_x, 32, x) == NULL ||
+            BN_lebin2bn(b_y, 32, 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_GostR3410_2001_TestParamSet(const EC_GROUP *group,
+                                               EC_POINT *r, const BIGNUM *n,
+                                               BN_CTX *ctx) {
+    int ret = 0;
+    unsigned char b_x[32];
+    unsigned char b_y[32];
+    unsigned char b_n[32];
+    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, 32) != 32)
+        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, 32) == 0 &&
+        CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
+        if (!EC_POINT_set_to_infinity(group, r)) goto err;
+    } else {
+        /* otherwise, pack the bytes into the result */
+        if (BN_lebin2bn(b_x, 32, x) == NULL ||
+            BN_lebin2bn(b_y, 32, 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 8
+/* 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))
+
+/* Projective points */
+typedef struct {
+    fe_t X;
+    fe_t Y;
+    fe_t Z;
+} pt_prj_t;
+
+/* Affine points */
+typedef struct {
+    fe_t X;
+    fe_t Y;
+} 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: word_by_word_montgomery --static id_GostR3410_2001_TestParamSet 32 '2^255 + 1073' */
+/* curve description: id_GostR3410_2001_TestParamSet */
+/* machine_wordsize = 32 (from "32") */
+/* requested operations: (all) */
+/* m = 0x8000000000000000000000000000000000000000000000000000000000000431 (from "2^255 + 1073") */
+/*                                                                    */
+/* NOTE: In addition to the bounds specified above each function, all */
+/*   functions synthesized for this Montgomery arithmetic require the */
+/*   input to be strictly less than the prime modulus (m), and also   */
+/*   require the input to be in the unique saturated representation.  */
+/*   All functions also ensure that these two properties are true of  */
+/*   return values.                                                   */
+/*  */
+/* Computed values: */
+/* eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) */
+/* 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) */
+
+#include <stdint.h>
+typedef unsigned char fiat_id_GostR3410_2001_TestParamSet_uint1;
+typedef signed char fiat_id_GostR3410_2001_TestParamSet_int1;
+
+#if (-1 & 3) != 3
+#error "This code only works on a two's complement system"
+#endif
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32 is an addition with carry.
+ * Postconditions:
+ *   out1 = (arg1 + arg2 + arg3) mod 2^32
+ *   out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋
+ *
+ * Input Bounds:
+ *   arg1: [0x0 ~> 0x1]
+ *   arg2: [0x0 ~> 0xffffffff]
+ *   arg3: [0x0 ~> 0xffffffff]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffff]
+ *   out2: [0x0 ~> 0x1]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+    uint32_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2,
+    fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint32_t arg2,
+    uint32_t arg3) {
+    uint64_t x1;
+    uint32_t x2;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x3;
+    x1 = ((arg1 + (uint64_t)arg2) + arg3);
+    x2 = (uint32_t)(x1 & UINT32_C(0xffffffff));
+    x3 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(x1 >> 32);
+    *out1 = x2;
+    *out2 = x3;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32 is a subtraction with borrow.
+ * Postconditions:
+ *   out1 = (-arg1 + arg2 + -arg3) mod 2^32
+ *   out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋
+ *
+ * Input Bounds:
+ *   arg1: [0x0 ~> 0x1]
+ *   arg2: [0x0 ~> 0xffffffff]
+ *   arg3: [0x0 ~> 0xffffffff]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffff]
+ *   out2: [0x0 ~> 0x1]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(
+    uint32_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2,
+    fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint32_t arg2,
+    uint32_t arg3) {
+    int64_t x1;
+    fiat_id_GostR3410_2001_TestParamSet_int1 x2;
+    uint32_t x3;
+    x1 = ((arg2 - (int64_t)arg1) - arg3);
+    x2 = (fiat_id_GostR3410_2001_TestParamSet_int1)(x1 >> 32);
+    x3 = (uint32_t)(x1 & UINT32_C(0xffffffff));
+    *out1 = x3;
+    *out2 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(0x0 - x2);
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_mulx_u32 is a multiplication, returning the full double-width result.
+ * Postconditions:
+ *   out1 = (arg1 * arg2) mod 2^32
+ *   out2 = ⌊arg1 * arg2 / 2^32⌋
+ *
+ * Input Bounds:
+ *   arg1: [0x0 ~> 0xffffffff]
+ *   arg2: [0x0 ~> 0xffffffff]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffff]
+ *   out2: [0x0 ~> 0xffffffff]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_mulx_u32(uint32_t *out1,
+                                                         uint32_t *out2,
+                                                         uint32_t arg1,
+                                                         uint32_t arg2) {
+    uint64_t x1;
+    uint32_t x2;
+    uint32_t x3;
+    x1 = ((uint64_t)arg1 * arg2);
+    x2 = (uint32_t)(x1 & UINT32_C(0xffffffff));
+    x3 = (uint32_t)(x1 >> 32);
+    *out1 = x2;
+    *out2 = x3;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_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_GostR3410_2001_TestParamSet_cmovznz_u32(
+    uint32_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 arg1,
+    uint32_t arg2, uint32_t arg3) {
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x1;
+    uint32_t x2;
+    uint32_t x3;
+    x1 = (!(!arg1));
+    x2 = ((fiat_id_GostR3410_2001_TestParamSet_int1)(0x0 - x1) &
+          UINT32_C(0xffffffff));
+    x3 = ((x2 & arg3) | ((~x2) & arg2));
+    *out1 = x3;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_mul multiplies two field elements in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ *   0 ≤ eval arg2 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
+ *   arg2: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_mul(uint32_t out1[8],
+                                                    const uint32_t arg1[8],
+                                                    const uint32_t arg2[8]) {
+    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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x26;
+    uint32_t x27;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x28;
+    uint32_t x29;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x30;
+    uint32_t x31;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x32;
+    uint32_t x33;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x34;
+    uint32_t x35;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x36;
+    uint32_t x37;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x47;
+    uint32_t x48;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x49;
+    uint32_t x50;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x51;
+    uint32_t x52;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x53;
+    uint32_t x54;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x55;
+    uint32_t x56;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x57;
+    uint32_t x58;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x59;
+    uint32_t x60;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x61;
+    uint32_t x62;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x63;
+    uint32_t x64;
+    uint32_t x65;
+    uint32_t 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x81;
+    uint32_t x82;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x83;
+    uint32_t x84;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x85;
+    uint32_t x86;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x87;
+    uint32_t x88;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x89;
+    uint32_t x90;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x91;
+    uint32_t x92;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x93;
+    uint32_t x94;
+    uint32_t x95;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x96;
+    uint32_t x97;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x98;
+    uint32_t x99;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x100;
+    uint32_t x101;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x102;
+    uint32_t x103;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x104;
+    uint32_t x105;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x106;
+    uint32_t x107;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x108;
+    uint32_t x109;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x110;
+    uint32_t x111;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x112;
+    uint32_t x113;
+    uint32_t x114;
+    uint32_t x115;
+    uint32_t x116;
+    uint32_t x117;
+    uint32_t x118;
+    uint32_t x119;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x120;
+    uint32_t x121;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x122;
+    uint32_t x123;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x124;
+    uint32_t x125;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x126;
+    uint32_t x127;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x128;
+    uint32_t x129;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x130;
+    uint32_t x131;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x132;
+    uint32_t x133;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x134;
+    uint32_t x135;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x136;
+    uint32_t x137;
+    uint32_t x138;
+    uint32_t x139;
+    uint32_t x140;
+    uint32_t x141;
+    uint32_t x142;
+    uint32_t x143;
+    uint32_t x144;
+    uint32_t x145;
+    uint32_t x146;
+    uint32_t x147;
+    uint32_t x148;
+    uint32_t x149;
+    uint32_t x150;
+    uint32_t x151;
+    uint32_t x152;
+    uint32_t x153;
+    uint32_t x154;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x155;
+    uint32_t x156;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x157;
+    uint32_t x158;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x159;
+    uint32_t x160;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x161;
+    uint32_t x162;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x163;
+    uint32_t x164;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x165;
+    uint32_t x166;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x167;
+    uint32_t x168;
+    uint32_t x169;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x170;
+    uint32_t x171;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x172;
+    uint32_t x173;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x174;
+    uint32_t x175;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x176;
+    uint32_t x177;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x178;
+    uint32_t x179;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x180;
+    uint32_t x181;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x182;
+    uint32_t x183;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x184;
+    uint32_t x185;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x186;
+    uint32_t x187;
+    uint32_t x188;
+    uint32_t x189;
+    uint32_t x190;
+    uint32_t x191;
+    uint32_t x192;
+    uint32_t x193;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x194;
+    uint32_t x195;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x196;
+    uint32_t x197;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x198;
+    uint32_t x199;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x200;
+    uint32_t x201;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x202;
+    uint32_t x203;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x204;
+    uint32_t x205;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x206;
+    uint32_t x207;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x208;
+    uint32_t x209;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x210;
+    uint32_t x211;
+    uint32_t x212;
+    uint32_t x213;
+    uint32_t x214;
+    uint32_t x215;
+    uint32_t x216;
+    uint32_t x217;
+    uint32_t x218;
+    uint32_t x219;
+    uint32_t x220;
+    uint32_t x221;
+    uint32_t x222;
+    uint32_t x223;
+    uint32_t x224;
+    uint32_t x225;
+    uint32_t x226;
+    uint32_t x227;
+    uint32_t x228;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x229;
+    uint32_t x230;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x231;
+    uint32_t x232;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x233;
+    uint32_t x234;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x235;
+    uint32_t x236;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x237;
+    uint32_t x238;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x239;
+    uint32_t x240;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x241;
+    uint32_t x242;
+    uint32_t x243;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x244;
+    uint32_t x245;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x246;
+    uint32_t x247;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x248;
+    uint32_t x249;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x250;
+    uint32_t x251;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x252;
+    uint32_t x253;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x254;
+    uint32_t x255;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x256;
+    uint32_t x257;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x258;
+    uint32_t x259;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x260;
+    uint32_t x261;
+    uint32_t x262;
+    uint32_t x263;
+    uint32_t x264;
+    uint32_t x265;
+    uint32_t x266;
+    uint32_t x267;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x268;
+    uint32_t x269;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x270;
+    uint32_t x271;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x272;
+    uint32_t x273;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x274;
+    uint32_t x275;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x276;
+    uint32_t x277;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x278;
+    uint32_t x279;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x280;
+    uint32_t x281;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x282;
+    uint32_t x283;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x284;
+    uint32_t x285;
+    uint32_t x286;
+    uint32_t x287;
+    uint32_t x288;
+    uint32_t x289;
+    uint32_t x290;
+    uint32_t x291;
+    uint32_t x292;
+    uint32_t x293;
+    uint32_t x294;
+    uint32_t x295;
+    uint32_t x296;
+    uint32_t x297;
+    uint32_t x298;
+    uint32_t x299;
+    uint32_t x300;
+    uint32_t x301;
+    uint32_t x302;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x303;
+    uint32_t x304;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x305;
+    uint32_t x306;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x307;
+    uint32_t x308;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x309;
+    uint32_t x310;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x311;
+    uint32_t x312;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x313;
+    uint32_t x314;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x315;
+    uint32_t x316;
+    uint32_t x317;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x318;
+    uint32_t x319;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x320;
+    uint32_t x321;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x322;
+    uint32_t x323;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x324;
+    uint32_t x325;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x326;
+    uint32_t x327;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x328;
+    uint32_t x329;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x330;
+    uint32_t x331;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x332;
+    uint32_t x333;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x334;
+    uint32_t x335;
+    uint32_t x336;
+    uint32_t x337;
+    uint32_t x338;
+    uint32_t x339;
+    uint32_t x340;
+    uint32_t x341;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x342;
+    uint32_t x343;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x344;
+    uint32_t x345;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x346;
+    uint32_t x347;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x348;
+    uint32_t x349;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x350;
+    uint32_t x351;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x352;
+    uint32_t x353;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x354;
+    uint32_t x355;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x356;
+    uint32_t x357;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x358;
+    uint32_t x359;
+    uint32_t x360;
+    uint32_t x361;
+    uint32_t x362;
+    uint32_t x363;
+    uint32_t x364;
+    uint32_t x365;
+    uint32_t x366;
+    uint32_t x367;
+    uint32_t x368;
+    uint32_t x369;
+    uint32_t x370;
+    uint32_t x371;
+    uint32_t x372;
+    uint32_t x373;
+    uint32_t x374;
+    uint32_t x375;
+    uint32_t x376;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x377;
+    uint32_t x378;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x379;
+    uint32_t x380;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x381;
+    uint32_t x382;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x383;
+    uint32_t x384;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x385;
+    uint32_t x386;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x387;
+    uint32_t x388;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x389;
+    uint32_t x390;
+    uint32_t x391;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x392;
+    uint32_t x393;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x394;
+    uint32_t x395;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x396;
+    uint32_t x397;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x398;
+    uint32_t x399;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x400;
+    uint32_t x401;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x402;
+    uint32_t x403;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x404;
+    uint32_t x405;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x406;
+    uint32_t x407;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x408;
+    uint32_t x409;
+    uint32_t x410;
+    uint32_t x411;
+    uint32_t x412;
+    uint32_t x413;
+    uint32_t x414;
+    uint32_t x415;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x416;
+    uint32_t x417;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x418;
+    uint32_t x419;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x420;
+    uint32_t x421;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x422;
+    uint32_t x423;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x424;
+    uint32_t x425;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x426;
+    uint32_t x427;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x428;
+    uint32_t x429;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x430;
+    uint32_t x431;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x432;
+    uint32_t x433;
+    uint32_t x434;
+    uint32_t x435;
+    uint32_t x436;
+    uint32_t x437;
+    uint32_t x438;
+    uint32_t x439;
+    uint32_t x440;
+    uint32_t x441;
+    uint32_t x442;
+    uint32_t x443;
+    uint32_t x444;
+    uint32_t x445;
+    uint32_t x446;
+    uint32_t x447;
+    uint32_t x448;
+    uint32_t x449;
+    uint32_t x450;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x451;
+    uint32_t x452;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x453;
+    uint32_t x454;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x455;
+    uint32_t x456;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x457;
+    uint32_t x458;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x459;
+    uint32_t x460;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x461;
+    uint32_t x462;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x463;
+    uint32_t x464;
+    uint32_t x465;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x466;
+    uint32_t x467;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x468;
+    uint32_t x469;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x470;
+    uint32_t x471;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x472;
+    uint32_t x473;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x474;
+    uint32_t x475;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x476;
+    uint32_t x477;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x478;
+    uint32_t x479;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x480;
+    uint32_t x481;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x482;
+    uint32_t x483;
+    uint32_t x484;
+    uint32_t x485;
+    uint32_t x486;
+    uint32_t x487;
+    uint32_t x488;
+    uint32_t x489;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x490;
+    uint32_t x491;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x492;
+    uint32_t x493;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x494;
+    uint32_t x495;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x496;
+    uint32_t x497;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x498;
+    uint32_t x499;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x500;
+    uint32_t x501;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x502;
+    uint32_t x503;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x504;
+    uint32_t x505;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x506;
+    uint32_t x507;
+    uint32_t x508;
+    uint32_t x509;
+    uint32_t x510;
+    uint32_t x511;
+    uint32_t x512;
+    uint32_t x513;
+    uint32_t x514;
+    uint32_t x515;
+    uint32_t x516;
+    uint32_t x517;
+    uint32_t x518;
+    uint32_t x519;
+    uint32_t x520;
+    uint32_t x521;
+    uint32_t x522;
+    uint32_t x523;
+    uint32_t x524;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x525;
+    uint32_t x526;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x527;
+    uint32_t x528;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x529;
+    uint32_t x530;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x531;
+    uint32_t x532;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x533;
+    uint32_t x534;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x535;
+    uint32_t x536;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x537;
+    uint32_t x538;
+    uint32_t x539;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x540;
+    uint32_t x541;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x542;
+    uint32_t x543;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x544;
+    uint32_t x545;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x546;
+    uint32_t x547;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x548;
+    uint32_t x549;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x550;
+    uint32_t x551;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x552;
+    uint32_t x553;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x554;
+    uint32_t x555;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x556;
+    uint32_t x557;
+    uint32_t x558;
+    uint32_t x559;
+    uint32_t x560;
+    uint32_t x561;
+    uint32_t x562;
+    uint32_t x563;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x564;
+    uint32_t x565;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x566;
+    uint32_t x567;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x568;
+    uint32_t x569;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x570;
+    uint32_t x571;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x572;
+    uint32_t x573;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x574;
+    uint32_t x575;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x576;
+    uint32_t x577;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x578;
+    uint32_t x579;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x580;
+    uint32_t x581;
+    uint32_t x582;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x583;
+    uint32_t x584;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x585;
+    uint32_t x586;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x587;
+    uint32_t x588;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x589;
+    uint32_t x590;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x591;
+    uint32_t x592;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x593;
+    uint32_t x594;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x595;
+    uint32_t x596;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x597;
+    uint32_t x598;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x599;
+    uint32_t x600;
+    uint32_t x601;
+    uint32_t x602;
+    uint32_t x603;
+    uint32_t x604;
+    uint32_t x605;
+    uint32_t x606;
+    uint32_t x607;
+    x1 = (arg1[1]);
+    x2 = (arg1[2]);
+    x3 = (arg1[3]);
+    x4 = (arg1[4]);
+    x5 = (arg1[5]);
+    x6 = (arg1[6]);
+    x7 = (arg1[7]);
+    x8 = (arg1[0]);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x9, &x10, x8, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x11, &x12, x8, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x13, &x14, x8, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x15, &x16, x8, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x17, &x18, x8, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x19, &x20, x8, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x21, &x22, x8, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x23, &x24, x8, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x25, &x26, 0x0, x24,
+                                                      x21);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x27, &x28, x26, x22,
+                                                      x19);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x29, &x30, x28, x20,
+                                                      x17);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x31, &x32, x30, x18,
+                                                      x15);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x33, &x34, x32, x16,
+                                                      x13);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x35, &x36, x34, x14,
+                                                      x11);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x37, &x38, x36, x12, x9);
+    x39 = (x38 + x10);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x40, &x41, x23,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x42, &x43, x40,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x44, &x45, x40,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x46, &x47, 0x0, x23,
+                                                      x44);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x48, &x49, x47, x25,
+                                                      x45);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x50, &x51, x49, x27,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x52, &x53, x51, x29,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x54, &x55, x53, x31,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x56, &x57, x55, x33,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x58, &x59, x57, x35,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x60, &x61, x59, x37,
+                                                      x42);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x62, &x63, x61, x39,
+                                                      x43);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x64, &x65, x1, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x66, &x67, x1, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x68, &x69, x1, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x70, &x71, x1, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x72, &x73, x1, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x74, &x75, x1, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x76, &x77, x1, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x78, &x79, x1, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x80, &x81, 0x0, x79,
+                                                      x76);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x82, &x83, x81, x77,
+                                                      x74);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x84, &x85, x83, x75,
+                                                      x72);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x86, &x87, x85, x73,
+                                                      x70);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x88, &x89, x87, x71,
+                                                      x68);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x90, &x91, x89, x69,
+                                                      x66);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x92, &x93, x91, x67,
+                                                      x64);
+    x94 = (x93 + x65);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x95, &x96, 0x0, x48,
+                                                      x78);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x97, &x98, x96, x50,
+                                                      x80);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x99, &x100, x98, x52,
+                                                      x82);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x101, &x102, x100, x54,
+                                                      x84);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x103, &x104, x102, x56,
+                                                      x86);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x105, &x106, x104, x58,
+                                                      x88);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x107, &x108, x106, x60,
+                                                      x90);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x109, &x110, x108, x62,
+                                                      x92);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x111, &x112, x110, x63,
+                                                      x94);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x113, &x114, x95,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x115, &x116, x113,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x117, &x118, x113,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x119, &x120, 0x0, x95,
+                                                      x117);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x121, &x122, x120, x97,
+                                                      x118);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x123, &x124, x122, x99,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x125, &x126, x124, x101,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x127, &x128, x126, x103,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x129, &x130, x128, x105,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x131, &x132, x130, x107,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x133, &x134, x132, x109,
+                                                      x115);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x135, &x136, x134, x111,
+                                                      x116);
+    x137 = ((uint32_t)x136 + x112);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x138, &x139, x2, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x140, &x141, x2, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x142, &x143, x2, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x144, &x145, x2, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x146, &x147, x2, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x148, &x149, x2, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x150, &x151, x2, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x152, &x153, x2, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x154, &x155, 0x0, x153,
+                                                      x150);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x156, &x157, x155, x151,
+                                                      x148);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x158, &x159, x157, x149,
+                                                      x146);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x160, &x161, x159, x147,
+                                                      x144);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x162, &x163, x161, x145,
+                                                      x142);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x164, &x165, x163, x143,
+                                                      x140);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x166, &x167, x165, x141,
+                                                      x138);
+    x168 = (x167 + x139);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x169, &x170, 0x0, x121,
+                                                      x152);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x171, &x172, x170, x123,
+                                                      x154);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x173, &x174, x172, x125,
+                                                      x156);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x175, &x176, x174, x127,
+                                                      x158);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x177, &x178, x176, x129,
+                                                      x160);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x179, &x180, x178, x131,
+                                                      x162);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x181, &x182, x180, x133,
+                                                      x164);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x183, &x184, x182, x135,
+                                                      x166);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x185, &x186, x184, x137,
+                                                      x168);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x187, &x188, x169,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x189, &x190, x187,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x191, &x192, x187,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x193, &x194, 0x0, x169,
+                                                      x191);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x195, &x196, x194, x171,
+                                                      x192);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x197, &x198, x196, x173,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x199, &x200, x198, x175,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x201, &x202, x200, x177,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x203, &x204, x202, x179,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x205, &x206, x204, x181,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x207, &x208, x206, x183,
+                                                      x189);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x209, &x210, x208, x185,
+                                                      x190);
+    x211 = ((uint32_t)x210 + x186);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x212, &x213, x3, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x214, &x215, x3, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x216, &x217, x3, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x218, &x219, x3, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x220, &x221, x3, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x222, &x223, x3, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x224, &x225, x3, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x226, &x227, x3, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x228, &x229, 0x0, x227,
+                                                      x224);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x230, &x231, x229, x225,
+                                                      x222);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x232, &x233, x231, x223,
+                                                      x220);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x234, &x235, x233, x221,
+                                                      x218);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x236, &x237, x235, x219,
+                                                      x216);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x238, &x239, x237, x217,
+                                                      x214);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x240, &x241, x239, x215,
+                                                      x212);
+    x242 = (x241 + x213);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x243, &x244, 0x0, x195,
+                                                      x226);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x245, &x246, x244, x197,
+                                                      x228);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x247, &x248, x246, x199,
+                                                      x230);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x249, &x250, x248, x201,
+                                                      x232);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x251, &x252, x250, x203,
+                                                      x234);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x253, &x254, x252, x205,
+                                                      x236);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x255, &x256, x254, x207,
+                                                      x238);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x257, &x258, x256, x209,
+                                                      x240);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x259, &x260, x258, x211,
+                                                      x242);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x261, &x262, x243,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x263, &x264, x261,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x265, &x266, x261,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x267, &x268, 0x0, x243,
+                                                      x265);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x269, &x270, x268, x245,
+                                                      x266);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x271, &x272, x270, x247,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x273, &x274, x272, x249,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x275, &x276, x274, x251,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x277, &x278, x276, x253,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x279, &x280, x278, x255,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x281, &x282, x280, x257,
+                                                      x263);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x283, &x284, x282, x259,
+                                                      x264);
+    x285 = ((uint32_t)x284 + x260);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x286, &x287, x4, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x288, &x289, x4, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x290, &x291, x4, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x292, &x293, x4, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x294, &x295, x4, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x296, &x297, x4, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x298, &x299, x4, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x300, &x301, x4, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x302, &x303, 0x0, x301,
+                                                      x298);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x304, &x305, x303, x299,
+                                                      x296);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x306, &x307, x305, x297,
+                                                      x294);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x308, &x309, x307, x295,
+                                                      x292);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x310, &x311, x309, x293,
+                                                      x290);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x312, &x313, x311, x291,
+                                                      x288);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x314, &x315, x313, x289,
+                                                      x286);
+    x316 = (x315 + x287);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x317, &x318, 0x0, x269,
+                                                      x300);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x319, &x320, x318, x271,
+                                                      x302);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x321, &x322, x320, x273,
+                                                      x304);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x323, &x324, x322, x275,
+                                                      x306);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x325, &x326, x324, x277,
+                                                      x308);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x327, &x328, x326, x279,
+                                                      x310);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x329, &x330, x328, x281,
+                                                      x312);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x331, &x332, x330, x283,
+                                                      x314);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x333, &x334, x332, x285,
+                                                      x316);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x335, &x336, x317,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x337, &x338, x335,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x339, &x340, x335,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x341, &x342, 0x0, x317,
+                                                      x339);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x343, &x344, x342, x319,
+                                                      x340);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x345, &x346, x344, x321,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x347, &x348, x346, x323,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x349, &x350, x348, x325,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x351, &x352, x350, x327,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x353, &x354, x352, x329,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x355, &x356, x354, x331,
+                                                      x337);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x357, &x358, x356, x333,
+                                                      x338);
+    x359 = ((uint32_t)x358 + x334);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x360, &x361, x5, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x362, &x363, x5, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x364, &x365, x5, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x366, &x367, x5, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x368, &x369, x5, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x370, &x371, x5, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x372, &x373, x5, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x374, &x375, x5, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x376, &x377, 0x0, x375,
+                                                      x372);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x378, &x379, x377, x373,
+                                                      x370);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x380, &x381, x379, x371,
+                                                      x368);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x382, &x383, x381, x369,
+                                                      x366);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x384, &x385, x383, x367,
+                                                      x364);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x386, &x387, x385, x365,
+                                                      x362);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x388, &x389, x387, x363,
+                                                      x360);
+    x390 = (x389 + x361);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x391, &x392, 0x0, x343,
+                                                      x374);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x393, &x394, x392, x345,
+                                                      x376);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x395, &x396, x394, x347,
+                                                      x378);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x397, &x398, x396, x349,
+                                                      x380);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x399, &x400, x398, x351,
+                                                      x382);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x401, &x402, x400, x353,
+                                                      x384);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x403, &x404, x402, x355,
+                                                      x386);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x405, &x406, x404, x357,
+                                                      x388);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x407, &x408, x406, x359,
+                                                      x390);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x409, &x410, x391,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x411, &x412, x409,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x413, &x414, x409,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x415, &x416, 0x0, x391,
+                                                      x413);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x417, &x418, x416, x393,
+                                                      x414);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x419, &x420, x418, x395,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x421, &x422, x420, x397,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x423, &x424, x422, x399,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x425, &x426, x424, x401,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x427, &x428, x426, x403,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x429, &x430, x428, x405,
+                                                      x411);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x431, &x432, x430, x407,
+                                                      x412);
+    x433 = ((uint32_t)x432 + x408);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x434, &x435, x6, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x436, &x437, x6, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x438, &x439, x6, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x440, &x441, x6, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x442, &x443, x6, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x444, &x445, x6, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x446, &x447, x6, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x448, &x449, x6, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x450, &x451, 0x0, x449,
+                                                      x446);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x452, &x453, x451, x447,
+                                                      x444);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x454, &x455, x453, x445,
+                                                      x442);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x456, &x457, x455, x443,
+                                                      x440);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x458, &x459, x457, x441,
+                                                      x438);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x460, &x461, x459, x439,
+                                                      x436);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x462, &x463, x461, x437,
+                                                      x434);
+    x464 = (x463 + x435);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x465, &x466, 0x0, x417,
+                                                      x448);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x467, &x468, x466, x419,
+                                                      x450);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x469, &x470, x468, x421,
+                                                      x452);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x471, &x472, x470, x423,
+                                                      x454);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x473, &x474, x472, x425,
+                                                      x456);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x475, &x476, x474, x427,
+                                                      x458);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x477, &x478, x476, x429,
+                                                      x460);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x479, &x480, x478, x431,
+                                                      x462);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x481, &x482, x480, x433,
+                                                      x464);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x483, &x484, x465,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x485, &x486, x483,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x487, &x488, x483,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x489, &x490, 0x0, x465,
+                                                      x487);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x491, &x492, x490, x467,
+                                                      x488);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x493, &x494, x492, x469,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x495, &x496, x494, x471,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x497, &x498, x496, x473,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x499, &x500, x498, x475,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x501, &x502, x500, x477,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x503, &x504, x502, x479,
+                                                      x485);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x505, &x506, x504, x481,
+                                                      x486);
+    x507 = ((uint32_t)x506 + x482);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x508, &x509, x7, (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x510, &x511, x7, (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x512, &x513, x7, (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x514, &x515, x7, (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x516, &x517, x7, (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x518, &x519, x7, (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x520, &x521, x7, (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x522, &x523, x7, (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x524, &x525, 0x0, x523,
+                                                      x520);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x526, &x527, x525, x521,
+                                                      x518);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x528, &x529, x527, x519,
+                                                      x516);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x530, &x531, x529, x517,
+                                                      x514);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x532, &x533, x531, x515,
+                                                      x512);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x534, &x535, x533, x513,
+                                                      x510);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x536, &x537, x535, x511,
+                                                      x508);
+    x538 = (x537 + x509);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x539, &x540, 0x0, x491,
+                                                      x522);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x541, &x542, x540, x493,
+                                                      x524);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x543, &x544, x542, x495,
+                                                      x526);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x545, &x546, x544, x497,
+                                                      x528);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x547, &x548, x546, x499,
+                                                      x530);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x549, &x550, x548, x501,
+                                                      x532);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x551, &x552, x550, x503,
+                                                      x534);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x553, &x554, x552, x505,
+                                                      x536);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x555, &x556, x554, x507,
+                                                      x538);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x557, &x558, x539,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x559, &x560, x557,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x561, &x562, x557,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x563, &x564, 0x0, x539,
+                                                      x561);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x565, &x566, x564, x541,
+                                                      x562);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x567, &x568, x566, x543,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x569, &x570, x568, x545,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x571, &x572, x570, x547,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x573, &x574, x572, x549,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x575, &x576, x574, x551,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x577, &x578, x576, x553,
+                                                      x559);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x579, &x580, x578, x555,
+                                                      x560);
+    x581 = ((uint32_t)x580 + x556);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x582, &x583, 0x0, x565,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x584, &x585, x583, x567,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x586, &x587, x585, x569,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x588, &x589, x587, x571,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x590, &x591, x589, x573,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x592, &x593, x591, x575,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x594, &x595, x593, x577,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x596, &x597, x595, x579,
+                                                       UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x598, &x599, x597, x581,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x600, x599, x582, x565);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x601, x599, x584, x567);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x602, x599, x586, x569);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x603, x599, x588, x571);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x604, x599, x590, x573);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x605, x599, x592, x575);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x606, x599, x594, x577);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x607, x599, x596, x579);
+    out1[0] = x600;
+    out1[1] = x601;
+    out1[2] = x602;
+    out1[3] = x603;
+    out1[4] = x604;
+    out1[5] = x605;
+    out1[6] = x606;
+    out1[7] = x607;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_square squares a field element in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_square(uint32_t out1[8],
+                                                       const uint32_t arg1[8]) {
+    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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x26;
+    uint32_t x27;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x28;
+    uint32_t x29;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x30;
+    uint32_t x31;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x32;
+    uint32_t x33;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x34;
+    uint32_t x35;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x36;
+    uint32_t x37;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x47;
+    uint32_t x48;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x49;
+    uint32_t x50;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x51;
+    uint32_t x52;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x53;
+    uint32_t x54;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x55;
+    uint32_t x56;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x57;
+    uint32_t x58;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x59;
+    uint32_t x60;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x61;
+    uint32_t x62;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x63;
+    uint32_t x64;
+    uint32_t x65;
+    uint32_t 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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x81;
+    uint32_t x82;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x83;
+    uint32_t x84;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x85;
+    uint32_t x86;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x87;
+    uint32_t x88;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x89;
+    uint32_t x90;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x91;
+    uint32_t x92;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x93;
+    uint32_t x94;
+    uint32_t x95;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x96;
+    uint32_t x97;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x98;
+    uint32_t x99;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x100;
+    uint32_t x101;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x102;
+    uint32_t x103;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x104;
+    uint32_t x105;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x106;
+    uint32_t x107;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x108;
+    uint32_t x109;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x110;
+    uint32_t x111;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x112;
+    uint32_t x113;
+    uint32_t x114;
+    uint32_t x115;
+    uint32_t x116;
+    uint32_t x117;
+    uint32_t x118;
+    uint32_t x119;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x120;
+    uint32_t x121;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x122;
+    uint32_t x123;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x124;
+    uint32_t x125;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x126;
+    uint32_t x127;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x128;
+    uint32_t x129;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x130;
+    uint32_t x131;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x132;
+    uint32_t x133;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x134;
+    uint32_t x135;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x136;
+    uint32_t x137;
+    uint32_t x138;
+    uint32_t x139;
+    uint32_t x140;
+    uint32_t x141;
+    uint32_t x142;
+    uint32_t x143;
+    uint32_t x144;
+    uint32_t x145;
+    uint32_t x146;
+    uint32_t x147;
+    uint32_t x148;
+    uint32_t x149;
+    uint32_t x150;
+    uint32_t x151;
+    uint32_t x152;
+    uint32_t x153;
+    uint32_t x154;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x155;
+    uint32_t x156;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x157;
+    uint32_t x158;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x159;
+    uint32_t x160;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x161;
+    uint32_t x162;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x163;
+    uint32_t x164;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x165;
+    uint32_t x166;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x167;
+    uint32_t x168;
+    uint32_t x169;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x170;
+    uint32_t x171;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x172;
+    uint32_t x173;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x174;
+    uint32_t x175;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x176;
+    uint32_t x177;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x178;
+    uint32_t x179;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x180;
+    uint32_t x181;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x182;
+    uint32_t x183;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x184;
+    uint32_t x185;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x186;
+    uint32_t x187;
+    uint32_t x188;
+    uint32_t x189;
+    uint32_t x190;
+    uint32_t x191;
+    uint32_t x192;
+    uint32_t x193;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x194;
+    uint32_t x195;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x196;
+    uint32_t x197;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x198;
+    uint32_t x199;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x200;
+    uint32_t x201;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x202;
+    uint32_t x203;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x204;
+    uint32_t x205;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x206;
+    uint32_t x207;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x208;
+    uint32_t x209;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x210;
+    uint32_t x211;
+    uint32_t x212;
+    uint32_t x213;
+    uint32_t x214;
+    uint32_t x215;
+    uint32_t x216;
+    uint32_t x217;
+    uint32_t x218;
+    uint32_t x219;
+    uint32_t x220;
+    uint32_t x221;
+    uint32_t x222;
+    uint32_t x223;
+    uint32_t x224;
+    uint32_t x225;
+    uint32_t x226;
+    uint32_t x227;
+    uint32_t x228;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x229;
+    uint32_t x230;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x231;
+    uint32_t x232;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x233;
+    uint32_t x234;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x235;
+    uint32_t x236;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x237;
+    uint32_t x238;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x239;
+    uint32_t x240;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x241;
+    uint32_t x242;
+    uint32_t x243;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x244;
+    uint32_t x245;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x246;
+    uint32_t x247;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x248;
+    uint32_t x249;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x250;
+    uint32_t x251;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x252;
+    uint32_t x253;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x254;
+    uint32_t x255;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x256;
+    uint32_t x257;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x258;
+    uint32_t x259;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x260;
+    uint32_t x261;
+    uint32_t x262;
+    uint32_t x263;
+    uint32_t x264;
+    uint32_t x265;
+    uint32_t x266;
+    uint32_t x267;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x268;
+    uint32_t x269;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x270;
+    uint32_t x271;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x272;
+    uint32_t x273;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x274;
+    uint32_t x275;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x276;
+    uint32_t x277;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x278;
+    uint32_t x279;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x280;
+    uint32_t x281;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x282;
+    uint32_t x283;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x284;
+    uint32_t x285;
+    uint32_t x286;
+    uint32_t x287;
+    uint32_t x288;
+    uint32_t x289;
+    uint32_t x290;
+    uint32_t x291;
+    uint32_t x292;
+    uint32_t x293;
+    uint32_t x294;
+    uint32_t x295;
+    uint32_t x296;
+    uint32_t x297;
+    uint32_t x298;
+    uint32_t x299;
+    uint32_t x300;
+    uint32_t x301;
+    uint32_t x302;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x303;
+    uint32_t x304;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x305;
+    uint32_t x306;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x307;
+    uint32_t x308;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x309;
+    uint32_t x310;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x311;
+    uint32_t x312;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x313;
+    uint32_t x314;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x315;
+    uint32_t x316;
+    uint32_t x317;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x318;
+    uint32_t x319;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x320;
+    uint32_t x321;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x322;
+    uint32_t x323;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x324;
+    uint32_t x325;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x326;
+    uint32_t x327;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x328;
+    uint32_t x329;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x330;
+    uint32_t x331;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x332;
+    uint32_t x333;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x334;
+    uint32_t x335;
+    uint32_t x336;
+    uint32_t x337;
+    uint32_t x338;
+    uint32_t x339;
+    uint32_t x340;
+    uint32_t x341;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x342;
+    uint32_t x343;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x344;
+    uint32_t x345;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x346;
+    uint32_t x347;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x348;
+    uint32_t x349;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x350;
+    uint32_t x351;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x352;
+    uint32_t x353;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x354;
+    uint32_t x355;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x356;
+    uint32_t x357;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x358;
+    uint32_t x359;
+    uint32_t x360;
+    uint32_t x361;
+    uint32_t x362;
+    uint32_t x363;
+    uint32_t x364;
+    uint32_t x365;
+    uint32_t x366;
+    uint32_t x367;
+    uint32_t x368;
+    uint32_t x369;
+    uint32_t x370;
+    uint32_t x371;
+    uint32_t x372;
+    uint32_t x373;
+    uint32_t x374;
+    uint32_t x375;
+    uint32_t x376;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x377;
+    uint32_t x378;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x379;
+    uint32_t x380;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x381;
+    uint32_t x382;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x383;
+    uint32_t x384;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x385;
+    uint32_t x386;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x387;
+    uint32_t x388;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x389;
+    uint32_t x390;
+    uint32_t x391;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x392;
+    uint32_t x393;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x394;
+    uint32_t x395;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x396;
+    uint32_t x397;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x398;
+    uint32_t x399;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x400;
+    uint32_t x401;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x402;
+    uint32_t x403;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x404;
+    uint32_t x405;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x406;
+    uint32_t x407;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x408;
+    uint32_t x409;
+    uint32_t x410;
+    uint32_t x411;
+    uint32_t x412;
+    uint32_t x413;
+    uint32_t x414;
+    uint32_t x415;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x416;
+    uint32_t x417;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x418;
+    uint32_t x419;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x420;
+    uint32_t x421;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x422;
+    uint32_t x423;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x424;
+    uint32_t x425;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x426;
+    uint32_t x427;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x428;
+    uint32_t x429;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x430;
+    uint32_t x431;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x432;
+    uint32_t x433;
+    uint32_t x434;
+    uint32_t x435;
+    uint32_t x436;
+    uint32_t x437;
+    uint32_t x438;
+    uint32_t x439;
+    uint32_t x440;
+    uint32_t x441;
+    uint32_t x442;
+    uint32_t x443;
+    uint32_t x444;
+    uint32_t x445;
+    uint32_t x446;
+    uint32_t x447;
+    uint32_t x448;
+    uint32_t x449;
+    uint32_t x450;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x451;
+    uint32_t x452;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x453;
+    uint32_t x454;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x455;
+    uint32_t x456;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x457;
+    uint32_t x458;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x459;
+    uint32_t x460;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x461;
+    uint32_t x462;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x463;
+    uint32_t x464;
+    uint32_t x465;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x466;
+    uint32_t x467;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x468;
+    uint32_t x469;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x470;
+    uint32_t x471;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x472;
+    uint32_t x473;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x474;
+    uint32_t x475;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x476;
+    uint32_t x477;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x478;
+    uint32_t x479;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x480;
+    uint32_t x481;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x482;
+    uint32_t x483;
+    uint32_t x484;
+    uint32_t x485;
+    uint32_t x486;
+    uint32_t x487;
+    uint32_t x488;
+    uint32_t x489;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x490;
+    uint32_t x491;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x492;
+    uint32_t x493;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x494;
+    uint32_t x495;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x496;
+    uint32_t x497;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x498;
+    uint32_t x499;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x500;
+    uint32_t x501;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x502;
+    uint32_t x503;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x504;
+    uint32_t x505;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x506;
+    uint32_t x507;
+    uint32_t x508;
+    uint32_t x509;
+    uint32_t x510;
+    uint32_t x511;
+    uint32_t x512;
+    uint32_t x513;
+    uint32_t x514;
+    uint32_t x515;
+    uint32_t x516;
+    uint32_t x517;
+    uint32_t x518;
+    uint32_t x519;
+    uint32_t x520;
+    uint32_t x521;
+    uint32_t x522;
+    uint32_t x523;
+    uint32_t x524;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x525;
+    uint32_t x526;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x527;
+    uint32_t x528;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x529;
+    uint32_t x530;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x531;
+    uint32_t x532;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x533;
+    uint32_t x534;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x535;
+    uint32_t x536;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x537;
+    uint32_t x538;
+    uint32_t x539;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x540;
+    uint32_t x541;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x542;
+    uint32_t x543;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x544;
+    uint32_t x545;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x546;
+    uint32_t x547;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x548;
+    uint32_t x549;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x550;
+    uint32_t x551;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x552;
+    uint32_t x553;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x554;
+    uint32_t x555;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x556;
+    uint32_t x557;
+    uint32_t x558;
+    uint32_t x559;
+    uint32_t x560;
+    uint32_t x561;
+    uint32_t x562;
+    uint32_t x563;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x564;
+    uint32_t x565;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x566;
+    uint32_t x567;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x568;
+    uint32_t x569;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x570;
+    uint32_t x571;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x572;
+    uint32_t x573;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x574;
+    uint32_t x575;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x576;
+    uint32_t x577;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x578;
+    uint32_t x579;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x580;
+    uint32_t x581;
+    uint32_t x582;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x583;
+    uint32_t x584;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x585;
+    uint32_t x586;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x587;
+    uint32_t x588;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x589;
+    uint32_t x590;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x591;
+    uint32_t x592;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x593;
+    uint32_t x594;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x595;
+    uint32_t x596;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x597;
+    uint32_t x598;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x599;
+    uint32_t x600;
+    uint32_t x601;
+    uint32_t x602;
+    uint32_t x603;
+    uint32_t x604;
+    uint32_t x605;
+    uint32_t x606;
+    uint32_t x607;
+    x1 = (arg1[1]);
+    x2 = (arg1[2]);
+    x3 = (arg1[3]);
+    x4 = (arg1[4]);
+    x5 = (arg1[5]);
+    x6 = (arg1[6]);
+    x7 = (arg1[7]);
+    x8 = (arg1[0]);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x9, &x10, x8, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x11, &x12, x8, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x13, &x14, x8, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x15, &x16, x8, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x17, &x18, x8, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x19, &x20, x8, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x21, &x22, x8, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x23, &x24, x8, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x25, &x26, 0x0, x24,
+                                                      x21);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x27, &x28, x26, x22,
+                                                      x19);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x29, &x30, x28, x20,
+                                                      x17);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x31, &x32, x30, x18,
+                                                      x15);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x33, &x34, x32, x16,
+                                                      x13);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x35, &x36, x34, x14,
+                                                      x11);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x37, &x38, x36, x12, x9);
+    x39 = (x38 + x10);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x40, &x41, x23,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x42, &x43, x40,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x44, &x45, x40,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x46, &x47, 0x0, x23,
+                                                      x44);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x48, &x49, x47, x25,
+                                                      x45);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x50, &x51, x49, x27,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x52, &x53, x51, x29,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x54, &x55, x53, x31,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x56, &x57, x55, x33,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x58, &x59, x57, x35,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x60, &x61, x59, x37,
+                                                      x42);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x62, &x63, x61, x39,
+                                                      x43);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x64, &x65, x1, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x66, &x67, x1, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x68, &x69, x1, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x70, &x71, x1, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x72, &x73, x1, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x74, &x75, x1, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x76, &x77, x1, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x78, &x79, x1, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x80, &x81, 0x0, x79,
+                                                      x76);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x82, &x83, x81, x77,
+                                                      x74);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x84, &x85, x83, x75,
+                                                      x72);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x86, &x87, x85, x73,
+                                                      x70);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x88, &x89, x87, x71,
+                                                      x68);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x90, &x91, x89, x69,
+                                                      x66);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x92, &x93, x91, x67,
+                                                      x64);
+    x94 = (x93 + x65);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x95, &x96, 0x0, x48,
+                                                      x78);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x97, &x98, x96, x50,
+                                                      x80);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x99, &x100, x98, x52,
+                                                      x82);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x101, &x102, x100, x54,
+                                                      x84);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x103, &x104, x102, x56,
+                                                      x86);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x105, &x106, x104, x58,
+                                                      x88);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x107, &x108, x106, x60,
+                                                      x90);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x109, &x110, x108, x62,
+                                                      x92);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x111, &x112, x110, x63,
+                                                      x94);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x113, &x114, x95,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x115, &x116, x113,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x117, &x118, x113,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x119, &x120, 0x0, x95,
+                                                      x117);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x121, &x122, x120, x97,
+                                                      x118);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x123, &x124, x122, x99,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x125, &x126, x124, x101,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x127, &x128, x126, x103,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x129, &x130, x128, x105,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x131, &x132, x130, x107,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x133, &x134, x132, x109,
+                                                      x115);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x135, &x136, x134, x111,
+                                                      x116);
+    x137 = ((uint32_t)x136 + x112);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x138, &x139, x2, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x140, &x141, x2, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x142, &x143, x2, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x144, &x145, x2, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x146, &x147, x2, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x148, &x149, x2, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x150, &x151, x2, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x152, &x153, x2, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x154, &x155, 0x0, x153,
+                                                      x150);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x156, &x157, x155, x151,
+                                                      x148);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x158, &x159, x157, x149,
+                                                      x146);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x160, &x161, x159, x147,
+                                                      x144);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x162, &x163, x161, x145,
+                                                      x142);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x164, &x165, x163, x143,
+                                                      x140);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x166, &x167, x165, x141,
+                                                      x138);
+    x168 = (x167 + x139);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x169, &x170, 0x0, x121,
+                                                      x152);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x171, &x172, x170, x123,
+                                                      x154);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x173, &x174, x172, x125,
+                                                      x156);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x175, &x176, x174, x127,
+                                                      x158);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x177, &x178, x176, x129,
+                                                      x160);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x179, &x180, x178, x131,
+                                                      x162);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x181, &x182, x180, x133,
+                                                      x164);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x183, &x184, x182, x135,
+                                                      x166);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x185, &x186, x184, x137,
+                                                      x168);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x187, &x188, x169,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x189, &x190, x187,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x191, &x192, x187,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x193, &x194, 0x0, x169,
+                                                      x191);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x195, &x196, x194, x171,
+                                                      x192);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x197, &x198, x196, x173,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x199, &x200, x198, x175,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x201, &x202, x200, x177,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x203, &x204, x202, x179,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x205, &x206, x204, x181,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x207, &x208, x206, x183,
+                                                      x189);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x209, &x210, x208, x185,
+                                                      x190);
+    x211 = ((uint32_t)x210 + x186);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x212, &x213, x3, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x214, &x215, x3, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x216, &x217, x3, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x218, &x219, x3, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x220, &x221, x3, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x222, &x223, x3, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x224, &x225, x3, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x226, &x227, x3, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x228, &x229, 0x0, x227,
+                                                      x224);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x230, &x231, x229, x225,
+                                                      x222);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x232, &x233, x231, x223,
+                                                      x220);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x234, &x235, x233, x221,
+                                                      x218);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x236, &x237, x235, x219,
+                                                      x216);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x238, &x239, x237, x217,
+                                                      x214);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x240, &x241, x239, x215,
+                                                      x212);
+    x242 = (x241 + x213);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x243, &x244, 0x0, x195,
+                                                      x226);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x245, &x246, x244, x197,
+                                                      x228);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x247, &x248, x246, x199,
+                                                      x230);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x249, &x250, x248, x201,
+                                                      x232);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x251, &x252, x250, x203,
+                                                      x234);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x253, &x254, x252, x205,
+                                                      x236);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x255, &x256, x254, x207,
+                                                      x238);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x257, &x258, x256, x209,
+                                                      x240);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x259, &x260, x258, x211,
+                                                      x242);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x261, &x262, x243,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x263, &x264, x261,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x265, &x266, x261,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x267, &x268, 0x0, x243,
+                                                      x265);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x269, &x270, x268, x245,
+                                                      x266);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x271, &x272, x270, x247,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x273, &x274, x272, x249,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x275, &x276, x274, x251,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x277, &x278, x276, x253,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x279, &x280, x278, x255,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x281, &x282, x280, x257,
+                                                      x263);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x283, &x284, x282, x259,
+                                                      x264);
+    x285 = ((uint32_t)x284 + x260);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x286, &x287, x4, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x288, &x289, x4, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x290, &x291, x4, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x292, &x293, x4, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x294, &x295, x4, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x296, &x297, x4, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x298, &x299, x4, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x300, &x301, x4, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x302, &x303, 0x0, x301,
+                                                      x298);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x304, &x305, x303, x299,
+                                                      x296);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x306, &x307, x305, x297,
+                                                      x294);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x308, &x309, x307, x295,
+                                                      x292);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x310, &x311, x309, x293,
+                                                      x290);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x312, &x313, x311, x291,
+                                                      x288);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x314, &x315, x313, x289,
+                                                      x286);
+    x316 = (x315 + x287);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x317, &x318, 0x0, x269,
+                                                      x300);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x319, &x320, x318, x271,
+                                                      x302);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x321, &x322, x320, x273,
+                                                      x304);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x323, &x324, x322, x275,
+                                                      x306);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x325, &x326, x324, x277,
+                                                      x308);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x327, &x328, x326, x279,
+                                                      x310);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x329, &x330, x328, x281,
+                                                      x312);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x331, &x332, x330, x283,
+                                                      x314);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x333, &x334, x332, x285,
+                                                      x316);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x335, &x336, x317,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x337, &x338, x335,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x339, &x340, x335,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x341, &x342, 0x0, x317,
+                                                      x339);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x343, &x344, x342, x319,
+                                                      x340);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x345, &x346, x344, x321,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x347, &x348, x346, x323,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x349, &x350, x348, x325,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x351, &x352, x350, x327,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x353, &x354, x352, x329,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x355, &x356, x354, x331,
+                                                      x337);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x357, &x358, x356, x333,
+                                                      x338);
+    x359 = ((uint32_t)x358 + x334);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x360, &x361, x5, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x362, &x363, x5, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x364, &x365, x5, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x366, &x367, x5, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x368, &x369, x5, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x370, &x371, x5, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x372, &x373, x5, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x374, &x375, x5, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x376, &x377, 0x0, x375,
+                                                      x372);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x378, &x379, x377, x373,
+                                                      x370);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x380, &x381, x379, x371,
+                                                      x368);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x382, &x383, x381, x369,
+                                                      x366);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x384, &x385, x383, x367,
+                                                      x364);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x386, &x387, x385, x365,
+                                                      x362);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x388, &x389, x387, x363,
+                                                      x360);
+    x390 = (x389 + x361);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x391, &x392, 0x0, x343,
+                                                      x374);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x393, &x394, x392, x345,
+                                                      x376);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x395, &x396, x394, x347,
+                                                      x378);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x397, &x398, x396, x349,
+                                                      x380);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x399, &x400, x398, x351,
+                                                      x382);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x401, &x402, x400, x353,
+                                                      x384);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x403, &x404, x402, x355,
+                                                      x386);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x405, &x406, x404, x357,
+                                                      x388);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x407, &x408, x406, x359,
+                                                      x390);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x409, &x410, x391,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x411, &x412, x409,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x413, &x414, x409,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x415, &x416, 0x0, x391,
+                                                      x413);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x417, &x418, x416, x393,
+                                                      x414);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x419, &x420, x418, x395,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x421, &x422, x420, x397,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x423, &x424, x422, x399,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x425, &x426, x424, x401,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x427, &x428, x426, x403,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x429, &x430, x428, x405,
+                                                      x411);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x431, &x432, x430, x407,
+                                                      x412);
+    x433 = ((uint32_t)x432 + x408);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x434, &x435, x6, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x436, &x437, x6, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x438, &x439, x6, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x440, &x441, x6, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x442, &x443, x6, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x444, &x445, x6, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x446, &x447, x6, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x448, &x449, x6, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x450, &x451, 0x0, x449,
+                                                      x446);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x452, &x453, x451, x447,
+                                                      x444);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x454, &x455, x453, x445,
+                                                      x442);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x456, &x457, x455, x443,
+                                                      x440);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x458, &x459, x457, x441,
+                                                      x438);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x460, &x461, x459, x439,
+                                                      x436);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x462, &x463, x461, x437,
+                                                      x434);
+    x464 = (x463 + x435);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x465, &x466, 0x0, x417,
+                                                      x448);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x467, &x468, x466, x419,
+                                                      x450);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x469, &x470, x468, x421,
+                                                      x452);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x471, &x472, x470, x423,
+                                                      x454);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x473, &x474, x472, x425,
+                                                      x456);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x475, &x476, x474, x427,
+                                                      x458);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x477, &x478, x476, x429,
+                                                      x460);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x479, &x480, x478, x431,
+                                                      x462);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x481, &x482, x480, x433,
+                                                      x464);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x483, &x484, x465,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x485, &x486, x483,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x487, &x488, x483,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x489, &x490, 0x0, x465,
+                                                      x487);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x491, &x492, x490, x467,
+                                                      x488);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x493, &x494, x492, x469,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x495, &x496, x494, x471,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x497, &x498, x496, x473,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x499, &x500, x498, x475,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x501, &x502, x500, x477,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x503, &x504, x502, x479,
+                                                      x485);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x505, &x506, x504, x481,
+                                                      x486);
+    x507 = ((uint32_t)x506 + x482);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x508, &x509, x7, (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x510, &x511, x7, (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x512, &x513, x7, (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x514, &x515, x7, (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x516, &x517, x7, (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x518, &x519, x7, (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x520, &x521, x7, (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x522, &x523, x7, (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x524, &x525, 0x0, x523,
+                                                      x520);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x526, &x527, x525, x521,
+                                                      x518);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x528, &x529, x527, x519,
+                                                      x516);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x530, &x531, x529, x517,
+                                                      x514);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x532, &x533, x531, x515,
+                                                      x512);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x534, &x535, x533, x513,
+                                                      x510);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x536, &x537, x535, x511,
+                                                      x508);
+    x538 = (x537 + x509);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x539, &x540, 0x0, x491,
+                                                      x522);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x541, &x542, x540, x493,
+                                                      x524);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x543, &x544, x542, x495,
+                                                      x526);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x545, &x546, x544, x497,
+                                                      x528);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x547, &x548, x546, x499,
+                                                      x530);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x549, &x550, x548, x501,
+                                                      x532);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x551, &x552, x550, x503,
+                                                      x534);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x553, &x554, x552, x505,
+                                                      x536);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x555, &x556, x554, x507,
+                                                      x538);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x557, &x558, x539,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x559, &x560, x557,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x561, &x562, x557,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x563, &x564, 0x0, x539,
+                                                      x561);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x565, &x566, x564, x541,
+                                                      x562);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x567, &x568, x566, x543,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x569, &x570, x568, x545,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x571, &x572, x570, x547,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x573, &x574, x572, x549,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x575, &x576, x574, x551,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x577, &x578, x576, x553,
+                                                      x559);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x579, &x580, x578, x555,
+                                                      x560);
+    x581 = ((uint32_t)x580 + x556);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x582, &x583, 0x0, x565,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x584, &x585, x583, x567,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x586, &x587, x585, x569,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x588, &x589, x587, x571,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x590, &x591, x589, x573,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x592, &x593, x591, x575,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x594, &x595, x593, x577,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x596, &x597, x595, x579,
+                                                       UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x598, &x599, x597, x581,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x600, x599, x582, x565);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x601, x599, x584, x567);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x602, x599, x586, x569);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x603, x599, x588, x571);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x604, x599, x590, x573);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x605, x599, x592, x575);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x606, x599, x594, x577);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x607, x599, x596, x579);
+    out1[0] = x600;
+    out1[1] = x601;
+    out1[2] = x602;
+    out1[3] = x603;
+    out1[4] = x604;
+    out1[5] = x605;
+    out1[6] = x606;
+    out1[7] = x607;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_add adds two field elements in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ *   0 ≤ eval arg2 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
+ *   arg2: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_add(uint32_t out1[8],
+                                                    const uint32_t arg1[8],
+                                                    const uint32_t arg2[8]) {
+    uint32_t x1;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x2;
+    uint32_t x3;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x4;
+    uint32_t x5;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x6;
+    uint32_t x7;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x8;
+    uint32_t x9;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x10;
+    uint32_t x11;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x12;
+    uint32_t x13;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint32_t x15;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x16;
+    uint32_t x17;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x18;
+    uint32_t x19;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x20;
+    uint32_t x21;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x22;
+    uint32_t x23;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x24;
+    uint32_t x25;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x26;
+    uint32_t x27;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x28;
+    uint32_t x29;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x30;
+    uint32_t x31;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x32;
+    uint32_t x33;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 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;
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x1, &x2, 0x0, (arg1[0]),
+                                                      (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x3, &x4, x2, (arg1[1]),
+                                                      (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x5, &x6, x4, (arg1[2]),
+                                                      (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x7, &x8, x6, (arg1[3]),
+                                                      (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x9, &x10, x8, (arg1[4]),
+                                                      (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x11, &x12, x10,
+                                                      (arg1[5]), (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x13, &x14, x12,
+                                                      (arg1[6]), (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x15, &x16, x14,
+                                                      (arg1[7]), (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x17, &x18, 0x0, x1,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x19, &x20, x18, x3,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x21, &x22, x20, x5,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x23, &x24, x22, x7,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x25, &x26, x24, x9,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x27, &x28, x26, x11,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x29, &x30, x28, x13,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x31, &x32, x30, x15,
+                                                       UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x33, &x34, x32, x16,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x35, x34, x17, x1);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x36, x34, x19, x3);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x37, x34, x21, x5);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x38, x34, x23, x7);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x39, x34, x25, x9);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x40, x34, x27, x11);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x41, x34, x29, x13);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x42, x34, x31, x15);
+    out1[0] = x35;
+    out1[1] = x36;
+    out1[2] = x37;
+    out1[3] = x38;
+    out1[4] = x39;
+    out1[5] = x40;
+    out1[6] = x41;
+    out1[7] = x42;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_sub subtracts two field elements in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ *   0 ≤ eval arg2 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
+ *   arg2: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_sub(uint32_t out1[8],
+                                                    const uint32_t arg1[8],
+                                                    const uint32_t arg2[8]) {
+    uint32_t x1;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x2;
+    uint32_t x3;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x4;
+    uint32_t x5;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x6;
+    uint32_t x7;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x8;
+    uint32_t x9;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x10;
+    uint32_t x11;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x12;
+    uint32_t x13;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint32_t x15;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x16;
+    uint32_t x17;
+    uint32_t x18;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x19;
+    uint32_t x20;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x21;
+    uint32_t x22;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x23;
+    uint32_t x24;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x25;
+    uint32_t x26;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x27;
+    uint32_t x28;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x29;
+    uint32_t x30;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x31;
+    uint32_t x32;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x33;
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x1, &x2, 0x0, (arg1[0]),
+                                                       (arg2[0]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x3, &x4, x2, (arg1[1]),
+                                                       (arg2[1]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x5, &x6, x4, (arg1[2]),
+                                                       (arg2[2]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x7, &x8, x6, (arg1[3]),
+                                                       (arg2[3]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x9, &x10, x8, (arg1[4]),
+                                                       (arg2[4]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x11, &x12, x10,
+                                                       (arg1[5]), (arg2[5]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x13, &x14, x12,
+                                                       (arg1[6]), (arg2[6]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x15, &x16, x14,
+                                                       (arg1[7]), (arg2[7]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x17, x16, 0x0,
+                                                    UINT32_C(0xffffffff));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x18, &x19, 0x0, x1,
+                                                      (x17 & UINT16_C(0x431)));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x20, &x21, x19, x3, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x22, &x23, x21, x5, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x24, &x25, x23, x7, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x26, &x27, x25, x9, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x28, &x29, x27, x11,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x30, &x31, x29, x13,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000)));
+    out1[0] = x18;
+    out1[1] = x20;
+    out1[2] = x22;
+    out1[3] = x24;
+    out1[4] = x26;
+    out1[5] = x28;
+    out1[6] = x30;
+    out1[7] = x32;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_opp negates a field element in the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_opp(uint32_t out1[8],
+                                                    const uint32_t arg1[8]) {
+    uint32_t x1;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x2;
+    uint32_t x3;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x4;
+    uint32_t x5;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x6;
+    uint32_t x7;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x8;
+    uint32_t x9;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x10;
+    uint32_t x11;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x12;
+    uint32_t x13;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint32_t x15;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x16;
+    uint32_t x17;
+    uint32_t x18;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x19;
+    uint32_t x20;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x21;
+    uint32_t x22;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x23;
+    uint32_t x24;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x25;
+    uint32_t x26;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x27;
+    uint32_t x28;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x29;
+    uint32_t x30;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x31;
+    uint32_t x32;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x33;
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x1, &x2, 0x0, 0x0,
+                                                       (arg1[0]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x3, &x4, x2, 0x0,
+                                                       (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x5, &x6, x4, 0x0,
+                                                       (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x7, &x8, x6, 0x0,
+                                                       (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x9, &x10, x8, 0x0,
+                                                       (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x11, &x12, x10, 0x0,
+                                                       (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x13, &x14, x12, 0x0,
+                                                       (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x15, &x16, x14, 0x0,
+                                                       (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x17, x16, 0x0,
+                                                    UINT32_C(0xffffffff));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x18, &x19, 0x0, x1,
+                                                      (x17 & UINT16_C(0x431)));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x20, &x21, x19, x3, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x22, &x23, x21, x5, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x24, &x25, x23, x7, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x26, &x27, x25, x9, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x28, &x29, x27, x11,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x30, &x31, x29, x13,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000)));
+    out1[0] = x18;
+    out1[1] = x20;
+    out1[2] = x22;
+    out1[3] = x24;
+    out1[4] = x26;
+    out1[5] = x28;
+    out1[6] = x30;
+    out1[7] = x32;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_from_montgomery translates a field element out of the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^8) mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_from_montgomery(
+    uint32_t out1[8], const uint32_t arg1[8]) {
+    uint32_t x1;
+    uint32_t x2;
+    uint32_t x3;
+    uint32_t x4;
+    uint32_t x5;
+    uint32_t x6;
+    uint32_t x7;
+    uint32_t x8;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x9;
+    uint32_t x10;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x11;
+    uint32_t x12;
+    uint32_t x13;
+    uint32_t x14;
+    uint32_t x15;
+    uint32_t x16;
+    uint32_t x17;
+    uint32_t x18;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x19;
+    uint32_t x20;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x21;
+    uint32_t x22;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x23;
+    uint32_t x24;
+    uint32_t x25;
+    uint32_t x26;
+    uint32_t x27;
+    uint32_t x28;
+    uint32_t x29;
+    uint32_t x30;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x31;
+    uint32_t x32;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x33;
+    uint32_t x34;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x35;
+    uint32_t x36;
+    uint32_t x37;
+    uint32_t x38;
+    uint32_t x39;
+    uint32_t x40;
+    uint32_t x41;
+    uint32_t x42;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x43;
+    uint32_t x44;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x45;
+    uint32_t x46;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x47;
+    uint32_t x48;
+    uint32_t x49;
+    uint32_t x50;
+    uint32_t x51;
+    uint32_t x52;
+    uint32_t x53;
+    uint32_t x54;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x55;
+    uint32_t x56;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x57;
+    uint32_t x58;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x59;
+    uint32_t x60;
+    uint32_t x61;
+    uint32_t x62;
+    uint32_t x63;
+    uint32_t x64;
+    uint32_t x65;
+    uint32_t x66;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x67;
+    uint32_t x68;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x69;
+    uint32_t x70;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x71;
+    uint32_t x72;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x73;
+    uint32_t x74;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x75;
+    uint32_t x76;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x77;
+    uint32_t x78;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x79;
+    uint32_t x80;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x81;
+    uint32_t x82;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x83;
+    uint32_t x84;
+    uint32_t x85;
+    uint32_t x86;
+    uint32_t x87;
+    uint32_t x88;
+    uint32_t x89;
+    uint32_t x90;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x91;
+    uint32_t x92;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x93;
+    uint32_t x94;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x95;
+    uint32_t x96;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x97;
+    uint32_t x98;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x99;
+    uint32_t x100;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x101;
+    uint32_t x102;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x103;
+    uint32_t x104;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x105;
+    uint32_t x106;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x107;
+    uint32_t x108;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x109;
+    uint32_t x110;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x111;
+    uint32_t x112;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x113;
+    uint32_t x114;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x115;
+    uint32_t x116;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x117;
+    uint32_t x118;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x119;
+    uint32_t x120;
+    uint32_t x121;
+    uint32_t x122;
+    uint32_t x123;
+    uint32_t x124;
+    uint32_t x125;
+    uint32_t x126;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x127;
+    uint32_t x128;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x129;
+    uint32_t x130;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x131;
+    uint32_t x132;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x133;
+    uint32_t x134;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x135;
+    uint32_t x136;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x137;
+    uint32_t x138;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x139;
+    uint32_t x140;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x141;
+    uint32_t x142;
+    uint32_t x143;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x144;
+    uint32_t x145;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x146;
+    uint32_t x147;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x148;
+    uint32_t x149;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x150;
+    uint32_t x151;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x152;
+    uint32_t x153;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x154;
+    uint32_t x155;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x156;
+    uint32_t x157;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x158;
+    uint32_t x159;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x160;
+    uint32_t x161;
+    uint32_t x162;
+    uint32_t x163;
+    uint32_t x164;
+    uint32_t x165;
+    uint32_t x166;
+    uint32_t x167;
+    uint32_t x168;
+    x1 = (arg1[0]);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x2, &x3, x1,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x4, &x5, x2,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x6, &x7, x2, UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x8, &x9, 0x0, x1, x6);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x10, &x11, 0x0,
+                                                      (x9 + x7), (arg1[1]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x12, &x13, x10,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x14, &x15, x12,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x16, &x17, x12,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x18, &x19, 0x0, x5, x14);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x20, &x21, 0x0, x10,
+                                                      x16);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x22, &x23, 0x0, (((uint32_t)x21 + x11) + x17), (arg1[2]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x24, &x25, x22,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x26, &x27, x24,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x28, &x29, x24,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x30, &x31, 0x0,
+                                                      (x19 + x15), x26);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x32, &x33, 0x0, x22,
+                                                      x28);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x34, &x35, 0x0, (((uint32_t)x33 + x23) + x29), (arg1[3]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x36, &x37, x34,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x38, &x39, x36,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x40, &x41, x36,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x42, &x43, 0x0,
+                                                      (x31 + x27), x38);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x44, &x45, 0x0, x34,
+                                                      x40);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x46, &x47, 0x0, (((uint32_t)x45 + x35) + x41), (arg1[4]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x48, &x49, x46,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x50, &x51, x48,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x52, &x53, x48,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x54, &x55, 0x0,
+                                                      (x43 + x39), x50);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x56, &x57, 0x0, x46,
+                                                      x52);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x58, &x59, 0x0, (((uint32_t)x57 + x47) + x53), (arg1[5]));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x60, &x61, x58,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x62, &x63, x60,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x64, &x65, x60,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x66, &x67, 0x0,
+                                                      (x55 + x51), x62);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x68, &x69, 0x0, x58,
+                                                      x64);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x70, &x71, 0x0, (((uint32_t)x69 + x59) + x65), (arg1[6]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x72, &x73, x71, x4, 0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x74, &x75, x73, x18,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x76, &x77, x75, x30,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x78, &x79, x77, x42,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x80, &x81, x79, x54,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x82, &x83, x81, x66,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x84, &x85, x70,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x86, &x87, x84,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x88, &x89, x84,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x90, &x91, 0x0, x70,
+                                                      x88);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x92, &x93, x91, x72,
+                                                      x89);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x94, &x95, x93, x74,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x96, &x97, x95, x76,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x98, &x99, x97, x78,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x100, &x101, x99, x80,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x102, &x103, x101, x82,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x104, &x105, x103,
+                                                      (x83 + (x67 + x63)), x86);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x106, &x107, 0x0, x92,
+                                                      (arg1[7]));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x108, &x109, x107, x94,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x110, &x111, x109, x96,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x112, &x113, x111, x98,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x114, &x115, x113, x100,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x116, &x117, x115, x102,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x118, &x119, x117, x104,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x120, &x121, x106,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x122, &x123, x120,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x124, &x125, x120,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x126, &x127, 0x0, x106,
+                                                      x124);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x128, &x129, x127, x108,
+                                                      x125);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x130, &x131, x129, x110,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x132, &x133, x131, x112,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x134, &x135, x133, x114,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x136, &x137, x135, x116,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x138, &x139, x137, x118,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x140, &x141, x139, (x119 + (x105 + x87)), x122);
+    x142 = (x141 + x123);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x143, &x144, 0x0, x128,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x145, &x146, x144, x130,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x147, &x148, x146, x132,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x149, &x150, x148, x134,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x151, &x152, x150, x136,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x153, &x154, x152, x138,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x155, &x156, x154, x140,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x157, &x158, x156, x142,
+                                                       UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x159, &x160, x158, 0x0,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x161, x160, x143, x128);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x162, x160, x145, x130);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x163, x160, x147, x132);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x164, x160, x149, x134);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x165, x160, x151, x136);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x166, x160, x153, x138);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x167, x160, x155, x140);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x168, x160, x157, x142);
+    out1[0] = x161;
+    out1[1] = x162;
+    out1[2] = x163;
+    out1[3] = x164;
+    out1[4] = x165;
+    out1[5] = x166;
+    out1[6] = x167;
+    out1[7] = x168;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_to_montgomery translates a field element into the Montgomery domain.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   eval (from_montgomery out1) mod m = eval arg1 mod m
+ *   0 ≤ eval out1 < m
+ *
+ * Input Bounds:
+ *   arg1: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_to_montgomery(
+    uint32_t out1[8], const uint32_t arg1[8]) {
+    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;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x12;
+    uint32_t x13;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x14;
+    uint32_t x15;
+    uint32_t x16;
+    uint32_t x17;
+    uint32_t x18;
+    uint32_t x19;
+    uint32_t x20;
+    uint32_t x21;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x22;
+    uint32_t x23;
+    uint32_t x24;
+    uint32_t x25;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x26;
+    uint32_t x27;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x28;
+    uint32_t x29;
+    uint32_t x30;
+    uint32_t x31;
+    uint32_t x32;
+    uint32_t x33;
+    uint32_t x34;
+    uint32_t x35;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x36;
+    uint32_t x37;
+    uint32_t x38;
+    uint32_t x39;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x40;
+    uint32_t x41;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x42;
+    uint32_t x43;
+    uint32_t x44;
+    uint32_t x45;
+    uint32_t x46;
+    uint32_t x47;
+    uint32_t x48;
+    uint32_t x49;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x50;
+    uint32_t x51;
+    uint32_t x52;
+    uint32_t x53;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x54;
+    uint32_t x55;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x56;
+    uint32_t x57;
+    uint32_t x58;
+    uint32_t x59;
+    uint32_t x60;
+    uint32_t x61;
+    uint32_t x62;
+    uint32_t x63;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x64;
+    uint32_t x65;
+    uint32_t x66;
+    uint32_t x67;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x68;
+    uint32_t x69;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x70;
+    uint32_t x71;
+    uint32_t x72;
+    uint32_t x73;
+    uint32_t x74;
+    uint32_t x75;
+    uint32_t x76;
+    uint32_t x77;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x78;
+    uint32_t x79;
+    uint32_t x80;
+    uint32_t x81;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x82;
+    uint32_t x83;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x84;
+    uint32_t x85;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x86;
+    uint32_t x87;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x88;
+    uint32_t x89;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x90;
+    uint32_t x91;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x92;
+    uint32_t x93;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x94;
+    uint32_t x95;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x96;
+    uint32_t x97;
+    uint32_t x98;
+    uint32_t x99;
+    uint32_t x100;
+    uint32_t x101;
+    uint32_t x102;
+    uint32_t x103;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x104;
+    uint32_t x105;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x106;
+    uint32_t x107;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x108;
+    uint32_t x109;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x110;
+    uint32_t x111;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x112;
+    uint32_t x113;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x114;
+    uint32_t x115;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x116;
+    uint32_t x117;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x118;
+    uint32_t x119;
+    uint32_t x120;
+    uint32_t x121;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x122;
+    uint32_t x123;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x124;
+    uint32_t x125;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x126;
+    uint32_t x127;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x128;
+    uint32_t x129;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x130;
+    uint32_t x131;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x132;
+    uint32_t x133;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x134;
+    uint32_t x135;
+    uint32_t x136;
+    uint32_t x137;
+    uint32_t x138;
+    uint32_t x139;
+    uint32_t x140;
+    uint32_t x141;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x142;
+    uint32_t x143;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x144;
+    uint32_t x145;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x146;
+    uint32_t x147;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x148;
+    uint32_t x149;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x150;
+    uint32_t x151;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x152;
+    uint32_t x153;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x154;
+    uint32_t x155;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x156;
+    uint32_t x157;
+    uint32_t x158;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x159;
+    uint32_t x160;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x161;
+    uint32_t x162;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x163;
+    uint32_t x164;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x165;
+    uint32_t x166;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x167;
+    uint32_t x168;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x169;
+    uint32_t x170;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x171;
+    uint32_t x172;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x173;
+    uint32_t x174;
+    fiat_id_GostR3410_2001_TestParamSet_uint1 x175;
+    uint32_t x176;
+    uint32_t x177;
+    uint32_t x178;
+    uint32_t x179;
+    uint32_t x180;
+    uint32_t x181;
+    uint32_t x182;
+    uint32_t x183;
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x1, &x2, (arg1[0]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x3, &x4, x1,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x5, &x6, x3,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x7, &x8, x3, UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x9, &x10, (arg1[1]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x11, &x12, 0x0, x1, x7);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x13, &x14, 0x0,
+                                                      ((x12 + x2) + x8), x9);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x15, &x16, x13,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x17, &x18, x15,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x19, &x20, x15,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x21, &x22, 0x0, x6, x17);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x23, &x24, (arg1[2]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x25, &x26, 0x0, x13,
+                                                      x19);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x29, &x30, x27,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x31, &x32, x29,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x33, &x34, x29,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x35, &x36, 0x0,
+                                                      (x22 + x18), x31);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x37, &x38, (arg1[3]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x39, &x40, 0x0, x27,
+                                                      x33);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x41, &x42, 0x0, ((x40 + (x28 + x24)) + x34), x37);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x43, &x44, x41,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x45, &x46, x43,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x47, &x48, x43,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x49, &x50, 0x0,
+                                                      (x36 + x32), x45);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x51, &x52, (arg1[4]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x53, &x54, 0x0, x41,
+                                                      x47);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x55, &x56, 0x0, ((x54 + (x42 + x38)) + x48), x51);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x57, &x58, x55,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x59, &x60, x57,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x61, &x62, x57,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x63, &x64, 0x0,
+                                                      (x50 + x46), x59);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x65, &x66, (arg1[5]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x67, &x68, 0x0, x55,
+                                                      x61);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x69, &x70, 0x0, ((x68 + (x56 + x52)) + x62), x65);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x71, &x72, x69,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x73, &x74, x71,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x75, &x76, x71,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x77, &x78, 0x0,
+                                                      (x64 + x60), x73);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x79, &x80, (arg1[6]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x81, &x82, 0x0, x69,
+                                                      x75);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x83, &x84, 0x0, ((x82 + (x70 + x66)) + x76), x79);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x85, &x86, x84, x5, x80);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x87, &x88, x86, x21,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x89, &x90, x88, x35,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x91, &x92, x90, x49,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x93, &x94, x92, x63,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x95, &x96, x94, x77,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x97, &x98, x83,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x99, &x100, x97,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x101, &x102, x97,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x103, &x104, 0x0, x83,
+                                                      x101);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x105, &x106, x104, x85,
+                                                      x102);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x107, &x108, x106, x87,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x109, &x110, x108, x89,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x111, &x112, x110, x91,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x113, &x114, x112, x93,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x115, &x116, x114, x95,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x117, &x118, x116,
+                                                      (x96 + (x78 + x74)), x99);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x119, &x120, (arg1[7]),
+                                                 UINT32_C(0x464584));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x121, &x122, 0x0, x105,
+                                                      x119);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x123, &x124, x122, x107,
+                                                      x120);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x125, &x126, x124, x109,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x127, &x128, x126, x111,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x129, &x130, x128, x113,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x131, &x132, x130, x115,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x133, &x134, x132, x117,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x135, &x136, x121,
+                                                 UINT32_C(0x883b2b2f));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x137, &x138, x135,
+                                                 UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x139, &x140, x135,
+                                                 UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x141, &x142, 0x0, x121,
+                                                      x139);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x143, &x144, x142, x123,
+                                                      x140);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x145, &x146, x144, x125,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x147, &x148, x146, x127,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x149, &x150, x148, x129,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x151, &x152, x150, x131,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x153, &x154, x152, x133,
+                                                      0x0);
+    fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(
+        &x155, &x156, x154, (x134 + (x118 + x100)), x137);
+    x157 = (x156 + x138);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x158, &x159, 0x0, x143,
+                                                       UINT16_C(0x431));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x160, &x161, x159, x145,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x162, &x163, x161, x147,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x164, &x165, x163, x149,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x166, &x167, x165, x151,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x168, &x169, x167, x153,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x170, &x171, x169, x155,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x172, &x173, x171, x157,
+                                                       UINT32_C(0x80000000));
+    fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x174, &x175, x173, 0x0,
+                                                       0x0);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x176, x175, x158, x143);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x177, x175, x160, x145);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x178, x175, x162, x147);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x179, x175, x164, x149);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x180, x175, x166, x151);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x181, x175, x168, x153);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x182, x175, x170, x155);
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x183, x175, x172, x157);
+    out1[0] = x176;
+    out1[1] = x177;
+    out1[2] = x178;
+    out1[3] = x179;
+    out1[4] = x180;
+    out1[5] = x181;
+    out1[6] = x182;
+    out1[7] = x183;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
+ * Output Bounds:
+ *   out1: [0x0 ~> 0xffffffff]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_nonzero(
+    uint32_t *out1, const uint32_t arg1[8]) {
+    uint32_t x1;
+    x1 = ((arg1[0]) |
+          ((arg1[1]) |
+           ((arg1[2]) |
+            ((arg1[3]) |
+             ((arg1[4]) |
+              ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (uint32_t)0x0))))))));
+    *out1 = x1;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_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]]
+ *   arg3: [[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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_selectznz(
+    uint32_t out1[8], fiat_id_GostR3410_2001_TestParamSet_uint1 arg1,
+    const uint32_t arg2[8], const uint32_t arg3[8]) {
+    uint32_t x1;
+    uint32_t x2;
+    uint32_t x3;
+    uint32_t x4;
+    uint32_t x5;
+    uint32_t x6;
+    uint32_t x7;
+    uint32_t x8;
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x1, arg1, (arg2[0]),
+                                                    (arg3[0]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x2, arg1, (arg2[1]),
+                                                    (arg3[1]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x3, arg1, (arg2[2]),
+                                                    (arg3[2]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x4, arg1, (arg2[3]),
+                                                    (arg3[3]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x5, arg1, (arg2[4]),
+                                                    (arg3[4]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x6, arg1, (arg2[5]),
+                                                    (arg3[5]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x7, arg1, (arg2[6]),
+                                                    (arg3[6]));
+    fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x8, arg1, (arg2[7]),
+                                                    (arg3[7]));
+    out1[0] = x1;
+    out1[1] = x2;
+    out1[2] = x3;
+    out1[3] = x4;
+    out1[4] = x5;
+    out1[5] = x6;
+    out1[6] = x7;
+    out1[7] = x8;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order.
+ * Preconditions:
+ *   0 ≤ eval arg1 < m
+ * Postconditions:
+ *   out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
+ *
+ * Input Bounds:
+ *   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
+ * 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]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_to_bytes(
+    uint8_t out1[32], const uint32_t arg1[8]) {
+    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;
+    uint8_t x10;
+    uint32_t x11;
+    uint8_t x12;
+    uint8_t x13;
+    uint8_t x14;
+    uint8_t x15;
+    uint32_t x16;
+    uint8_t x17;
+    uint32_t x18;
+    uint8_t x19;
+    uint8_t x20;
+    uint8_t x21;
+    uint8_t x22;
+    uint32_t x23;
+    uint8_t x24;
+    uint32_t x25;
+    uint8_t x26;
+    uint8_t x27;
+    uint8_t x28;
+    uint8_t x29;
+    uint32_t x30;
+    uint8_t x31;
+    uint32_t x32;
+    uint8_t x33;
+    uint8_t x34;
+    uint8_t x35;
+    uint8_t x36;
+    uint32_t x37;
+    uint8_t x38;
+    uint32_t x39;
+    uint8_t x40;
+    uint8_t x41;
+    uint8_t x42;
+    uint8_t x43;
+    uint32_t x44;
+    uint8_t x45;
+    uint32_t x46;
+    uint8_t x47;
+    uint8_t x48;
+    uint8_t x49;
+    uint8_t x50;
+    uint32_t x51;
+    uint8_t x52;
+    uint32_t x53;
+    uint8_t x54;
+    uint8_t x55;
+    uint8_t x56;
+    uint8_t x57;
+    uint32_t x58;
+    uint8_t x59;
+    uint32_t x60;
+    uint8_t x61;
+    uint8_t x62;
+    uint8_t x63;
+    x1 = (arg1[7]);
+    x2 = (arg1[6]);
+    x3 = (arg1[5]);
+    x4 = (arg1[4]);
+    x5 = (arg1[3]);
+    x6 = (arg1[2]);
+    x7 = (arg1[1]);
+    x8 = (arg1[0]);
+    x9 = (x8 >> 8);
+    x10 = (uint8_t)(x8 & UINT8_C(0xff));
+    x11 = (x9 >> 8);
+    x12 = (uint8_t)(x9 & UINT8_C(0xff));
+    x13 = (uint8_t)(x11 >> 8);
+    x14 = (uint8_t)(x11 & UINT8_C(0xff));
+    x15 = (uint8_t)(x13 & UINT8_C(0xff));
+    x16 = (x7 >> 8);
+    x17 = (uint8_t)(x7 & UINT8_C(0xff));
+    x18 = (x16 >> 8);
+    x19 = (uint8_t)(x16 & UINT8_C(0xff));
+    x20 = (uint8_t)(x18 >> 8);
+    x21 = (uint8_t)(x18 & UINT8_C(0xff));
+    x22 = (uint8_t)(x20 & UINT8_C(0xff));
+    x23 = (x6 >> 8);
+    x24 = (uint8_t)(x6 & UINT8_C(0xff));
+    x25 = (x23 >> 8);
+    x26 = (uint8_t)(x23 & UINT8_C(0xff));
+    x27 = (uint8_t)(x25 >> 8);
+    x28 = (uint8_t)(x25 & UINT8_C(0xff));
+    x29 = (uint8_t)(x27 & UINT8_C(0xff));
+    x30 = (x5 >> 8);
+    x31 = (uint8_t)(x5 & UINT8_C(0xff));
+    x32 = (x30 >> 8);
+    x33 = (uint8_t)(x30 & UINT8_C(0xff));
+    x34 = (uint8_t)(x32 >> 8);
+    x35 = (uint8_t)(x32 & UINT8_C(0xff));
+    x36 = (uint8_t)(x34 & UINT8_C(0xff));
+    x37 = (x4 >> 8);
+    x38 = (uint8_t)(x4 & UINT8_C(0xff));
+    x39 = (x37 >> 8);
+    x40 = (uint8_t)(x37 & UINT8_C(0xff));
+    x41 = (uint8_t)(x39 >> 8);
+    x42 = (uint8_t)(x39 & UINT8_C(0xff));
+    x43 = (uint8_t)(x41 & UINT8_C(0xff));
+    x44 = (x3 >> 8);
+    x45 = (uint8_t)(x3 & UINT8_C(0xff));
+    x46 = (x44 >> 8);
+    x47 = (uint8_t)(x44 & UINT8_C(0xff));
+    x48 = (uint8_t)(x46 >> 8);
+    x49 = (uint8_t)(x46 & UINT8_C(0xff));
+    x50 = (uint8_t)(x48 & UINT8_C(0xff));
+    x51 = (x2 >> 8);
+    x52 = (uint8_t)(x2 & UINT8_C(0xff));
+    x53 = (x51 >> 8);
+    x54 = (uint8_t)(x51 & UINT8_C(0xff));
+    x55 = (uint8_t)(x53 >> 8);
+    x56 = (uint8_t)(x53 & UINT8_C(0xff));
+    x57 = (uint8_t)(x55 & UINT8_C(0xff));
+    x58 = (x1 >> 8);
+    x59 = (uint8_t)(x1 & UINT8_C(0xff));
+    x60 = (x58 >> 8);
+    x61 = (uint8_t)(x58 & UINT8_C(0xff));
+    x62 = (uint8_t)(x60 >> 8);
+    x63 = (uint8_t)(x60 & UINT8_C(0xff));
+    out1[0] = x10;
+    out1[1] = x12;
+    out1[2] = x14;
+    out1[3] = x15;
+    out1[4] = x17;
+    out1[5] = x19;
+    out1[6] = x21;
+    out1[7] = x22;
+    out1[8] = x24;
+    out1[9] = x26;
+    out1[10] = x28;
+    out1[11] = x29;
+    out1[12] = x31;
+    out1[13] = x33;
+    out1[14] = x35;
+    out1[15] = x36;
+    out1[16] = x38;
+    out1[17] = x40;
+    out1[18] = x42;
+    out1[19] = x43;
+    out1[20] = x45;
+    out1[21] = x47;
+    out1[22] = x49;
+    out1[23] = x50;
+    out1[24] = x52;
+    out1[25] = x54;
+    out1[26] = x56;
+    out1[27] = x57;
+    out1[28] = x59;
+    out1[29] = x61;
+    out1[30] = x63;
+    out1[31] = x62;
+}
+
+/*
+ * The function fiat_id_GostR3410_2001_TestParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order.
+ * Preconditions:
+ *   0 ≤ bytes_eval arg1 < m
+ * Postconditions:
+ *   eval out1 mod m = bytes_eval arg1 mod m
+ *   0 ≤ eval out1 < 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]]
+ * Output Bounds:
+ *   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_from_bytes(
+    uint32_t out1[8], const uint8_t arg1[32]) {
+    uint32_t x1;
+    uint32_t x2;
+    uint32_t x3;
+    uint8_t x4;
+    uint32_t x5;
+    uint32_t x6;
+    uint32_t x7;
+    uint8_t x8;
+    uint32_t x9;
+    uint32_t x10;
+    uint32_t x11;
+    uint8_t x12;
+    uint32_t x13;
+    uint32_t x14;
+    uint32_t x15;
+    uint8_t x16;
+    uint32_t x17;
+    uint32_t x18;
+    uint32_t x19;
+    uint8_t x20;
+    uint32_t x21;
+    uint32_t x22;
+    uint32_t x23;
+    uint8_t x24;
+    uint32_t x25;
+    uint32_t x26;
+    uint32_t x27;
+    uint8_t x28;
+    uint32_t x29;
+    uint32_t x30;
+    uint32_t x31;
+    uint8_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;
+    x1 = ((uint32_t)(arg1[31]) << 24);
+    x2 = ((uint32_t)(arg1[30]) << 16);
+    x3 = ((uint32_t)(arg1[29]) << 8);
+    x4 = (arg1[28]);
+    x5 = ((uint32_t)(arg1[27]) << 24);
+    x6 = ((uint32_t)(arg1[26]) << 16);
+    x7 = ((uint32_t)(arg1[25]) << 8);
+    x8 = (arg1[24]);
+    x9 = ((uint32_t)(arg1[23]) << 24);
+    x10 = ((uint32_t)(arg1[22]) << 16);
+    x11 = ((uint32_t)(arg1[21]) << 8);
+    x12 = (arg1[20]);
+    x13 = ((uint32_t)(arg1[19]) << 24);
+    x14 = ((uint32_t)(arg1[18]) << 16);
+    x15 = ((uint32_t)(arg1[17]) << 8);
+    x16 = (arg1[16]);
+    x17 = ((uint32_t)(arg1[15]) << 24);
+    x18 = ((uint32_t)(arg1[14]) << 16);
+    x19 = ((uint32_t)(arg1[13]) << 8);
+    x20 = (arg1[12]);
+    x21 = ((uint32_t)(arg1[11]) << 24);
+    x22 = ((uint32_t)(arg1[10]) << 16);
+    x23 = ((uint32_t)(arg1[9]) << 8);
+    x24 = (arg1[8]);
+    x25 = ((uint32_t)(arg1[7]) << 24);
+    x26 = ((uint32_t)(arg1[6]) << 16);
+    x27 = ((uint32_t)(arg1[5]) << 8);
+    x28 = (arg1[4]);
+    x29 = ((uint32_t)(arg1[3]) << 24);
+    x30 = ((uint32_t)(arg1[2]) << 16);
+    x31 = ((uint32_t)(arg1[1]) << 8);
+    x32 = (arg1[0]);
+    x33 = (x32 + (x31 + (x30 + x29)));
+    x34 = (x33 & UINT32_C(0xffffffff));
+    x35 = (x4 + (x3 + (x2 + x1)));
+    x36 = (x8 + (x7 + (x6 + x5)));
+    x37 = (x12 + (x11 + (x10 + x9)));
+    x38 = (x16 + (x15 + (x14 + x13)));
+    x39 = (x20 + (x19 + (x18 + x17)));
+    x40 = (x24 + (x23 + (x22 + x21)));
+    x41 = (x28 + (x27 + (x26 + x25)));
+    x42 = (x41 & UINT32_C(0xffffffff));
+    x43 = (x40 & UINT32_C(0xffffffff));
+    x44 = (x39 & UINT32_C(0xffffffff));
+    x45 = (x38 & UINT32_C(0xffffffff));
+    x46 = (x37 & UINT32_C(0xffffffff));
+    x47 = (x36 & UINT32_C(0xffffffff));
+    out1[0] = x34;
+    out1[1] = x42;
+    out1[2] = x43;
+    out1[3] = x44;
+    out1[4] = x45;
+    out1[5] = x46;
+    out1[6] = x47;
+    out1[7] = x35;
+}
+
+/* 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_GostR3410_2001_TestParamSet/fe_inv.op3
+ * sliding window w=5
+ */
+static void fiat_id_GostR3410_2001_TestParamSet_inv(fe_t output,
+                                                    const fe_t t1) {
+    int i;
+    /* temporary variables */
+    fe_t acc, t15;
+
+    fiat_id_GostR3410_2001_TestParamSet_square(acc, t1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t15, t1, acc);
+    for (i = 0; i < 6; i++)
+        fiat_id_GostR3410_2001_TestParamSet_mul(t15, t15, acc);
+    fiat_id_GostR3410_2001_TestParamSet_square(acc, t1);
+    for (i = 0; i < 244; i++)
+        fiat_id_GostR3410_2001_TestParamSet_square(acc, acc);
+    fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1);
+    for (i = 0; i < 5; i++)
+        fiat_id_GostR3410_2001_TestParamSet_square(acc, acc);
+    fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1);
+    for (i = 0; i < 5; i++)
+        fiat_id_GostR3410_2001_TestParamSet_square(acc, acc);
+    fiat_id_GostR3410_2001_TestParamSet_mul(output, acc, t15);
+}
+
+/* curve coefficient constants */
+
+static const limb_t const_one[8] = {UINT32_C(0xFFFFFBCF), UINT32_C(0xFFFFFFFF),
+                                    UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
+                                    UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
+                                    UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)};
+
+static const limb_t const_a[8] = {UINT32_C(0xFFFFC983), UINT32_C(0xFFFFFFFF),
+                                  UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
+                                  UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
+                                  UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)};
+
+static const limb_t const_b3[8] = {UINT32_C(0x6AEAB71C), UINT32_C(0x81733EE9),
+                                   UINT32_C(0xFC4E6FC7), UINT32_C(0x00CD3D1C),
+                                   UINT32_C(0x75853407), UINT32_C(0x60AB503A),
+                                   UINT32_C(0x4556810A), UINT32_C(0x0A9EC8AE)};
+
+/* LUT for scalar multiplication by comb interleaving */
+static const pt_aff_t lut_cmb[27][16] = {
+    {
+        {{UINT32_C(0xFFFFF36D), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
+          UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF),
+          UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)},
+         {UINT32_C(0x471125F5), UINT32_C(0x9AF45A5A), UINT32_C(0xF69BF9AE),
+          UINT32_C(0x7CE5090A), UINT32_C(0xE4B6DDE6), UINT32_C(0x67617A63),
+          UINT32_C(0x4AA3DAA4), UINT32_C(0x03F66B35)}},
+        {{UINT32_C(0x149B5D15), UINT32_C(0xB39BDC16), UINT32_C(0x7309454F),
+          UINT32_C(0x87CE978A), UINT32_C(0x315A7A56), UINT32_C(0xD22F32EF),
+          UINT32_C(0xB69A6B57), UINT32_C(0x4C7DE232)},
+         {UINT32_C(0x466DC64D), UINT32_C(0x9E2DAF6D), UINT32_C(0x4B1C8A55),
+          UINT32_C(0x758C27B1), UINT32_C(0xBD647F1A), UINT32_C(0x74A0CB23),
+          UINT32_C(0x2C2F4C70), UINT32_C(0x27E74868)}},
+        {{UINT32_C(0x55A62594), UINT32_C(0xF2D8F32E), UINT32_C(0x36BC547A),
+          UINT32_C(0x8323D570), UINT32_C(0x98D4B25A), UINT32_C(0x497679EB),
+          UINT32_C(0xB87E0534), UINT32_C(0x061167F2)},
+         {UINT32_C(0x223E4DF8), UINT32_C(0xE1FFFDCE), UINT32_C(0xDCD891E9),
+          UINT32_C(0x7C83AE78), UINT32_C(0x3C1B95D0), UINT32_C(0x74398586),
+          UINT32_C(0x74B3F5AB), UINT32_C(0x11D73205)}},
+        {{UINT32_C(0xACB97F7C), UINT32_C(0x34B9C048), UINT32_C(0xE3B9BCC6),
+          UINT32_C(0x8232E73C), UINT32_C(0xDA2DB71D), UINT32_C(0x81F4B63F),
+          UINT32_C(0xA2DF4C84), UINT32_C(0x4EEE5393)},
+         {UINT32_C(0xAC469C69), UINT32_C(0xCA6E63AE), UINT32_C(0x428E4F01),
+          UINT32_C(0x27BC807C), UINT32_C(0x5F4EC124), UINT32_C(0x4A2C23BA),
+          UINT32_C(0xAAE2668B), UINT32_C(0x74847CFC)}},
+        {{UINT32_C(0x6716AF4E), UINT32_C(0x4435585F), UINT32_C(0x1CDB965F),
+          UINT32_C(0xB872D8B7), UINT32_C(0x746FFAD0), UINT32_C(0x662F1962),
+          UINT32_C(0xDB5D0187), UINT32_C(0x52761A24)},
+         {UINT32_C(0xA57E0E3D), UINT32_C(0xF6A09922), UINT32_C(0xA9C12B63),
+          UINT32_C(0x86C69342), UINT32_C(0x5AF190C5), UINT32_C(0x91FF20B6),
+          UINT32_C(0x4EEEE1AE), UINT32_C(0x10DB7A2A)}},
+        {{UINT32_C(0x74628B90), UINT32_C(0xBB464A53), UINT32_C(0x057A4F25),
+          UINT32_C(0x6E7A1227), UINT32_C(0x0B0FA41F), UINT32_C(0x4C309D69),
+          UINT32_C(0x77FE7B93), UINT32_C(0x75482607)},
+         {UINT32_C(0x0B612421), UINT32_C(0xF2583EC7), UINT32_C(0x5E2B15ED),
+          UINT32_C(0xFF2CFC83), UINT32_C(0x8CABC5CF), UINT32_C(0x1E97A7DB),
+          UINT32_C(0x925C149F), UINT32_C(0x1EC08FAA)}},
+        {{UINT32_C(0x0E9FCBA9), UINT32_C(0xBA0170E3), UINT32_C(0x70D9939B),
+          UINT32_C(0x8976DF7C), UINT32_C(0x21AF14DD), UINT32_C(0xEAE6E74B),
+          UINT32_C(0x0D0861F9), UINT32_C(0x09F09868)},
+         {UINT32_C(0x21A781FF), UINT32_C(0x4F7FE26E), UINT32_C(0xD73DCEF7),
+          UINT32_C(0x1725B8D0), UINT32_C(0x7E743498), UINT32_C(0x9DA63217),
+          UINT32_C(0x1B828B99), UINT32_C(0x0F51D42C)}},
+        {{UINT32_C(0x9AFE09BD), UINT32_C(0xBABB076B), UINT32_C(0x17C4050D),
+          UINT32_C(0x4AC89223), UINT32_C(0xDA3E57E8), UINT32_C(0xCA3EA6E3),
+          UINT32_C(0xA33242C0), UINT32_C(0x20AAA384)},
+         {UINT32_C(0xEF929BF5), UINT32_C(0x6D3A1F2D), UINT32_C(0xE751A62D),
+          UINT32_C(0xB34E2605), UINT32_C(0xB8CF1F99), UINT32_C(0xE1AC629F),
+          UINT32_C(0xF0BBA01A), UINT32_C(0x7152D4E3)}},
+        {{UINT32_C(0x943E5B8E), UINT32_C(0xA97A6CE3), UINT32_C(0x2D053A9D),
+          UINT32_C(0x1C0F6C7F), UINT32_C(0x64457DE4), UINT32_C(0x9D4A91DE),
+          UINT32_C(0xC6140057), UINT32_C(0x1E19EA8F)},
+         {UINT32_C(0x500995C8), UINT32_C(0xD4766CB6), UINT32_C(0xE70CD7EE),
+          UINT32_C(0xA019D41D), UINT32_C(0x7AB0A162), UINT32_C(0xBA1828AA),
+          UINT32_C(0x0B7A4E93), UINT32_C(0x0CACA063)}},
+        {{UINT32_C(0xA1B3FE03), UINT32_C(0x1E68315C), UINT32_C(0x1AAB6B20),
+          UINT32_C(0x21FB277E), UINT32_C(0x6A90FB22), UINT32_C(0x210305D7),
+          UINT32_C(0x2E51B9BC), UINT32_C(0x4C3D3EEA)},
+         {UINT32_C(0x89C3A2E8), UINT32_C(0xC5662C6D), UINT32_C(0x1712BF9B),
+          UINT32_C(0x66EA4818), UINT32_C(0x2254FBAB), UINT32_C(0x417F8F04),
+          UINT32_C(0xB057EEC1), UINT32_C(0x2F57DF29)}},
+        {{UINT32_C(0x6509AE4F), UINT32_C(0xF6975C9F), UINT32_C(0xDC89C220),
+          UINT32_C(0x58300438), UINT32_C(0x907FF785), UINT32_C(0xE81DA879),
+          UINT32_C(0x0910ED2F), UINT32_C(0x68D600E3)},
+         {UINT32_C(0xB43BF686), UINT32_C(0xFBB25113), UINT32_C(0x50A64FAE),
+          UINT32_C(0x8B391E3F), UINT32_C(0x3112B7ED), UINT32_C(0x8C1190D2),
+          UINT32_C(0xCCB4CA50), UINT32_C(0x617BCD41)}},
+        {{UINT32_C(0xDD780ACA), UINT32_C(0x75036E69), UINT32_C(0x6FBCD996),
+          UINT32_C(0xC90A01DE), UINT32_C(0x0C851CEF), UINT32_C(0x75E1A8E8),
+          UINT32_C(0xF71BDCC6), UINT32_C(0x7225D38A)},
+         {UINT32_C(0x868B78D2), UINT32_C(0x74AE6935), UINT32_C(0x1CDB5A1E),
+          UINT32_C(0xE70570F3), UINT32_C(0xBEBD2FA4), UINT32_C(0x3E700C48),
+          UINT32_C(0x325D3214), UINT32_C(0x3E483638)}},
+        {{UINT32_C(0xC0E6D8AD), UINT32_C(0x9F272CD5), UINT32_C(0xE09743A2),
+          UINT32_C(0x9E29687C), UINT32_C(0x93CD64B3), UINT32_C(0xBE0E0D59),
+          UINT32_C(0x504B58F0), UINT32_C(0x5D57A75D)},
+         {UINT32_C(0x5D44B092), UINT32_C(0x81A1A6E3), UINT32_C(0x310D7868),
+          UINT32_C(0x38AD0169), UINT32_C(0xCC297B73), UINT32_C(0xC8D3C9A6),
+          UINT32_C(0x908E0814), UINT32_C(0x34D98A19)}},
+        {{UINT32_C(0xE5A57E1F), UINT32_C(0xFFB946AD), UINT32_C(0x191B6C5F),
+          UINT32_C(0xF7EA0AA2), UINT32_C(0x8DF529C1), UINT32_C(0x52D07058),
+          UINT32_C(0x2AFDA727), UINT32_C(0x06B7BDE5)},
+         {UINT32_C(0x90658555), UINT32_C(0x651E6DC9), UINT32_C(0x1FC416CE),
+          UINT32_C(0x8F910D89), UINT32_C(0xCBF086D5), UINT32_C(0x0BA4D84E),
+          UINT32_C(0x0C4A4B4A), UINT32_C(0x73DA158C)}},
+        {{UINT32_C(0x521DB62C), UINT32_C(0xE22420A6), UINT32_C(0xBC90EB6F),
+          UINT32_C(0x8EBC1A21), UINT32_C(0xE50F6EB4), UINT32_C(0xE1529AAC),
+          UINT32_C(0x8BE235DB), UINT32_C(0x4025BF27)},
+         {UINT32_C(0x9FFE2B82), UINT32_C(0x40607710), UINT32_C(0x696B4634),
+          UINT32_C(0x7A6BB75B), UINT32_C(0x2B2F25D3), UINT32_C(0x0CEF27A9),
+          UINT32_C(0xCA0B7112), UINT32_C(0x6C9CFFD7)}},
+        {{UINT32_C(0xEDA5C43B), UINT32_C(0x12B39FF0), UINT32_C(0x54E0FE3F),
+          UINT32_C(0x2E1FC66C), UINT32_C(0x248A9167), UINT32_C(0xFB2DEA80),
+          UINT32_C(0x3B2BB322), UINT32_C(0x11BCDA10)},
+         {UINT32_C(0x16D2C928), UINT32_C(0xFDDF6E84), UINT32_C(0x36E887F4),
+          UINT32_C(0x99DDF6A1), UINT32_C(0x920092D6), UINT32_C(0x1E56D2F3),
+          UINT32_C(0x2D77AE5A), UINT32_C(0x67433BF4)}},
+    },
+    {
+        {{UINT32_C(0x321BFA62), UINT32_C(0x6C204DDC), UINT32_C(0x2F138A80),
+          UINT32_C(0xA96E42B8), UINT32_C(0xE3EC1A7D), UINT32_C(0x4C98E986),
+          UINT32_C(0x136CADC4), UINT32_C(0x223C8BC4)},
+         {UINT32_C(0xBA3CE54A), UINT32_C(0xFA9F15D3), UINT32_C(0x19963D88),
+          UINT32_C(0xA103B9D7), UINT32_C(0x2F811A21), UINT32_C(0x1ED23354),
+          UINT32_C(0x65A4E833), UINT32_C(0x64D6B14C)}},
+        {{UINT32_C(0xCFBD1039), UINT32_C(0x2485175C), UINT32_C(0x7C92D8EC),
+          UINT32_C(0xC4DAE65B), UINT32_C(0x1859FD47), UINT32_C(0x6FC70F54),
+          UINT32_C(0x33E8305C), UINT32_C(0x6D543444)},
+         {UINT32_C(0x944DDA07), UINT32_C(0x1A65FEC2), UINT32_C(0xEF375B21),
+          UINT32_C(0x7BCF8391), UINT32_C(0xBE4CD8D6), UINT32_C(0xDDCFC356),
+          UINT32_C(0x13850042), UINT32_C(0x4BF93B9E)}},
+        {{UINT32_C(0x88B7F950), UINT32_C(0xBDF7A56C), UINT32_C(0x81B8590E),
+          UINT32_C(0x3A60E5FC), UINT32_C(0x6F6E6807), UINT32_C(0x475B94D1),
+          UINT32_C(0x2F0D49A8), UINT32_C(0x2F1B9F06)},
+         {UINT32_C(0x2E6A01D3), UINT32_C(0x3C36DCF3), UINT32_C(0x30444003),
+          UINT32_C(0x807E1D5B), UINT32_C(0xFECF5768), UINT32_C(0xE3768486),
+          UINT32_C(0xEF12B5CC), UINT32_C(0x73C4D0CF)}},
+        {{UINT32_C(0xF4C6FF93), UINT32_C(0x9D76477C), UINT32_C(0xC5A1A495),
+          UINT32_C(0x03F16687), UINT32_C(0xB41748B2), UINT32_C(0x5071DA3D),
+          UINT32_C(0x971D6A7D), UINT32_C(0x0F3A3784)},
+         {UINT32_C(0x2785A782), UINT32_C(0x0B9A5AD6), UINT32_C(0x09FF09F9),
+          UINT32_C(0x957E72A0), UINT32_C(0xAE3CF5F4), UINT32_C(0x3072C1DC),
+          UINT32_C(0xCD9CFD7E), UINT32_C(0x63D463AC)}},
+        {{UINT32_C(0xC77B516C), UINT32_C(0xDA0DEE0B), UINT32_C(0xE6AA0E1F),
+          UINT32_C(0x446D7199), UINT32_C(0xBFFA705C), UINT32_C(0xCC0D1590),
+          UINT32_C(0xC35B59BA), UINT32_C(0x6A6FC81C)},
+         {UINT32_C(0x593E3EB9), UINT32_C(0x39DF210E), UINT32_C(0xD0DCC01F),
+          UINT32_C(0x17F331CE), UINT32_C(0xBD176C5B), UINT32_C(0x02E0E5EB),
+          UINT32_C(0x8A2D6290), UINT32_C(0x68946CCC)}},
+        {{UINT32_C(0x09ECFEF2), UINT32_C(0x8D1400D6), UINT32_C(0xE1E76A98),
+          UINT32_C(0x57D5F91B), UINT32_C(0xA12DFF8D), UINT32_C(0x5CF76130),
+          UINT32_C(0x61002939), UINT32_C(0x5C361922)},
+         {UINT32_C(0xFB0FE974), UINT32_C(0x8D45C8C1), UINT32_C(0xF942ED70),
+          UINT32_C(0x0C97725E), UINT32_C(0x73C5AA42), UINT32_C(0xB1C66498),
+          UINT32_C(0x7E203187), UINT32_C(0x4A121FC4)}},
+        {{UINT32_C(0xFCEDA76C), UINT32_C(0x58430EE3), UINT32_C(0xF5C88D62),
+          UINT32_C(0x3496699A), UINT32_C(0x14273E7E), UINT32_C(0x1C3FC811),
+          UINT32_C(0x1D6D67DA), UINT32_C(0x3E38E9FC)},
+         {UINT32_C(0xAB685B3B), UINT32_C(0xBB683EA4), UINT32_C(0xB0904BB3),
+          UINT32_C(0xB63F72B1), UINT32_C(0x47A75297), UINT32_C(0x5DFA23C5),
+          UINT32_C(0x38B59560), UINT32_C(0x09E80AA0)}},
+        {{UINT32_C(0x7F4D22FC), UINT32_C(0x7D8325C6), UINT32_C(0x8C2FA282),
+          UINT32_C(0xBFFB01B1), UINT32_C(0x4A89BE98), UINT32_C(0x01A037DC),
+          UINT32_C(0x84EA8C8A), UINT32_C(0x092F6525)},
+         {UINT32_C(0xC52FD518), UINT32_C(0x873D33DA), UINT32_C(0x44AFDD41),
+          UINT32_C(0x0A245B15), UINT32_C(0x98FA7FF5), UINT32_C(0x78993737),
+          UINT32_C(0x21D29087), UINT32_C(0x1BB48AD2)}},
+        {{UINT32_C(0x1A59313C), UINT32_C(0x00C97A99), UINT32_C(0x5CF9A6FF),
+          UINT32_C(0xBD4F29EE), UINT32_C(0xD839B62B), UINT32_C(0xEA59D87A),
+          UINT32_C(0x97CAB63C), UINT32_C(0x16F18F48)},
+         {UINT32_C(0x6F6C292F), UINT32_C(0xB339789A), UINT32_C(0xD005ABB2),
+          UINT32_C(0xEC52E644), UINT32_C(0xAE24DA46), UINT32_C(0xEEAC93C9),
+          UINT32_C(0xE5C43B4F), UINT32_C(0x0ECB9957)}},
+        {{UINT32_C(0x20561AF7), UINT32_C(0xD91B2202), UINT32_C(0x55F2CFB8),
+          UINT32_C(0xECA260DD), UINT32_C(0x17B91CCF), UINT32_C(0xF03A8C1D),
+          UINT32_C(0x64B35D9A), UINT32_C(0x55A0491F)},
+         {UINT32_C(0x1A2F8F39), UINT32_C(0x0A97E5CC), UINT32_C(0x23B1D80B),
+          UINT32_C(0x02C187D1), UINT32_C(0xDB9FBA1A), UINT32_C(0xA9C13D26),
+          UINT32_C(0xF8051F0D), UINT32_C(0x7CCDDBAC)}},
+        {{UINT32_C(0xED0E9DB8), UINT32_C(0x05CA8EA5), UINT32_C(0x53A8EA3F),
+          UINT32_C(0xE888079F), UINT32_C(0x9209BFA2), UINT32_C(0x6DDBC40D),
+          UINT32_C(0x80DCEAEA), UINT32_C(0x068E5BA9)},
+         {UINT32_C(0xB19D824B), UINT32_C(0xDB69D133), UINT32_C(0xE6A3A462),
+          UINT32_C(0x65154FB6), UINT32_C(0x020B2AC7), UINT32_C(0x9FCF733D),
+          UINT32_C(0xE1329315), UINT32_C(0x15178DDE)}},
+        {{UINT32_C(0x877EE476), UINT32_C(0x76F78865), UINT32_C(0x12B471BA),
+          UINT32_C(0x5824EACC), UINT32_C(0xBBB640A8), UINT32_C(0x71BDFADF),
+          UINT32_C(0x9A631D09), UINT32_C(0x5181B08F)},
+         {UINT32_C(0xFFE978E8), UINT32_C(0x2913CCA5), UINT32_C(0xAEB89AA6),
+          UINT32_C(0x9CEF3612), UINT32_C(0xE02AD6DC), UINT32_C(0x93BB373E),
+          UINT32_C(0x04144769), UINT32_C(0x5D7984F0)}},
+        {{UINT32_C(0x4F98D2C3), UINT32_C(0x3219DB07), UINT32_C(0xBD40ACCC),
+          UINT32_C(0xE3EF888F), UINT32_C(0x31124C73), UINT32_C(0x07A30E3A),
+          UINT32_C(0xB070C53F), UINT32_C(0x5D9C820B)},
+         {UINT32_C(0xDA0661AB), UINT32_C(0x94D41768), UINT32_C(0x21FF87EB),
+          UINT32_C(0x27FC2661), UINT32_C(0xFF17A977), UINT32_C(0xB8DCBC7F),
+          UINT32_C(0x392EB13D), UINT32_C(0x71F75FF9)}},
+        {{UINT32_C(0x9AD71AB0), UINT32_C(0xC5CED56C), UINT32_C(0x39D6C9F1),
+          UINT32_C(0xE744EAB0), UINT32_C(0x839BD904), UINT32_C(0x6E49B00B),
+          UINT32_C(0xD7003054), UINT32_C(0x0C0EDE2C)},
+         {UINT32_C(0x1A6A1BB7), UINT32_C(0x792C3F80), UINT32_C(0x4B2C7885),
+          UINT32_C(0x6E5093B1), UINT32_C(0x13EA65F7), UINT32_C(0x28873209),
+          UINT32_C(0xF381C851), UINT32_C(0x085A2697)}},
+        {{UINT32_C(0xDA60A255), UINT32_C(0x84FC6B9D), UINT32_C(0x4B495BC6),
+          UINT32_C(0x12397EED), UINT32_C(0x71A5AA87), UINT32_C(0x4881DF6B),
+          UINT32_C(0x9572CFE2), UINT32_C(0x57BB3259)},
+         {UINT32_C(0x3A10A65F), UINT32_C(0x30677759), UINT32_C(0xDB1758DD),
+          UINT32_C(0x670B82EC), UINT32_C(0xD57B513E), UINT32_C(0xD84F3E8F),
+          UINT32_C(0x89088E78), UINT32_C(0x617A512A)}},
+        {{UINT32_C(0xAE3D7707), UINT32_C(0x83971322), UINT32_C(0x6D34D0B4),
+          UINT32_C(0x66563CDE), UINT32_C(0xC13309ED), UINT32_C(0x95342D9B),
+          UINT32_C(0x082A5887), UINT32_C(0x62C2B1B6)},
+         {UINT32_C(0xC3C27158), UINT32_C(0xD94A8712), UINT32_C(0xA844BF60),
+          UINT32_C(0xDE2C9C9D), UINT32_C(0xCE3E4F3C), UINT32_C(0xDE897386),
+          UINT32_C(0x6ACEBDF1), UINT32_C(0x2C22A82E)}},
+    },
+    {
+        {{UINT32_C(0x0604E200), UINT32_C(0x2755028A), UINT32_C(0x44189101),
+          UINT32_C(0xADE23A7D), UINT32_C(0xF0B7F9B7), UINT32_C(0xA6E418F4),
+          UINT32_C(0x212EDC2A), UINT32_C(0x036F5503)},
+         {UINT32_C(0x3F5E0456), UINT32_C(0xE069D06A), UINT32_C(0x0F37F2D8),
+          UINT32_C(0x2FAFF7C8), UINT32_C(0x7F5EDE53), UINT32_C(0xFF08E879),
+          UINT32_C(0x797E0427), UINT32_C(0x7F97725D)}},
+        {{UINT32_C(0xB32E5B1B), UINT32_C(0xE44E39C1), UINT32_C(0xAD3EC706),
+          UINT32_C(0x25CD4614), UINT32_C(0xE382C5D2), UINT32_C(0x2E97B090),
+          UINT32_C(0xB00D79F2), UINT32_C(0x3E1A1F6B)},
+         {UINT32_C(0xC2375837), UINT32_C(0x27573C4E), UINT32_C(0x6C8D5CCD),
+          UINT32_C(0xAD53D2C8), UINT32_C(0xFC09725A), UINT32_C(0x94EE5460),
+          UINT32_C(0x02DD0DF4), UINT32_C(0x6E592506)}},
+        {{UINT32_C(0x3D0C7AC4), UINT32_C(0x6CFFA4BF), UINT32_C(0x69ED4317),
+          UINT32_C(0x663B1218), UINT32_C(0xC79AD5C1), UINT32_C(0x933094F6),
+          UINT32_C(0xFFC54767), UINT32_C(0x569F37ED)},
+         {UINT32_C(0x1F338782), UINT32_C(0x954EEE0C), UINT32_C(0xA46CA276),
+          UINT32_C(0x5BE69673), UINT32_C(0x20CB26DC), UINT32_C(0x77BA0009),
+          UINT32_C(0x029316AE), UINT32_C(0x2211CAC3)}},
+        {{UINT32_C(0x184EBD7C), UINT32_C(0xC8DEF3CB), UINT32_C(0x6A4DB0A0),
+          UINT32_C(0x39337050), UINT32_C(0x0BE1D82C), UINT32_C(0x6FF7993A),
+          UINT32_C(0xFC9252C0), UINT32_C(0x01D7674A)},
+         {UINT32_C(0xF62D9268), UINT32_C(0xB10BA727), UINT32_C(0x817B687B),
+          UINT32_C(0x6E2338D8), UINT32_C(0xE47405F1), UINT32_C(0x266443F2),
+          UINT32_C(0x6872B879), UINT32_C(0x6A1BD9CE)}},
+        {{UINT32_C(0x2B2BD346), UINT32_C(0x19213765), UINT32_C(0xE2ACFB8E),
+          UINT32_C(0x962CA22C), UINT32_C(0x62FECDE1), UINT32_C(0x518CF45D),
+          UINT32_C(0xA13D9E8D), UINT32_C(0x529AE629)},
+         {UINT32_C(0xBB69D5E3), UINT32_C(0xAF796DB0), UINT32_C(0xD4E596B7),
+          UINT32_C(0xA064209D), UINT32_C(0x47942C73), UINT32_C(0x9F3DFD4A),
+          UINT32_C(0x7810D5EC), UINT32_C(0x7FAB6C6D)}},
+        {{UINT32_C(0x66A3B287), UINT32_C(0x55D15250), UINT32_C(0xEEFDDC75),
+          UINT32_C(0x1ECC6A20), UINT32_C(0x26DE8C01), UINT32_C(0xF683FA60),
+          UINT32_C(0x9FBA658C), UINT32_C(0x4F5DE2A6)},
+         {UINT32_C(0xC66D82F4), UINT32_C(0xE748D78A), UINT32_C(0x3B24C76B),
+          UINT32_C(0x2BA525EF), UINT32_C(0x30EE69CE), UINT32_C(0x5A9539E6),
+          UINT32_C(0xB7861B2D), UINT32_C(0x2DA4C4C2)}},
+        {{UINT32_C(0x820743E6), UINT32_C(0x9D1E982D), UINT32_C(0xAB0CC42D),
+          UINT32_C(0x705D9237), UINT32_C(0x47C4E7D7), UINT32_C(0xBDD01663),
+          UINT32_C(0xF8E69896), UINT32_C(0x3D48EE78)},
+         {UINT32_C(0x41132782), UINT32_C(0x7A822BCD), UINT32_C(0xEE46F715),
+          UINT32_C(0xBD41BEFA), UINT32_C(0xD0B2F4B0), UINT32_C(0x8E5C3B5F),
+          UINT32_C(0x5E47ED55), UINT32_C(0x690A53D4)}},
+        {{UINT32_C(0x65A40E44), UINT32_C(0x390536C1), UINT32_C(0x1C92235C),
+          UINT32_C(0x4B4D7970), UINT32_C(0x8B7389E4), UINT32_C(0xCAC27084),
+          UINT32_C(0x19041D01), UINT32_C(0x7B5B23B2)},
+         {UINT32_C(0x3B5FD5BA), UINT32_C(0x7C18B973), UINT32_C(0x84B72217),
+          UINT32_C(0xFD14865D), UINT32_C(0x267EDE4C), UINT32_C(0x5592547E),
+          UINT32_C(0x8B369753), UINT32_C(0x22DB62E5)}},
+        {{UINT32_C(0xDDF15BDD), UINT32_C(0x06083D33), UINT32_C(0x361925F5),
+          UINT32_C(0x5766555F), UINT32_C(0xB7ACDEA7), UINT32_C(0xECC0F110),
+          UINT32_C(0x0A3453B5), UINT32_C(0x3E3F1B27)},
+         {UINT32_C(0x6F7B980D), UINT32_C(0x5A8B7DF9), UINT32_C(0xB44756AC),
+          UINT32_C(0xEBA90E39), UINT32_C(0xAC9A7DB2), UINT32_C(0x954D7ECD),
+          UINT32_C(0x28EA7151), UINT32_C(0x43F688D3)}},
+        {{UINT32_C(0x4638EFAE), UINT32_C(0x51F64569), UINT32_C(0x3D28BF3C),
+          UINT32_C(0x5840A5DB), UINT32_C(0x134D3E8F), UINT32_C(0xDD486261),
+          UINT32_C(0x7B6B466B), UINT32_C(0x09F17E2C)},
+         {UINT32_C(0x78ED7016), UINT32_C(0x30D35463), UINT32_C(0xB86D8508),
+          UINT32_C(0x342E9701), UINT32_C(0x42B19533), UINT32_C(0xA3FF6565),
+          UINT32_C(0x061A4A81), UINT32_C(0x4405F02C)}},
+        {{UINT32_C(0x3D3AAF1E), UINT32_C(0x15C921C0), UINT32_C(0x7D297559),
+          UINT32_C(0x2DD720C7), UINT32_C(0xCB80E3B2), UINT32_C(0x93A07904),
+          UINT32_C(0x6B1EDB93), UINT32_C(0x427C610B)},
+         {UINT32_C(0xF61E2F41), UINT32_C(0xD2CE818F), UINT32_C(0x8252FB3C),
+          UINT32_C(0x1DA53421), UINT32_C(0xED07538F), UINT32_C(0x37A4A997),
+          UINT32_C(0x962454F2), UINT32_C(0x48A928BF)}},
+        {{UINT32_C(0x7A420273), UINT32_C(0x65091E4D), UINT32_C(0xE54C0B47),
+          UINT32_C(0x6AF382AF), UINT32_C(0x8047A423), UINT32_C(0x150DAB08),
+          UINT32_C(0x45BD197C), UINT32_C(0x22C3740A)},
+         {UINT32_C(0xE07C3468), UINT32_C(0x64429AA0), UINT32_C(0x7B37FE10),
+          UINT32_C(0xC506B8C9), UINT32_C(0x3CC5062C), UINT32_C(0x30E2FE78),
+          UINT32_C(0xA9242F2D), UINT32_C(0x2F3B5A5F)}},
+        {{UINT32_C(0x5A40BCA1), UINT32_C(0x2619A3B2), UINT32_C(0x118C2FEA),
+          UINT32_C(0xD012DF23), UINT32_C(0xB73FE15C), UINT32_C(0x2868C8B7),
+          UINT32_C(0xEB10B475), UINT32_C(0x45A9CC5A)},
+         {UINT32_C(0x069050AD), UINT32_C(0x7111AB75), UINT32_C(0xEC2398A9),
+          UINT32_C(0x0665182B), UINT32_C(0x9B86A240), UINT32_C(0xD9A5126E),
+          UINT32_C(0x40E2AED6), UINT32_C(0x601CF0E0)}},
+        {{UINT32_C(0xF48C8655), UINT32_C(0xE74C9DCD), UINT32_C(0x900E89D5),
+          UINT32_C(0xEE703CA8), UINT32_C(0x5390F052), UINT32_C(0x6C2DFF8B),
+          UINT32_C(0x1316CC4C), UINT32_C(0x08588E89)},
+         {UINT32_C(0x47E80C87), UINT32_C(0x0F2CC83A), UINT32_C(0xD87824E4),
+          UINT32_C(0x23DE34CF), UINT32_C(0x541FE8F9), UINT32_C(0xC530AF41),
+          UINT32_C(0xD142F1C0), UINT32_C(0x0BF01DC0)}},
+        {{UINT32_C(0x886C0C4A), UINT32_C(0x210B0B1E), UINT32_C(0x9C56A126),
+          UINT32_C(0x66369DF1), UINT32_C(0xEAC22A5E), UINT32_C(0x5D79AE81),
+          UINT32_C(0xD16F7DB6), UINT32_C(0x4E6C67D4)},
+         {UINT32_C(0x247CDE60), UINT32_C(0x274572F6), UINT32_C(0x54E8454B),
+          UINT32_C(0xF3C92AC7), UINT32_C(0xF08C32D1), UINT32_C(0x784EC1A1),
+          UINT32_C(0xE1FE9C4E), UINT32_C(0x222716D8)}},
+        {{UINT32_C(0x3FB1DB1E), UINT32_C(0xAF6AEF5D), UINT32_C(0xC4C2A4D8),
+          UINT32_C(0xB8B55842), UINT32_C(0xCA5AB578), UINT32_C(0x258A2F44),
+          UINT32_C(0x7D8B2D70), UINT32_C(0x558A803F)},
+         {UINT32_C(0x7E0247A3), UINT32_C(0x9A7345C3), UINT32_C(0xB4D920B1),
+          UINT32_C(0x4E5A6904), UINT32_C(0x76BCBBE1), UINT32_C(0xCF7FAA41),
+          UINT32_C(0xEE112271), UINT32_C(0x66CF993F)}},
+    },
+    {
+        {{UINT32_C(0x84D2C56B), UINT32_C(0xDE7D208F), UINT32_C(0xDDA20F33),
+          UINT32_C(0xD1C77403), UINT32_C(0x9A6F337A), UINT32_C(0xB73FDC09),
+          UINT32_C(0x40CD2CBD), UINT32_C(0x1B2A3807)},
+         {UINT32_C(0x65988D73), UINT32_C(0xB642FA2C), UINT32_C(0x059DAB8E),
+          UINT32_C(0x117E75BC), UINT32_C(0xD6B279AA), UINT32_C(0xC7E2E935),
+          UINT32_C(0xEEA2A445), UINT32_C(0x5EEB9654)}},
+        {{UINT32_C(0xA59D7A2A), UINT32_C(0xA84747C0), UINT32_C(0x1004C5B8),
+          UINT32_C(0x4478AD4A), UINT32_C(0xA22DE791), UINT32_C(0xF55C2B1B),
+          UINT32_C(0x23F8F89F), UINT32_C(0x2FF6097D)},
+         {UINT32_C(0xE117BC40), UINT32_C(0xD079C875), UINT32_C(0x03CB43DD),
+          UINT32_C(0x14AEA360), UINT32_C(0x0A20D653), UINT32_C(0x8C730D89),
+          UINT32_C(0x02FD02D8), UINT32_C(0x6956274A)}},
+        {{UINT32_C(0xD46293CF), UINT32_C(0x9F5D0E9D), UINT32_C(0xF0D93AB7),
+          UINT32_C(0x53748DD4), UINT32_C(0xB9C37CF0), UINT32_C(0x6F81339F),
+          UINT32_C(0xF4B041FC), UINT32_C(0x00B8677A)},
+         {UINT32_C(0xB5A6FE97), UINT32_C(0xF76E0FFE), UINT32_C(0xF7D198A2),
+          UINT32_C(0x6D3C71F5), UINT32_C(0x11420372), UINT32_C(0xF91E8408),
+          UINT32_C(0x70036AED), UINT32_C(0x36F9F354)}},
+        {{UINT32_C(0x5D446956), UINT32_C(0x503AF4F2), UINT32_C(0x2DC9777C),
+          UINT32_C(0xCA08C537), UINT32_C(0xE1308D3A), UINT32_C(0xDB4BA888),
+          UINT32_C(0x01DB98CB), UINT32_C(0x01EA28EA)},
+         {UINT32_C(0xA7DF5FE0), UINT32_C(0x27CC52A9), UINT32_C(0x7DE31E0A),
+          UINT32_C(0x7DA5186B), UINT32_C(0xF136FAD5), UINT32_C(0x63E32889),
+          UINT32_C(0xA363AF23), UINT32_C(0x1BB010A8)}},
+        {{UINT32_C(0xC0FE56C9), UINT32_C(0x65828B54), UINT32_C(0x4ED3935A),
+          UINT32_C(0x7322CD51), UINT32_C(0x37B4A727), UINT32_C(0x42F068F4),
+          UINT32_C(0xB4C02BE4), UINT32_C(0x7AA9F9F0)},
+         {UINT32_C(0xDEBB2DD4), UINT32_C(0xBB77851A), UINT32_C(0xD105B81F),
+          UINT32_C(0x7757D5F6), UINT32_C(0x52FA1512), UINT32_C(0x7805369C),
+          UINT32_C(0x38B6976A), UINT32_C(0x4CBC43AE)}},
+        {{UINT32_C(0x4096725B), UINT32_C(0x24FE8ABD), UINT32_C(0x3895D1E2),
+          UINT32_C(0xC3FAC73A), UINT32_C(0x006A2360), UINT32_C(0xBCAF7757),
+          UINT32_C(0xC03EBB33), UINT32_C(0x75AE96AD)},
+         {UINT32_C(0x0BD1FB6F), UINT32_C(0x31074478), UINT32_C(0xEA386CBE),
+          UINT32_C(0x729E8E6A), UINT32_C(0x4845AAEC), UINT32_C(0xA8BBCC0B),
+          UINT32_C(0xE6582656), UINT32_C(0x1A0A2D19)}},
+        {{UINT32_C(0x69BD55F7), UINT32_C(0x332BC9BD), UINT32_C(0xEFB6F780),
+          UINT32_C(0x93D987E2), UINT32_C(0x14381F4D), UINT32_C(0xE57DE096),
+          UINT32_C(0xFF01C4D9), UINT32_C(0x7BDF4217)},
+         {UINT32_C(0x1956BF02), UINT32_C(0x2A07C4AB), UINT32_C(0x553823D9),
+          UINT32_C(0x7C7B3684), UINT32_C(0xD40F600C), UINT32_C(0x8F750E8E),
+          UINT32_C(0x9693A3C3), UINT32_C(0x63F253E9)}},
+        {{UINT32_C(0xC62CE42B), UINT32_C(0x250ED8BF), UINT32_C(0xE70674E1),
+          UINT32_C(0xE8A1A295), UINT32_C(0x163A92F1), UINT32_C(0x05ED093D),
+          UINT32_C(0x628969A0), UINT32_C(0x515FF44B)},
+         {UINT32_C(0x41CE3AF8), UINT32_C(0xF617DF03), UINT32_C(0xF9E60202),
+          UINT32_C(0xCADE131A), UINT32_C(0x363B87E9), UINT32_C(0xFE83C379),
+          UINT32_C(0x493EF65F), UINT32_C(0x7196A80B)}},
+        {{UINT32_C(0xD7A2047B), UINT32_C(0x4B176FE6), UINT32_C(0x41DCA514),
+          UINT32_C(0x6981D182), UINT32_C(0xDC74AC2E), UINT32_C(0xDDC7EE8E),
+          UINT32_C(0x85CC07D1), UINT32_C(0x3A95A203)},
+         {UINT32_C(0x841E3200), UINT32_C(0x8D4BA2D8), UINT32_C(0x5F654197),
+          UINT32_C(0x837DDD9B), UINT32_C(0xFBFE4D06), UINT32_C(0x388D358E),
+          UINT32_C(0x61143A85), UINT32_C(0x562DE2F2)}},
+        {{UINT32_C(0xCFACB903), UINT32_C(0x3BA1F6E5), UINT32_C(0xBD97A3A2),
+          UINT32_C(0xB5BBA41F), UINT32_C(0xCFCF2547), UINT32_C(0xB86F117F),
+          UINT32_C(0x3D9A13DB), UINT32_C(0x50642859)},
+         {UINT32_C(0x7B5F2A8F), UINT32_C(0xC15C82AE), UINT32_C(0xEF89351E),
+          UINT32_C(0x47E772DD), UINT32_C(0xCAAC4CC7), UINT32_C(0x78C53901),
+          UINT32_C(0x68D72131), UINT32_C(0x6B0F5D30)}},
+        {{UINT32_C(0xA0B407E6), UINT32_C(0x47E17734), UINT32_C(0x34949A81),
+          UINT32_C(0x29E06830), UINT32_C(0xCB1AC772), UINT32_C(0x63D83340),
+          UINT32_C(0xEB84F909), UINT32_C(0x178A6DD6)},
+         {UINT32_C(0x3C27D7BA), UINT32_C(0xA9E94826), UINT32_C(0xDB027A4C),
+          UINT32_C(0xC86AF96D), UINT32_C(0x56D5DF86), UINT32_C(0xE7D04E34),
+          UINT32_C(0x2E8D0EE3), UINT32_C(0x7212EAC2)}},
+        {{UINT32_C(0x8A75F66B), UINT32_C(0xE7E5AA64), UINT32_C(0x8CFD9597),
+          UINT32_C(0x7E86B6AA), UINT32_C(0x834C0271), UINT32_C(0x1B7DDE0C),
+          UINT32_C(0xD4AD306F), UINT32_C(0x397EAF2A)},
+         {UINT32_C(0x1657E32B), UINT32_C(0x0A357906), UINT32_C(0x4957B3AF),
+          UINT32_C(0xAAEB2DCF), UINT32_C(0x69D3CEE9), UINT32_C(0x1C0CBD02),
+          UINT32_C(0x5A6E7D53), UINT32_C(0x7434EC32)}},
+        {{UINT32_C(0x85559E86), UINT32_C(0xEB5878F7), UINT32_C(0x4A09C168),
+          UINT32_C(0xB9555F70), UINT32_C(0x80501134), UINT32_C(0xBFFAC5DB),
+          UINT32_C(0x05B53160), UINT32_C(0x4CDBF53A)},
+         {UINT32_C(0x5F90344B), UINT32_C(0x1413BA29), UINT32_C(0xD0DD0CFD),
+          UINT32_C(0xC6A9D1ED), UINT32_C(0xA0C31B73), UINT32_C(0x8C56AA29),
+          UINT32_C(0xF4E58E08), UINT32_C(0x1C9B0B61)}},
+        {{UINT32_C(0x0E2F595A), UINT32_C(0xBF8D2237), UINT32_C(0xCBA13CD8),
+          UINT32_C(0x7A646816), UINT32_C(0x5CD728B6), UINT32_C(0xBD2E93A1),
+          UINT32_C(0x07CF9009), UINT32_C(0x30FDF85C)},
+         {UINT32_C(0x06122B98), UINT32_C(0x3496D949), UINT32_C(0x5A80B3AF),
+          UINT32_C(0xE63EC741), UINT32_C(0x82838A44), UINT32_C(0xA2A39CF7),
+          UINT32_C(0xC015E1D4), UINT32_C(0x4A064F99)}},
+        {{UINT32_C(0x456CB242), UINT32_C(0x9CCDF95B), UINT32_C(0x6F4517DC),
+          UINT32_C(0xDA1CB24E), UINT32_C(0x931A1115), UINT32_C(0x60450E0F),
+          UINT32_C(0xB5680A8D), UINT32_C(0x6780D774)},
+         {UINT32_C(0x1FDA4243), UINT32_C(0xAFE48DCD), UINT32_C(0xAE9733C7),
+          UINT32_C(0x6BDD541C), UINT32_C(0xD79D1D52), UINT32_C(0xCBBCC69C),
+          UINT32_C(0x1A513B3E), UINT32_C(0x334F4F67)}},
+        {{UINT32_C(0xDF49E1A0), UINT32_C(0xCE7712C4), UINT32_C(0xE0B96135),
+          UINT32_C(0xB5444862), UINT32_C(0xF050D010), UINT32_C(0x10564C4B),
+          UINT32_C(0xFEBEFCC8), UINT32_C(0x0531AEC8)},
+         {UINT32_C(0x70DF6D29), UINT32_C(0xD45B4BE7), UINT32_C(0x6829054E),
+          UINT32_C(0x1ACC2D70), UINT32_C(0x54E56E05), UINT32_C(0x9744CDE1),
+          UINT32_C(0x6EE02696), UINT32_C(0x3C5DE93E)}},
+    },
+    {
+        {{UINT32_C(0x3951B674), UINT32_C(0xF43A2B99), UINT32_C(0x5E72FC98),
+          UINT32_C(0xE82789E8), UINT32_C(0x86992601), UINT32_C(0x2AD48436),
+          UINT32_C(0x01A2B65A), UINT32_C(0x3FDEB172)},
+         {UINT32_C(0x3666322B), UINT32_C(0x926B4839), UINT32_C(0x44B3FDB7),
+          UINT32_C(0x68847D5C), UINT32_C(0xF2F5E247), UINT32_C(0xD06C450D),
+          UINT32_C(0xBBA7C892), UINT32_C(0x0CEC0646)}},
+        {{UINT32_C(0x61F9C9DA), UINT32_C(0x76446D26), UINT32_C(0xAC60376F),
+          UINT32_C(0xEF2C7B98), UINT32_C(0x2410C057), UINT32_C(0xEEA8CABE),
+          UINT32_C(0x3672A2B6), UINT32_C(0x4C2CE2A7)},
+         {UINT32_C(0x12879BA5), UINT32_C(0x3F770945), UINT32_C(0xAD913022),
+          UINT32_C(0x719D5BD0), UINT32_C(0x36D445A4), UINT32_C(0x28A82DD9),
+          UINT32_C(0x965965AA), UINT32_C(0x26382C23)}},
+        {{UINT32_C(0xB8AA8419), UINT32_C(0x66709D92), UINT32_C(0x0AB5C241),
+          UINT32_C(0xFAEFF2E4), UINT32_C(0x1DD46DEB), UINT32_C(0xABB7C5DD),
+          UINT32_C(0x39DB6CB5), UINT32_C(0x7DD03C33)},
+         {UINT32_C(0x9E160F01), UINT32_C(0x76CDD1EA), UINT32_C(0x81C5CA37),
+          UINT32_C(0x00598D56), UINT32_C(0x241772EC), UINT32_C(0x16D23B04),
+          UINT32_C(0x52A6B807), UINT32_C(0x5132B028)}},
+        {{UINT32_C(0xCC041445), UINT32_C(0x6D48D4B5), UINT32_C(0x1528DF63),
+          UINT32_C(0x0B1CD923), UINT32_C(0x4A815F60), UINT32_C(0x82EE4DC6),
+          UINT32_C(0x0451E242), UINT32_C(0x29DA6059)},
+         {UINT32_C(0x17A8A6D0), UINT32_C(0xCD90BFB0), UINT32_C(0x52A7FC3D),
+          UINT32_C(0x8BCF4392), UINT32_C(0x1974860C), UINT32_C(0x49AD55F2),
+          UINT32_C(0x5EDCB1D2), UINT32_C(0x20BBF010)}},
+        {{UINT32_C(0xA8F6C08C), UINT32_C(0xB4F0EA84), UINT32_C(0xD50164F3),
+          UINT32_C(0x4341BEA7), UINT32_C(0x06320C0F), UINT32_C(0xE5389019),
+          UINT32_C(0x8BA6F033), UINT32_C(0x69D4851A)},
+         {UINT32_C(0x77902045), UINT32_C(0x1CE58660), UINT32_C(0xBD8579B3),
+          UINT32_C(0xF3B88D85), UINT32_C(0x4FB0A17B), UINT32_C(0xF84FF63A),
+          UINT32_C(0xDE6581BF), UINT32_C(0x09EE62EE)}},
+        {{UINT32_C(0x7C0516DE), UINT32_C(0x8B8C15B5), UINT32_C(0xA530B89F),
+          UINT32_C(0x3B448FC3), UINT32_C(0x500B0251), UINT32_C(0xE385BBE5),
+          UINT32_C(0xED70804B), UINT32_C(0x5F643F85)},
+         {UINT32_C(0x239E85A5), UINT32_C(0x550D9B7D), UINT32_C(0x8666E41F),
+          UINT32_C(0xDC910B5B), UINT32_C(0x7D4E390F), UINT32_C(0x65522181),
+          UINT32_C(0x3162FE10), UINT32_C(0x5DD2D3E8)}},
+        {{UINT32_C(0xDF024A25), UINT32_C(0x59609390), UINT32_C(0x08CCBA91),
+          UINT32_C(0xE66A77E9), UINT32_C(0x65E24DB6), UINT32_C(0xC5CEA91A),
+          UINT32_C(0x3DCEA0A7), UINT32_C(0x0888DFB5)},
+         {UINT32_C(0x92FA0754), UINT32_C(0x8C8E58CC), UINT32_C(0xF7DC9538),
+          UINT32_C(0x99C259AB), UINT32_C(0x9BEFE750), UINT32_C(0x3A06D8ED),
+          UINT32_C(0xFAACDC97), UINT32_C(0x71AF22E1)}},
+        {{UINT32_C(0x250AC059), UINT32_C(0xCC41D094), UINT32_C(0x3BE3DA01),
+          UINT32_C(0xCD792A73), UINT32_C(0xCC61EFE1), UINT32_C(0x2DA07802),
+          UINT32_C(0x57053A5D), UINT32_C(0x293AFB08)},
+         {UINT32_C(0x2FD8A8A0), UINT32_C(0x3E7E4884), UINT32_C(0x0B9B48D3),
+          UINT32_C(0x183FA500), UINT32_C(0x431AACF6), UINT32_C(0x9CAC07BE),
+          UINT32_C(0x2DF89F10), UINT32_C(0x4F82D799)}},
+        {{UINT32_C(0x0A84935C), UINT32_C(0xFD9F61A8), UINT32_C(0xBB5A7E56),
+          UINT32_C(0x78B948D0), UINT32_C(0x0ACCEEB3), UINT32_C(0xDA478766),
+          UINT32_C(0x53C3851D), UINT32_C(0x47BDAE44)},
+         {UINT32_C(0x0CFE8D0D), UINT32_C(0x5AE2C60C), UINT32_C(0x1D8A79C9),
+          UINT32_C(0xAC8F79B3), UINT32_C(0x0A79CA31), UINT32_C(0xA958C15E),
+          UINT32_C(0xF0952018), UINT32_C(0x1C46E20E)}},
+        {{UINT32_C(0xF04AC529), UINT32_C(0xAE552ECE), UINT32_C(0xE2BFEFBC),
+          UINT32_C(0xB295B601), UINT32_C(0x54733412), UINT32_C(0xECC1EE55),
+          UINT32_C(0x12282094), UINT32_C(0x28BCBA53)},
+         {UINT32_C(0x50B25069), UINT32_C(0x306C0781), UINT32_C(0xE9A18FFE),
+          UINT32_C(0x10D5D23C), UINT32_C(0x1BD5489F), UINT32_C(0xC34FC5C7),
+          UINT32_C(0xE191867D), UINT32_C(0x2B610028)}},
+        {{UINT32_C(0x3E17E84D), UINT32_C(0x458A1CC1), UINT32_C(0x5D7CFB98),
+          UINT32_C(0x6EAE343D), UINT32_C(0x101F0B7E), UINT32_C(0xC6E0FDAA),
+          UINT32_C(0x2A023288), UINT32_C(0x0B9F7C2C)},
+         {UINT32_C(0x6F3FCAA0), UINT32_C(0xBEA893A8), UINT32_C(0x452B07C0),
+          UINT32_C(0x7D711B2B), UINT32_C(0x98E2C88D), UINT32_C(0x28958737),
+          UINT32_C(0xDFD99A2A), UINT32_C(0x553A0180)}},
+        {{UINT32_C(0x0DBA5986), UINT32_C(0x8D617BE8), UINT32_C(0x13D18594),
+          UINT32_C(0xDB763C14), UINT32_C(0xD2DAD82F), UINT32_C(0x822CB0DA),
+          UINT32_C(0x93239947), UINT32_C(0x37ACD99F)},
+         {UINT32_C(0xCDC08BE6), UINT32_C(0x6A2A7070), UINT32_C(0xCF6D63FF),
+          UINT32_C(0x86B3B66A), UINT32_C(0x0F7D4A67), UINT32_C(0x5BEFF3FB),
+          UINT32_C(0xEBC94AE5), UINT32_C(0x05C25557)}},
+        {{UINT32_C(0x89183418), UINT32_C(0x5D1DC087), UINT32_C(0x6EA5A960),
+          UINT32_C(0xA25C7AE2), UINT32_C(0xD31F3AAE), UINT32_C(0x074698B9),
+          UINT32_C(0x221788A4), UINT32_C(0x5A5B510B)},
+         {UINT32_C(0x1DCE95FE), UINT32_C(0x896A8787), UINT32_C(0x7F24020C),
+          UINT32_C(0x89E7B93D), UINT32_C(0x865B4334), UINT32_C(0xFC19BF42),
+          UINT32_C(0x5B78B06D), UINT32_C(0x0389FBF7)}},
+        {{UINT32_C(0x0BB3A3E2), UINT32_C(0x73B6DA7B), UINT32_C(0x44D56755),
+          UINT32_C(0xDBC12670), UINT32_C(0x7CC1C589), UINT32_C(0x7AF2DE28),
+          UINT32_C(0x697CB6B7), UINT32_C(0x7E248FCB)},
+         {UINT32_C(0xC64202C0), UINT32_C(0x9410EC06), UINT32_C(0x75EB3A8C),
+          UINT32_C(0x79C82158), UINT32_C(0xE95C5EA9), UINT32_C(0x74FDD2F6),
+          UINT32_C(0x1CCA72C7), UINT32_C(0x2A40B5B5)}},
+        {{UINT32_C(0x5C29E320), UINT32_C(0x56984223), UINT32_C(0xE871D9E2),
+          UINT32_C(0x8266392A), UINT32_C(0x7B391763), UINT32_C(0x9D86C6C7),
+          UINT32_C(0x02543C9E), UINT32_C(0x5E9E61E2)},
+         {UINT32_C(0xD2501D1A), UINT32_C(0xD62A9334), UINT32_C(0x9211135D),
+          UINT32_C(0x9D19F54D), UINT32_C(0x8FE81272), UINT32_C(0x66D0B961),
+          UINT32_C(0xD09C2033), UINT32_C(0x6E64635A)}},
+        {{UINT32_C(0x06F84E11), UINT32_C(0x93BD0AD8), UINT32_C(0x131AFDBF),
+          UINT32_C(0x45F18F2B), UINT32_C(0x6058EB37), UINT32_C(0x881F053F),
+          UINT32_C(0x948AD0D5), UINT32_C(0x36B8D656)},
+         {UINT32_C(0xE1934E38), UINT32_C(0x53DC2E02), UINT32_C(0xC0435B6C),
+          UINT32_C(0xA8AD5055), UINT32_C(0x4BD7154F), UINT32_C(0x0DF7BD11),
+          UINT32_C(0x73BC98FC), UINT32_C(0x6350B05E)}},
+    },
+    {
+        {{UINT32_C(0x04BF927A), UINT32_C(0x12AC5496), UINT32_C(0xE749323E),
+          UINT32_C(0x9BB322DB), UINT32_C(0xF6D99AD6), UINT32_C(0xC10C666D),
+          UINT32_C(0x4C883E0A), UINT32_C(0x0FDF8FB3)},
+         {UINT32_C(0x665272E8), UINT32_C(0x10667F92), UINT32_C(0x5BF8702F),
+          UINT32_C(0xA30D4CE1), UINT32_C(0xA2D6033D), UINT32_C(0x56314B47),
+          UINT32_C(0xDAC1A10E), UINT32_C(0x09EC90D9)}},
+        {{UINT32_C(0xC9EB81D1), UINT32_C(0x364F06DD), UINT32_C(0x4DC5CB76),
+          UINT32_C(0xFD181A56), UINT32_C(0xE264567C), UINT32_C(0x91CF010C),
+          UINT32_C(0xA05C02FC), UINT32_C(0x71D9A95B)},
+         {UINT32_C(0x53967407), UINT32_C(0xAB5AFBA6), UINT32_C(0x9B0AA089),
+          UINT32_C(0x3FC77913), UINT32_C(0xAF29EF02), UINT32_C(0xDF1D4912),
+          UINT32_C(0x5796A0A5), UINT32_C(0x01C3D61C)}},
+        {{UINT32_C(0xB376E8DE), UINT32_C(0x11503A1C), UINT32_C(0xB8B98321),
+          UINT32_C(0x5CB17D6D), UINT32_C(0xBD8FE9C2), UINT32_C(0x96C9D585),
+          UINT32_C(0xD117171D), UINT32_C(0x048C8DA7)},
+         {UINT32_C(0xB582282A), UINT32_C(0xDF7FABB8), UINT32_C(0x24FD6BB7),
+          UINT32_C(0x75C2A937), UINT32_C(0x00633701), UINT32_C(0xDF0DBD32),
+          UINT32_C(0x039B3E72), UINT32_C(0x04FB7AEC)}},
+        {{UINT32_C(0x0E20C09A), UINT32_C(0xE60CCE96), UINT32_C(0x116E1C38),
+          UINT32_C(0xAD295B31), UINT32_C(0xC04477D0), UINT32_C(0xCA6B625D),
+          UINT32_C(0xFFA32E36), UINT32_C(0x032FE03B)},
+         {UINT32_C(0xE2AAABC6), UINT32_C(0x46334FEE), UINT32_C(0xDA1C6871),
+          UINT32_C(0x9808B03C), UINT32_C(0xF934A482), UINT32_C(0x76D0E3AA),
+          UINT32_C(0xF9CB8F97), UINT32_C(0x2B0BF54A)}},
+        {{UINT32_C(0x2CA29D02), UINT32_C(0xB5D52717), UINT32_C(0xDBEACF03),
+          UINT32_C(0xF9DAEAFB), UINT32_C(0x113A3811), UINT32_C(0x3786E64B),
+          UINT32_C(0x5C30569D), UINT32_C(0x6A01A1A5)},
+         {UINT32_C(0xBA1C28B6), UINT32_C(0x0A91E160), UINT32_C(0x929D3F05),
+          UINT32_C(0x5BFA32BA), UINT32_C(0x40C51084), UINT32_C(0x1108F875),
+          UINT32_C(0x42FD5AE1), UINT32_C(0x37FD2383)}},
+        {{UINT32_C(0x2A79BFB8), UINT32_C(0xABF14EDE), UINT32_C(0xAA34300C),
+          UINT32_C(0x08B34155), UINT32_C(0x64077041), UINT32_C(0x85C0DFA0),
+          UINT32_C(0xF542D447), UINT32_C(0x3AE5D28D)},
+         {UINT32_C(0xB74DC4FB), UINT32_C(0xC303A0FE), UINT32_C(0x556E0B87),
+          UINT32_C(0xB75292FA), UINT32_C(0x51BDC64C), UINT32_C(0x785628B0),
+          UINT32_C(0x13C579F6), UINT32_C(0x43FE786E)}},
+        {{UINT32_C(0x5F08790F), UINT32_C(0xBC5898CB), UINT32_C(0x125644EC),
+          UINT32_C(0xA298A59A), UINT32_C(0xB048217A), UINT32_C(0xD2D9627B),
+          UINT32_C(0x7B1F23F7), UINT32_C(0x6DCEEF32)},
+         {UINT32_C(0xFA7B9C6A), UINT32_C(0x7F02FC44), UINT32_C(0x73597BF7),
+          UINT32_C(0x90C64960), UINT32_C(0x2CB0B3A2), UINT32_C(0x5DD7E4F4),
+          UINT32_C(0x43E83553), UINT32_C(0x5EC5F92C)}},
+        {{UINT32_C(0x59E2C8E9), UINT32_C(0xC06B4D49), UINT32_C(0x1DF8AD8B),
+          UINT32_C(0x7DBC8218), UINT32_C(0xDAE8B6D7), UINT32_C(0x35570120),
+          UINT32_C(0x0CDE2691), UINT32_C(0x4222A1BA)},
+         {UINT32_C(0xC1693046), UINT32_C(0xD2F1EFA6), UINT32_C(0x7D36D9CD),
+          UINT32_C(0x2707228D), UINT32_C(0x062D499C), UINT32_C(0xD668EE25),
+          UINT32_C(0xCE2621A0), UINT32_C(0x7AC81BDF)}},
+        {{UINT32_C(0x16F6A215), UINT32_C(0x3A9F04BB), UINT32_C(0x89E5494E),
+          UINT32_C(0x739BB2BC), UINT32_C(0xD1CEB043), UINT32_C(0xCB8DBAE8),
+          UINT32_C(0x09A6B465), UINT32_C(0x6B177DF0)},
+         {UINT32_C(0x1A529744), UINT32_C(0xB7C4980E), UINT32_C(0x0E9012B5),
+          UINT32_C(0x3941B997), UINT32_C(0x04C6D677), UINT32_C(0xDF317B95),
+          UINT32_C(0x829F51D6), UINT32_C(0x17898D81)}},
+        {{UINT32_C(0xA12282BA), UINT32_C(0x3D48FD66), UINT32_C(0x899E5A1A),
+          UINT32_C(0xB775465B), UINT32_C(0x55D95C35), UINT32_C(0xDE0CCB99),
+          UINT32_C(0x950AB9DF), UINT32_C(0x4CB3CCDD)},
+         {UINT32_C(0x175C4CAE), UINT32_C(0x0B4ABA02), UINT32_C(0xCF86187C),
+          UINT32_C(0x2DA7C698), UINT32_C(0x9A9BF6CA), UINT32_C(0x3A4453DF),
+          UINT32_C(0x8BB9F543), UINT32_C(0x53C86F9C)}},
+        {{UINT32_C(0x5B7DB133), UINT32_C(0x806B815E), UINT32_C(0x118FA7C1),
+          UINT32_C(0x2451D6AC), UINT32_C(0xFB0BEFC3), UINT32_C(0x32C148B6),
+          UINT32_C(0xE433031E), UINT32_C(0x2E6ECEF6)},
+         {UINT32_C(0x54B2EE29), UINT32_C(0x2B78F317), UINT32_C(0x5A73BF01),
+          UINT32_C(0xBC321BF9), UINT32_C(0xF8F7F981), UINT32_C(0xDF6F7840),
+          UINT32_C(0x22280C40), UINT32_C(0x751A917A)}},
+        {{UINT32_C(0x4F9161C8), UINT32_C(0x73EFA631), UINT32_C(0x21145C52),
+          UINT32_C(0xB61C5E68), UINT32_C(0x6A04DC52), UINT32_C(0x60947773),
+          UINT32_C(0x2C2073B2), UINT32_C(0x758E38FF)},
+         {UINT32_C(0x03A54541), UINT32_C(0xDC6FEA73), UINT32_C(0xB6E65787),
+          UINT32_C(0x5E77682C), UINT32_C(0x37370FD0), UINT32_C(0xAFEF6C1C),
+          UINT32_C(0xD5AC255A), UINT32_C(0x33DEEF00)}},
+        {{UINT32_C(0x061D35CC), UINT32_C(0x1AD81101), UINT32_C(0x8A77D246),
+          UINT32_C(0xD55EED7D), UINT32_C(0x926E64C3), UINT32_C(0x8D59DC22),
+          UINT32_C(0xAFC6FFA6), UINT32_C(0x76C9D6CE)},
+         {UINT32_C(0x3F4FCC0F), UINT32_C(0x945A89B5), UINT32_C(0x9087F46A),
+          UINT32_C(0x65EB52CF), UINT32_C(0xAE9F09DE), UINT32_C(0xC3380377),
+          UINT32_C(0x43DFD5FB), UINT32_C(0x59067EDD)}},
+        {{UINT32_C(0xCF841445), UINT32_C(0xCBB7BC66), UINT32_C(0xA3BE7C94),
+          UINT32_C(0x9ED681D3), UINT32_C(0x396C6DD5), UINT32_C(0xF5CF59BE),
+          UINT32_C(0xFA763634), UINT32_C(0x2598A5DC)},
+         {UINT32_C(0x85CF4FDE), UINT32_C(0xAD2B445A), UINT32_C(0xA0D92F4C),
+          UINT32_C(0xC8CE3F42), UINT32_C(0xF01CD0F5), UINT32_C(0x78356D5B),
+          UINT32_C(0x5D50C9D7), UINT32_C(0x26E44A45)}},
+        {{UINT32_C(0x4EDF35A5), UINT32_C(0x22EB53E3), UINT32_C(0xAF1A8A60),
+          UINT32_C(0xA0C6CDEF), UINT32_C(0xD07C1EBD), UINT32_C(0x1D31BA2C),
+          UINT32_C(0xD2C2ADE1), UINT32_C(0x513511A0)},
+         {UINT32_C(0xC4449889), UINT32_C(0xBD3772D4), UINT32_C(0xD3F49C61),
+          UINT32_C(0xAF5EF819), UINT32_C(0x40047745), UINT32_C(0xAAF21599),
+          UINT32_C(0xA54B8080), UINT32_C(0x2128938C)}},
+        {{UINT32_C(0x73ADBEC8), UINT32_C(0x9761A94A), UINT32_C(0x1FB2F257),
+          UINT32_C(0x4710BBF0), UINT32_C(0xB3920007), UINT32_C(0xFE52603E),
+          UINT32_C(0x7DE06F13), UINT32_C(0x66393750)},
+         {UINT32_C(0x965AC706), UINT32_C(0x35F4E633), UINT32_C(0x33F953E5),
+          UINT32_C(0xF49DC418), UINT32_C(0x31CFE467), UINT32_C(0x1562AD51),
+          UINT32_C(0x8ADB1F7A), UINT32_C(0x035FB54D)}},
+    },
+    {
+        {{UINT32_C(0xFD73062E), UINT32_C(0xF632081F), UINT32_C(0xCB740B59),
+          UINT32_C(0xB2740C19), UINT32_C(0x8751E315), UINT32_C(0x2DFD957F),
+          UINT32_C(0xC21039C2), UINT32_C(0x5722E015)},
+         {UINT32_C(0xA4E56D39), UINT32_C(0x44781BFC), UINT32_C(0xDA2FBE63),
+          UINT32_C(0x894BD2F7), UINT32_C(0x5DE22DE0), UINT32_C(0x9E81007B),
+          UINT32_C(0xC68788FC), UINT32_C(0x0CED0859)}},
+        {{UINT32_C(0x8DDA6292), UINT32_C(0x97DD8CF1), UINT32_C(0x27FCF7F1),
+          UINT32_C(0x3E9191F7), UINT32_C(0xDAA6AD44), UINT32_C(0x07885E32),
+          UINT32_C(0xBE9F7E62), UINT32_C(0x624CE66E)},
+         {UINT32_C(0x1893A3D9), UINT32_C(0x0483DA42), UINT32_C(0x8F2A105F),
+          UINT32_C(0x1041B7EA), UINT32_C(0x429A24B9), UINT32_C(0x5B706F99),
+          UINT32_C(0x167C12E1), UINT32_C(0x30BFBCEE)}},
+        {{UINT32_C(0xC38251D8), UINT32_C(0xEB2C7218), UINT32_C(0x022B6411),
+          UINT32_C(0x5FE5D8F6), UINT32_C(0x93DCCB63), UINT32_C(0xF62200C1),
+          UINT32_C(0xCFF221E6), UINT32_C(0x2CF0F8F1)},
+         {UINT32_C(0x9217EE42), UINT32_C(0xDCF1BCD6), UINT32_C(0x9DB2580B),
+          UINT32_C(0x1904879C), UINT32_C(0xF6510164), UINT32_C(0x2DDB7E5D),
+          UINT32_C(0x8A0EAC6B), UINT32_C(0x7BB29985)}},
+        {{UINT32_C(0x0FCF8397), UINT32_C(0x98313C0E), UINT32_C(0x42C8EEF1),
+          UINT32_C(0xB594D0B7), UINT32_C(0x97E842F7), UINT32_C(0xBD31FC34),
+          UINT32_C(0x8F3ADB9B), UINT32_C(0x49476B9D)},
+         {UINT32_C(0x50B45445), UINT32_C(0xD1B5FD37), UINT32_C(0xD583A89F),
+          UINT32_C(0x526C51CA), UINT32_C(0x6782C060), UINT32_C(0x5D461F09),
+          UINT32_C(0x27274A60), UINT32_C(0x414023EC)}},
+        {{UINT32_C(0xEAE4285A), UINT32_C(0x7C809B26), UINT32_C(0x0A066043),
+          UINT32_C(0x939814BF), UINT32_C(0x6C640E3D), UINT32_C(0x9CBAC0BB),
+          UINT32_C(0x30EB1B86), UINT32_C(0x647E22E1)},
+         {UINT32_C(0x3C7DFA0D), UINT32_C(0x21E2A42D), UINT32_C(0xE2CD0CCE),
+          UINT32_C(0xFF8CC304), UINT32_C(0x3496964C), UINT32_C(0x3DC8C920),
+          UINT32_C(0x2B4DF7C2), UINT32_C(0x5D91FE78)}},
+        {{UINT32_C(0x96D84346), UINT32_C(0xD5BBBD6E), UINT32_C(0xF91FFA8C),
+          UINT32_C(0x8363527B), UINT32_C(0x7F408588), UINT32_C(0x931D0FDA),
+          UINT32_C(0xB0B19D0F), UINT32_C(0x2C51F17B)},
+         {UINT32_C(0xFF61C86D), UINT32_C(0x7A693804), UINT32_C(0xB3FFD529),
+          UINT32_C(0xBAB4AC45), UINT32_C(0x4C171C84), UINT32_C(0xEDEA275F),
+          UINT32_C(0xD59B94D9), UINT32_C(0x0520925C)}},
+        {{UINT32_C(0xE8718BB4), UINT32_C(0xB6A620AA), UINT32_C(0x88D37A61),
+          UINT32_C(0x67851F0F), UINT32_C(0x9984A787), UINT32_C(0xCBEE8DBC),
+          UINT32_C(0xAE834635), UINT32_C(0x7190B766)},
+         {UINT32_C(0xC9AC1A8E), UINT32_C(0x3A1D7DB4), UINT32_C(0x7B97BCB7),
+          UINT32_C(0x6EEBD5AD), UINT32_C(0x9D0AB769), UINT32_C(0x60978625),
+          UINT32_C(0x7C7F02DD), UINT32_C(0x5AD56C0C)}},
+        {{UINT32_C(0x2DB3B6F2), UINT32_C(0x2C0003DE), UINT32_C(0xEFCF1DD8),
+          UINT32_C(0x3BE1CE3F), UINT32_C(0x379E6B8A), UINT32_C(0xE2F79872),
+          UINT32_C(0x0B898094), UINT32_C(0x3F9640D8)},
+         {UINT32_C(0x15B29D41), UINT32_C(0x11EBD937), UINT32_C(0x3EF17D8C),
+          UINT32_C(0xD6A076B9), UINT32_C(0xB38ED3BA), UINT32_C(0x0A2C0016),
+          UINT32_C(0xCCB161CC), UINT32_C(0x64329A02)}},
+        {{UINT32_C(0xB1ED1DEA), UINT32_C(0xD135032D), UINT32_C(0x42F734A0),
+          UINT32_C(0x43F76848), UINT32_C(0x3C18D8C5), UINT32_C(0x1F6C12BD),
+          UINT32_C(0xC0A304E8), UINT32_C(0x7D7757B7)},
+         {UINT32_C(0xDE3B6B9F), UINT32_C(0x3F0C2867), UINT32_C(0xB7201E4F),
+          UINT32_C(0x72F98EBB), UINT32_C(0x940E748D), UINT32_C(0xCC408000),
+          UINT32_C(0xAD74B322), UINT32_C(0x34FE6D8F)}},
+        {{UINT32_C(0xE6D884FE), UINT32_C(0xA12A9359), UINT32_C(0xDE063103),
+          UINT32_C(0xB080A081), UINT32_C(0x97ABB854), UINT32_C(0x672DE27D),
+          UINT32_C(0xEE6F3485), UINT32_C(0x712B0883)},
+         {UINT32_C(0x2044A2A2), UINT32_C(0xF430BF2D), UINT32_C(0x7D12027A),
+          UINT32_C(0x66561020), UINT32_C(0x2C539C3B), UINT32_C(0x5ED63AD2),
+          UINT32_C(0xFE5EE1D1), UINT32_C(0x7982AAD0)}},
+        {{UINT32_C(0x3BE94D26), UINT32_C(0x873DC8F6), UINT32_C(0x4B41BD76),
+          UINT32_C(0x90923639), UINT32_C(0x0CBE4B5C), UINT32_C(0xE439A496),
+          UINT32_C(0x11782BF1), UINT32_C(0x424F8D24)},
+         {UINT32_C(0x49686ED9), UINT32_C(0x6612BD99), UINT32_C(0xFB04E27E),
+          UINT32_C(0x78157AA9), UINT32_C(0x805F809C), UINT32_C(0x844E1616),
+          UINT32_C(0x62CB8BCD), UINT32_C(0x717AEB32)}},
+        {{UINT32_C(0x5248CF6A), UINT32_C(0xE98C1A0E), UINT32_C(0xB0E4ADF8),
+          UINT32_C(0xC84294A8), UINT32_C(0xA7769275), UINT32_C(0xD35748A4),
+          UINT32_C(0x03363C82), UINT32_C(0x2C3867E1)},
+         {UINT32_C(0x8F43885A), UINT32_C(0x2EC7AF43), UINT32_C(0x3AE516C7),
+          UINT32_C(0x7979D1A2), UINT32_C(0x8B81056C), UINT32_C(0x059939EC),
+          UINT32_C(0x7E358480), UINT32_C(0x434AA4DD)}},
+        {{UINT32_C(0x4A5228EA), UINT32_C(0x12EA1C87), UINT32_C(0x4D293B9F),
+          UINT32_C(0x47B48198), UINT32_C(0xE9696688), UINT32_C(0x319CE379),
+          UINT32_C(0x7CE6FD05), UINT32_C(0x7C9FF595)},
+         {UINT32_C(0x3093E3E4), UINT32_C(0x15E954DF), UINT32_C(0x304015AF),
+          UINT32_C(0xBC98307C), UINT32_C(0x975C69C5), UINT32_C(0x66522DF8),
+          UINT32_C(0x963CE892), UINT32_C(0x4C9EBFB3)}},
+        {{UINT32_C(0x628FB125), UINT32_C(0x1CEEF18A), UINT32_C(0x4BF30BB6),
+          UINT32_C(0xFB69A234), UINT32_C(0x70C9C864), UINT32_C(0x510EB339),
+          UINT32_C(0x8A89151D), UINT32_C(0x1EE9D1ED)},
+         {UINT32_C(0x4EE1A486), UINT32_C(0x34094028), UINT32_C(0x2FC79CEE),
+          UINT32_C(0x66440167), UINT32_C(0xC7DA3A75), UINT32_C(0xB597625A),
+          UINT32_C(0x65205AF9), UINT32_C(0x6E5B920E)}},
+        {{UINT32_C(0xD87C914C), UINT32_C(0x749D0CA4), UINT32_C(0x0D60C59E),
+          UINT32_C(0x55ECBEBB), UINT32_C(0xA65B4652), UINT32_C(0x916A1127),
+          UINT32_C(0x4E4767A3), UINT32_C(0x503964D4)},
+         {UINT32_C(0x1B1F94D5), UINT32_C(0x8899A4C2), UINT32_C(0x33E0D94D),
+          UINT32_C(0xEFFCAF52), UINT32_C(0xA3DAD87D), UINT32_C(0x61B89B3F),
+          UINT32_C(0x5088D6BE), UINT32_C(0x3CB455F5)}},
+        {{UINT32_C(0x70678C14), UINT32_C(0x5088A52B), UINT32_C(0x41B00FC3),
+          UINT32_C(0x212823D9), UINT32_C(0x19865BDB), UINT32_C(0x38D5CEB6),
+          UINT32_C(0x12E63491), UINT32_C(0x2E9C7FD7)},
+         {UINT32_C(0x59E73913), UINT32_C(0x6656F916), UINT32_C(0xE9035A63),
+          UINT32_C(0x57AE9A47), UINT32_C(0xF02B8DAE), UINT32_C(0x970DCF2B),
+          UINT32_C(0x950FF8A9), UINT32_C(0x3366F8A6)}},
+    },
+    {
+        {{UINT32_C(0xAC4A8F83), UINT32_C(0x93DABD6F), UINT32_C(0x1CFF0AAD),
+          UINT32_C(0x27233488), UINT32_C(0xF500EDFB), UINT32_C(0xBCAC3181),
+          UINT32_C(0xB5297515), UINT32_C(0x27C6DB15)},
+         {UINT32_C(0x2F08A89F), UINT32_C(0x9CD142D9), UINT32_C(0x2EAD0A80),
+          UINT32_C(0x3C005423), UINT32_C(0x44A7623A), UINT32_C(0x82845F95),
+          UINT32_C(0x72BC4862), UINT32_C(0x51047070)}},
+        {{UINT32_C(0xDC1B9159), UINT32_C(0x4303797A), UINT32_C(0x5D9C9AC1),
+          UINT32_C(0x7842434B), UINT32_C(0x6009FE2E), UINT32_C(0x8A36ED2D),
+          UINT32_C(0x5106429C), UINT32_C(0x11FE35C9)},
+         {UINT32_C(0x23554A92), UINT32_C(0xDF20A393), UINT32_C(0x932E37C2),
+          UINT32_C(0x59364A48), UINT32_C(0x7754A5DF), UINT32_C(0x6D7DE6AE),
+          UINT32_C(0x462725AC), UINT32_C(0x00CCC6A3)}},
+        {{UINT32_C(0xBAE83077), UINT32_C(0xB1F86CA5), UINT32_C(0x5110782C),
+          UINT32_C(0x82FE28A5), UINT32_C(0xD942182C), UINT32_C(0x8031BBF3),
+          UINT32_C(0x410D9F83), UINT32_C(0x4F1F3815)},
+         {UINT32_C(0x835ABA65), UINT32_C(0xE57F9907), UINT32_C(0x5AA10903),
+          UINT32_C(0x0A8220C2), UINT32_C(0x8812602E), UINT32_C(0x2E984717),
+          UINT32_C(0x2A7D2C6C), UINT32_C(0x0AEC467D)}},
+        {{UINT32_C(0xC4DBED03), UINT32_C(0xC779F708), UINT32_C(0x8582BD4E),
+          UINT32_C(0x10A30CD8), UINT32_C(0x243FEAEE), UINT32_C(0xFA5646C5),
+          UINT32_C(0xCA459EF7), UINT32_C(0x1CFAF38E)},
+         {UINT32_C(0x95BC8077), UINT32_C(0xCCDD0146), UINT32_C(0x65858C49),
+          UINT32_C(0x4ECDE919), UINT32_C(0x77FEE1B6), UINT32_C(0x562764C6),
+          UINT32_C(0x43524407), UINT32_C(0x3CF5A3AB)}},
+        {{UINT32_C(0x0F6EF445), UINT32_C(0x0CCEAADD), UINT32_C(0xC297AFAF),
+          UINT32_C(0x690C12C1), UINT32_C(0xC15B3D7B), UINT32_C(0xD67AA6EA),
+          UINT32_C(0x9FF8884E), UINT32_C(0x445D233C)},
+         {UINT32_C(0x6CAD3234), UINT32_C(0xC38FFD09), UINT32_C(0xC7002F6F),
+          UINT32_C(0xA690FFD1), UINT32_C(0x11ACB469), UINT32_C(0xD445E851),
+          UINT32_C(0x97166E52), UINT32_C(0x64EE1380)}},
+        {{UINT32_C(0xCEFBFB0A), UINT32_C(0x1EB031CC), UINT32_C(0xAA40D6A9),
+          UINT32_C(0x60F3DEF4), UINT32_C(0xF96FCAFE), UINT32_C(0x240F7CA5),
+          UINT32_C(0xE4450A06), UINT32_C(0x53AF2F10)},
+         {UINT32_C(0xA84058EF), UINT32_C(0xE8AF980F), UINT32_C(0x34AFFC6E),
+          UINT32_C(0x3E300017), UINT32_C(0xC86B458C), UINT32_C(0x62D1D094),
+          UINT32_C(0x75732C7E), UINT32_C(0x5338383D)}},
+        {{UINT32_C(0x04D82638), UINT32_C(0x6BD46AEB), UINT32_C(0x62E645A0),
+          UINT32_C(0x86940A31), UINT32_C(0xA5736B40), UINT32_C(0xD025B4B1),
+          UINT32_C(0x924E8E5E), UINT32_C(0x1056D9D0)},
+         {UINT32_C(0x1DB58101), UINT32_C(0x3D0495CC), UINT32_C(0x2D677581),
+          UINT32_C(0xC300C6E7), UINT32_C(0x610AECEC), UINT32_C(0xFE38B898),
+          UINT32_C(0xD66F64ED), UINT32_C(0x1C8B94E2)}},
+        {{UINT32_C(0x06D0C7EC), UINT32_C(0x5C9C3A37), UINT32_C(0xB8A74918),
+          UINT32_C(0x6B4B5437), UINT32_C(0x9052A235), UINT32_C(0x85689C98),
+          UINT32_C(0x87B53AA6), UINT32_C(0x4F7C2C8D)},
+         {UINT32_C(0xD8F1D334), UINT32_C(0x9FCD866F), UINT32_C(0x6898223C),
+          UINT32_C(0xDBAAA227), UINT32_C(0x95C7B35A), UINT32_C(0x933DE9DA),
+          UINT32_C(0x3EA949FD), UINT32_C(0x329AE20F)}},
+        {{UINT32_C(0x948A2ECD), UINT32_C(0xB83547AF), UINT32_C(0xBE34890C),
+          UINT32_C(0xEBF7C1E7), UINT32_C(0xF8211C33), UINT32_C(0x5F0F44F3),
+          UINT32_C(0xC6927638), UINT32_C(0x14A10BDB)},
+         {UINT32_C(0x5B579BF5), UINT32_C(0x7FD88567), UINT32_C(0x5B7417F0),
+          UINT32_C(0xD7C71281), UINT32_C(0x2083502E), UINT32_C(0x7C04F111),
+          UINT32_C(0xE9AD6283), UINT32_C(0x42029128)}},
+        {{UINT32_C(0x2C5C0928), UINT32_C(0x32FBFFAE), UINT32_C(0x1469F1D3),
+          UINT32_C(0x4E31D312), UINT32_C(0xD79F51A2), UINT32_C(0x17307E28),
+          UINT32_C(0x79A51EBD), UINT32_C(0x546C91AF)},
+         {UINT32_C(0x668086A6), UINT32_C(0x041D464D), UINT32_C(0x0DB695DB),
+          UINT32_C(0x4986BDE5), UINT32_C(0xEF317AA0), UINT32_C(0xCBA5F6EE),
+          UINT32_C(0x730221D3), UINT32_C(0x5879259F)}},
+        {{UINT32_C(0x253BB4BA), UINT32_C(0xBD9C5CA5), UINT32_C(0x0E2A75BB),
+          UINT32_C(0xBBFC6079), UINT32_C(0x67AB9033), UINT32_C(0xB5F11AE3),
+          UINT32_C(0xAC2BFAFE), UINT32_C(0x6411CB1E)},
+         {UINT32_C(0xBF5390B0), UINT32_C(0x750734FE), UINT32_C(0x879A3D3D),
+          UINT32_C(0xA044BED4), UINT32_C(0xA0C47093), UINT32_C(0xE1E9F0E4),
+          UINT32_C(0xB64DA48C), UINT32_C(0x3BCAD93E)}},
+        {{UINT32_C(0xB37E16C2), UINT32_C(0xAFC6BCB6), UINT32_C(0x2331B0CD),
+          UINT32_C(0xB54F56C0), UINT32_C(0x5BBFBEE7), UINT32_C(0x725E81B4),
+          UINT32_C(0xE8B9D922), UINT32_C(0x2AE0C039)},
+         {UINT32_C(0xDB958319), UINT32_C(0x85301041), UINT32_C(0x0681C4A4),
+          UINT32_C(0xDFAE34DD), UINT32_C(0xCBF7BB2B), UINT32_C(0x906C9219),
+          UINT32_C(0x10A1710A), UINT32_C(0x1463E9EF)}},
+        {{UINT32_C(0x21E6FC9D), UINT32_C(0x41E6C388), UINT32_C(0x24A39EC8),
+          UINT32_C(0x0B629A1E), UINT32_C(0x1AEF7A46), UINT32_C(0xC62F60BE),
+          UINT32_C(0xC5A16B6E), UINT32_C(0x59A50B54)},
+         {UINT32_C(0x285B891E), UINT32_C(0x41CA367A), UINT32_C(0xE2F8AF59),
+          UINT32_C(0x70A6CE6B), UINT32_C(0xCBCEEF98), UINT32_C(0x74058747),
+          UINT32_C(0x601C375F), UINT32_C(0x4B912170)}},
+        {{UINT32_C(0x734EE866), UINT32_C(0x7D975CE2), UINT32_C(0xA09F5F14),
+          UINT32_C(0x8D3572C6), UINT32_C(0x2232EE5E), UINT32_C(0x1DB4CC88),
+          UINT32_C(0x7C04C250), UINT32_C(0x6C979049)},
+         {UINT32_C(0xAE1EBC20), UINT32_C(0xB5EC7706), UINT32_C(0xE21AAA32),
+          UINT32_C(0x7BDBD34D), UINT32_C(0xC5D1C733), UINT32_C(0xAD4125FD),
+          UINT32_C(0x731E6B09), UINT32_C(0x28B0302D)}},
+        {{UINT32_C(0x1521415E), UINT32_C(0xD68EEC49), UINT32_C(0x092763C0),
+          UINT32_C(0x31963424), UINT32_C(0x0BFB513B), UINT32_C(0xCA90F48D),
+          UINT32_C(0x573A056A), UINT32_C(0x4814DDFF)},
+         {UINT32_C(0x400E804D), UINT32_C(0x7E67599C), UINT32_C(0x51FD0596),
+          UINT32_C(0x35452750), UINT32_C(0xDB331B66), UINT32_C(0x45EDD7FB),
+          UINT32_C(0xBDEDE107), UINT32_C(0x172DA8B3)}},
+        {{UINT32_C(0xB5BEB1C8), UINT32_C(0xD46F284C), UINT32_C(0x7B125701),
+          UINT32_C(0x5DE5D3F1), UINT32_C(0x248053D1), UINT32_C(0xC3BA591E),
+          UINT32_C(0x9C8F487C), UINT32_C(0x4E67F1F2)},
+         {UINT32_C(0x8C252EC5), UINT32_C(0x380D93E4), UINT32_C(0x22BC5CF6),
+          UINT32_C(0x913F96F1), UINT32_C(0xD7BAA634), UINT32_C(0xC1F06BBD),
+          UINT32_C(0xA30BF1B9), UINT32_C(0x7B625179)}},
+    },
+    {
+        {{UINT32_C(0xABD424AC), UINT32_C(0x125D398D), UINT32_C(0x9CC70479),
+          UINT32_C(0xFE65DF03), UINT32_C(0xFB5EC82C), UINT32_C(0x89A31794),
+          UINT32_C(0xA31C5DCA), UINT32_C(0x63EFFB55)},
+         {UINT32_C(0x045B576A), UINT32_C(0x948F7571), UINT32_C(0x022B5FC8),
+          UINT32_C(0xEC9F6FAB), UINT32_C(0xBD9F0DD2), UINT32_C(0x174DC936),
+          UINT32_C(0xF4C4EE8B), UINT32_C(0x5EEA65E6)}},
+        {{UINT32_C(0x8B800D67), UINT32_C(0xE97070AE), UINT32_C(0xB59B433E),
+          UINT32_C(0xB9CB66FA), UINT32_C(0xC6141364), UINT32_C(0xC4496574),
+          UINT32_C(0x6A9677EA), UINT32_C(0x530AA9B5)},
+         {UINT32_C(0x75200533), UINT32_C(0x4A4E2EE3), UINT32_C(0x0F20A9BE),
+          UINT32_C(0x4C38A509), UINT32_C(0xEA683510), UINT32_C(0x0A6FFBA4),
+          UINT32_C(0x65732EA9), UINT32_C(0x7340EFEE)}},
+        {{UINT32_C(0xE41C2B43), UINT32_C(0x3A5612E4), UINT32_C(0xFCB5C0A8),
+          UINT32_C(0x31F51B80), UINT32_C(0xBD1F03E6), UINT32_C(0x4C5BBA64),
+          UINT32_C(0x3694ADCA), UINT32_C(0x25387243)},
+         {UINT32_C(0x1F7E4D5C), UINT32_C(0xF114EFAF), UINT32_C(0x4EA3A59D),
+          UINT32_C(0xBEA5223A), UINT32_C(0x67EB414D), UINT32_C(0x82CEF46F),
+          UINT32_C(0x9B6CAC3D), UINT32_C(0x09D351C1)}},
+        {{UINT32_C(0x810F5054), UINT32_C(0xC69F25CE), UINT32_C(0x548A2CDF),
+          UINT32_C(0xE33E5E97), UINT32_C(0x36946D3C), UINT32_C(0x20B3F442),
+          UINT32_C(0x65DF2D3B), UINT32_C(0x572C0F5C)},
+         {UINT32_C(0xCC953CC8), UINT32_C(0xFC5B2DF3), UINT32_C(0xD1CCADC6),
+          UINT32_C(0x934D54C0), UINT32_C(0xA6E7B4DB), UINT32_C(0x828A906E),
+          UINT32_C(0x5AD3076F), UINT32_C(0x610D36C1)}},
+        {{UINT32_C(0x74F56E27), UINT32_C(0x960B0A01), UINT32_C(0xCF3FEA75),
+          UINT32_C(0x9942C6AC), UINT32_C(0x82C51490), UINT32_C(0x2E4D786D),
+          UINT32_C(0x9A4749C9), UINT32_C(0x23A51636)},
+         {UINT32_C(0x2F7560FC), UINT32_C(0xD86AB36A), UINT32_C(0xDDB852A9),
+          UINT32_C(0xDA66B49D), UINT32_C(0x544C1023), UINT32_C(0x84E1587D),
+          UINT32_C(0x6AA3C1DA), UINT32_C(0x7AB8BC69)}},
+        {{UINT32_C(0xA5F30701), UINT32_C(0xFD0397AF), UINT32_C(0xDFC8B187),
+          UINT32_C(0x96FFB15D), UINT32_C(0x1475E520), UINT32_C(0xF2C86453),
+          UINT32_C(0xEF37300E), UINT32_C(0x71521986)},
+         {UINT32_C(0x68006D45), UINT32_C(0xD81F75A8), UINT32_C(0xCBC06D4D),
+          UINT32_C(0xDF7814EA), UINT32_C(0x2E8E9150), UINT32_C(0x5BCF959B),
+          UINT32_C(0x56668C18), UINT32_C(0x146D37D7)}},
+        {{UINT32_C(0x88E8DC77), UINT32_C(0x1ABD7312), UINT32_C(0xC1C3A4DB),
+          UINT32_C(0x0B34B877), UINT32_C(0xF844BACE), UINT32_C(0x85739093),
+          UINT32_C(0x04A7CF80), UINT32_C(0x5DEDCF8F)},
+         {UINT32_C(0xD87CDBDC), UINT32_C(0xD8BB237E), UINT32_C(0xCCBA784F),
+          UINT32_C(0x89852174), UINT32_C(0xB2FAECC3), UINT32_C(0x6843BAB8),
+          UINT32_C(0xAA4BBA32), UINT32_C(0x15268302)}},
+        {{UINT32_C(0xB23D3770), UINT32_C(0x3B58225A), UINT32_C(0x10CC9DE6),
+          UINT32_C(0x9357EB59), UINT32_C(0x42ECF80E), UINT32_C(0x8665F92A),
+          UINT32_C(0xC875C031), UINT32_C(0x4819CC9D)},
+         {UINT32_C(0xC34B979B), UINT32_C(0x09CBE5D8), UINT32_C(0x7E1D0E63),
+          UINT32_C(0x161E8AC0), UINT32_C(0x282E36E8), UINT32_C(0x874DF24F),
+          UINT32_C(0x0712A0CD), UINT32_C(0x6528E6FA)}},
+        {{UINT32_C(0x107633E4), UINT32_C(0xE37AD786), UINT32_C(0xCF1FE646),
+          UINT32_C(0x122D7123), UINT32_C(0xCFA93AC0), UINT32_C(0x1E6E682B),
+          UINT32_C(0x276200DB), UINT32_C(0x0A25F4EE)},
+         {UINT32_C(0xE25FBB01), UINT32_C(0x44E290ED), UINT32_C(0xC3C1B418),
+          UINT32_C(0x3E392DF5), UINT32_C(0x83EBE689), UINT32_C(0xE5E15745),
+          UINT32_C(0x4B999926), UINT32_C(0x016139D2)}},
+        {{UINT32_C(0x65D7DA58), UINT32_C(0x048915B0), UINT32_C(0xA78F3D9E),
+          UINT32_C(0x6EF7C4EF), UINT32_C(0xAD614974), UINT32_C(0x78CCCE55),
+          UINT32_C(0x54B95643), UINT32_C(0x43DB7DA0)},
+         {UINT32_C(0xE53F1A67), UINT32_C(0xFC423B70), UINT32_C(0x4EFE2427),
+          UINT32_C(0x8F8BED81), UINT32_C(0x95B045EB), UINT32_C(0xF5D6AD5F),
+          UINT32_C(0xD7407716), UINT32_C(0x23582D5D)}},
+        {{UINT32_C(0x9F674472), UINT32_C(0x9E5D24FB), UINT32_C(0x68626041),
+          UINT32_C(0x1AE18636), UINT32_C(0x7ABC4380), UINT32_C(0x8977E68F),
+          UINT32_C(0x05AF2D04), UINT32_C(0x7D9FF8E8)},
+         {UINT32_C(0x4197C4E1), UINT32_C(0x9D31195F), UINT32_C(0x4400F35E),
+          UINT32_C(0x9F3F6E11), UINT32_C(0x7BBEF801), UINT32_C(0x1A87D586),
+          UINT32_C(0x952BB025), UINT32_C(0x42AE0380)}},
+        {{UINT32_C(0x6B96482B), UINT32_C(0xC6A3ED75), UINT32_C(0xA9C6DD2F),
+          UINT32_C(0x58B38724), UINT32_C(0x9297FB47), UINT32_C(0x464C8CE8),
+          UINT32_C(0xFB6D6C55), UINT32_C(0x0245797E)},
+         {UINT32_C(0xC0B58C8F), UINT32_C(0xBE141C80), UINT32_C(0x77766C48),
+          UINT32_C(0xC4C405CB), UINT32_C(0xD10C0F31), UINT32_C(0xD57EE428),
+          UINT32_C(0x50E8FE7B), UINT32_C(0x03D4862B)}},
+        {{UINT32_C(0x1DC3722C), UINT32_C(0x21976F8A), UINT32_C(0x5F476F0D),
+          UINT32_C(0x02EC30D5), UINT32_C(0xCA434B06), UINT32_C(0xD711E01D),
+          UINT32_C(0x99FF2488), UINT32_C(0x551AC910)},
+         {UINT32_C(0xA56CA3C7), UINT32_C(0x24AEC72D), UINT32_C(0x891896CE),
+          UINT32_C(0x2DD1219A), UINT32_C(0x67882925), UINT32_C(0xD84BAD19),
+          UINT32_C(0x9D4778EF), UINT32_C(0x27E65D7F)}},
+        {{UINT32_C(0x4685687F), UINT32_C(0x09F19C8F), UINT32_C(0xBBB58BD3),
+          UINT32_C(0xB7C7B9E3), UINT32_C(0x8FA34DD5), UINT32_C(0x349D03A7),
+          UINT32_C(0x8D59E889), UINT32_C(0x41F9D003)},
+         {UINT32_C(0x2B3ED6FA), UINT32_C(0xCF3367D4), UINT32_C(0x378DA1ED),
+          UINT32_C(0xCF3C6715), UINT32_C(0x4E935E9A), UINT32_C(0x86DC3903),
+          UINT32_C(0xF08CB23A), UINT32_C(0x50692CFF)}},
+        {{UINT32_C(0xC2D65C87), UINT32_C(0x18CA772A), UINT32_C(0x4F1D0CB6),
+          UINT32_C(0xC9092B38), UINT32_C(0xBBD2015A), UINT32_C(0x91E71CF1),
+          UINT32_C(0x4F3DEF26), UINT32_C(0x4A09DAAC)},
+         {UINT32_C(0x735C9281), UINT32_C(0x7CCA7B4A), UINT32_C(0x1BF0AAEE),
+          UINT32_C(0x2028F144), UINT32_C(0xACB5B748), UINT32_C(0xCF72A082),
+          UINT32_C(0x43299B85), UINT32_C(0x58957D5D)}},
+        {{UINT32_C(0x901F1789), UINT32_C(0x64BB164E), UINT32_C(0x5AEF97BF),
+          UINT32_C(0xC68766E6), UINT32_C(0x942B6DCE), UINT32_C(0x30ECA3E2),
+          UINT32_C(0xF9E798F3), UINT32_C(0x632676FA)},
+         {UINT32_C(0xF13896EE), UINT32_C(0xB52533D3), UINT32_C(0x2D8A29C1),
+          UINT32_C(0xAD912831), UINT32_C(0xBC14E7FF), UINT32_C(0x12F1B9A4),
+          UINT32_C(0x8828D196), UINT32_C(0x4E1D23FD)}},
+    },
+    {
+        {{UINT32_C(0xEF494793), UINT32_C(0xC4F89E00), UINT32_C(0xC93D2F55),
+          UINT32_C(0xA6044BC3), UINT32_C(0x8797F8AF), UINT32_C(0x68E60B58),
+          UINT32_C(0x841E4B5E), UINT32_C(0x4D5969FA)},
+         {UINT32_C(0xD759BB2D), UINT32_C(0xB1EE70FB), UINT32_C(0x66D8AD01),
+          UINT32_C(0x9AC30433), UINT32_C(0x84E9F677), UINT32_C(0xD93F23DB),
+          UINT32_C(0xC53029A4), UINT32_C(0x2AD9D16F)}},
+        {{UINT32_C(0xDD882D23), UINT32_C(0xD01FC16B), UINT32_C(0xFA5B4128),
+          UINT32_C(0x3BF921F1), UINT32_C(0x235BC9CE), UINT32_C(0x3D3FE145),
+          UINT32_C(0x62E686E1), UINT32_C(0x59556716)},
+         {UINT32_C(0x79F99D69), UINT32_C(0xE329A7C2), UINT32_C(0xA4F5F5F5),
+          UINT32_C(0xA67EF5EC), UINT32_C(0xD5A34FF0), UINT32_C(0xF96A41EE),
+          UINT32_C(0x74674B5F), UINT32_C(0x09D0CF06)}},
+        {{UINT32_C(0x6135B7E2), UINT32_C(0x8CCDF71C), UINT32_C(0xAFB6AD6B),
+          UINT32_C(0x91F1E33E), UINT32_C(0xDB0CFEDF), UINT32_C(0xC452F439),
+          UINT32_C(0xC05B06D4), UINT32_C(0x15724711)},
+         {UINT32_C(0xA3BC1277), UINT32_C(0x5FEE0E0E), UINT32_C(0x8D8BA081),
+          UINT32_C(0xD6847FAD), UINT32_C(0x0D4C8DDD), UINT32_C(0x8B02666C),
+          UINT32_C(0xC35559DB), UINT32_C(0x149E5009)}},
+        {{UINT32_C(0x5461D9CA), UINT32_C(0xB4D0D2C9), UINT32_C(0xCE0A3973),
+          UINT32_C(0xFE7993B6), UINT32_C(0xD6032E95), UINT32_C(0x42B2A500),
+          UINT32_C(0x217131C6), UINT32_C(0x4DEEE35A)},
+         {UINT32_C(0xFFE7C2EB), UINT32_C(0x94E65C8C), UINT32_C(0xB19D4B4A),
+          UINT32_C(0x0DAD7785), UINT32_C(0x925613F9), UINT32_C(0xEEBA6794),
+          UINT32_C(0xE30494CB), UINT32_C(0x6AF45BBE)}},
+        {{UINT32_C(0x32F43F67), UINT32_C(0x41352A61), UINT32_C(0x48F886D3),
+          UINT32_C(0x0D218DE9), UINT32_C(0x9B33B0F6), UINT32_C(0xCDFC0C55),
+          UINT32_C(0x6C5B90CD), UINT32_C(0x21FC6353)},
+         {UINT32_C(0x7898AFF2), UINT32_C(0x5D8CA5AD), UINT32_C(0x24287C30),
+          UINT32_C(0xA743F80E), UINT32_C(0x9084A3A2), UINT32_C(0x4D037131),
+          UINT32_C(0xB5EFC978), UINT32_C(0x52041EED)}},
+        {{UINT32_C(0xCC1BCFCB), UINT32_C(0x80B588EE), UINT32_C(0xE5CE0035),
+          UINT32_C(0xAD871A11), UINT32_C(0xF966D746), UINT32_C(0xF47224D0),
+          UINT32_C(0xB387FCC2), UINT32_C(0x5215A9D2)},
+         {UINT32_C(0x695C02AF), UINT32_C(0xC54EB2E7), UINT32_C(0xDFC8493D),
+          UINT32_C(0x36FD06BC), UINT32_C(0x98CE7C76), UINT32_C(0x1CE8A9AA),
+          UINT32_C(0x644D398B), UINT32_C(0x058DFCBF)}},
+        {{UINT32_C(0x5BB81464), UINT32_C(0xCD7E67DC), UINT32_C(0x047A7789),
+          UINT32_C(0xE7A19301), UINT32_C(0x573E837B), UINT32_C(0xCCC31EE5),
+          UINT32_C(0xAF7703D5), UINT32_C(0x25EE99AF)},
+         {UINT32_C(0xDDB3E807), UINT32_C(0x34FDD6DA), UINT32_C(0x109092DD),
+          UINT32_C(0x273D8288), UINT32_C(0xB7357633), UINT32_C(0xF8F2464F),
+          UINT32_C(0xCCAA31D5), UINT32_C(0x26B2CBAD)}},
+        {{UINT32_C(0xF707F9F7), UINT32_C(0xBA9CFEDE), UINT32_C(0xAC4975FB),
+          UINT32_C(0xA9A6896C), UINT32_C(0xBB1C35E4), UINT32_C(0x62135D9D),
+          UINT32_C(0xCBA133D2), UINT32_C(0x13AE840F)},
+         {UINT32_C(0x4C2BA3A9), UINT32_C(0x6ABF3913), UINT32_C(0x6D8A62C1),
+          UINT32_C(0xE4D8508A), UINT32_C(0x66D96607), UINT32_C(0xF2565354),
+          UINT32_C(0xB6CABAE8), UINT32_C(0x5C368CCE)}},
+        {{UINT32_C(0x8B3999BB), UINT32_C(0x0C3B52E8), UINT32_C(0xEF691871),
+          UINT32_C(0xB752E28F), UINT32_C(0xF17D0D2D), UINT32_C(0xA0460ABC),
+          UINT32_C(0xB7741F2C), UINT32_C(0x7DDCE3C1)},
+         {UINT32_C(0x3673000F), UINT32_C(0x076A6BAB), UINT32_C(0x425E8A9D),
+          UINT32_C(0xCDB1CD2B), UINT32_C(0x2606EAB5), UINT32_C(0x357FCFFF),
+          UINT32_C(0x035DE7B4), UINT32_C(0x308644F8)}},
+        {{UINT32_C(0x6D6FF45E), UINT32_C(0xBA64A127), UINT32_C(0x6B0C3CEF),
+          UINT32_C(0x1F52B6AE), UINT32_C(0xCBF496CB), UINT32_C(0x91295179),
+          UINT32_C(0xA1B12BE4), UINT32_C(0x2B986FAD)},
+         {UINT32_C(0x44DBAF57), UINT32_C(0x243D2366), UINT32_C(0x346E88C2),
+          UINT32_C(0x48E22BBA), UINT32_C(0x8BBAFA0D), UINT32_C(0xCDFB7957),
+          UINT32_C(0x0D70670E), UINT32_C(0x094ED36E)}},
+        {{UINT32_C(0xA0D60407), UINT32_C(0x2BAD1539), UINT32_C(0x6E744111),
+          UINT32_C(0xC1A9286E), UINT32_C(0x81A6DCAA), UINT32_C(0x6D08C0DB),
+          UINT32_C(0x80AFB34F), UINT32_C(0x108F35EC)},
+         {UINT32_C(0x1E3E34AE), UINT32_C(0xBE79A6E3), UINT32_C(0x16D524E5),
+          UINT32_C(0x206EAA28), UINT32_C(0x344ABA64), UINT32_C(0x563B6E1C),
+          UINT32_C(0x3207CA68), UINT32_C(0x6C362A61)}},
+        {{UINT32_C(0xEF9A9A0F), UINT32_C(0x04D8145B), UINT32_C(0xA15B6247),
+          UINT32_C(0x8B57559B), UINT32_C(0x303AFBF3), UINT32_C(0x72D53570),
+          UINT32_C(0xD6DB5736), UINT32_C(0x01C36B41)},
+         {UINT32_C(0x1173B5FA), UINT32_C(0x94D583C9), UINT32_C(0x013C8AAA),
+          UINT32_C(0x71F8E12D), UINT32_C(0xF29CB838), UINT32_C(0xA4B5A532),
+          UINT32_C(0x7CE4EBA4), UINT32_C(0x4B179700)}},
+        {{UINT32_C(0x0CE86FC3), UINT32_C(0x69CFA7B0), UINT32_C(0xD60E076C),
+          UINT32_C(0x3705D7C0), UINT32_C(0xB1091E10), UINT32_C(0xB1A1464A),
+          UINT32_C(0x7FE80950), UINT32_C(0x097945A9)},
+         {UINT32_C(0x9AA381E3), UINT32_C(0xD9C71A95), UINT32_C(0xA410FF56),
+          UINT32_C(0x2A929073), UINT32_C(0xF0FEB121), UINT32_C(0x79EF8353),
+          UINT32_C(0x5F3107E5), UINT32_C(0x1437C4B0)}},
+        {{UINT32_C(0x621DB2E5), UINT32_C(0xC5128C8B), UINT32_C(0x51A9499A),
+          UINT32_C(0x4E9C9B2E), UINT32_C(0xD8CD7594), UINT32_C(0x11535880),
+          UINT32_C(0xB0697C07), UINT32_C(0x35A26F59)},
+         {UINT32_C(0xC43B624E), UINT32_C(0xAB3F4B75), UINT32_C(0xB8E03E6B),
+          UINT32_C(0x69F82105), UINT32_C(0xFB04E036), UINT32_C(0xFB268288),
+          UINT32_C(0xA0BDB41C), UINT32_C(0x6A5E6BD3)}},
+        {{UINT32_C(0xC8082916), UINT32_C(0x8C716A1A), UINT32_C(0x4592472C),
+          UINT32_C(0xB1D1B152), UINT32_C(0x3AB6938A), UINT32_C(0x63657A6D),
+          UINT32_C(0xF03214AE), UINT32_C(0x44882EB6)},
+         {UINT32_C(0xC615AF7D), UINT32_C(0x19575B8A), UINT32_C(0x35EE3D98),
+          UINT32_C(0x14D740C1), UINT32_C(0x57768D2D), UINT32_C(0xBC478E89),
+          UINT32_C(0x13FC5E4C), UINT32_C(0x30CC8FA2)}},
+        {{UINT32_C(0x4EBE1E7C), UINT32_C(0x705607C5), UINT32_C(0x284EDA2B),
+          UINT32_C(0x631E5B88), UINT32_C(0x07F54DDB), UINT32_C(0x07E9E39C),
+          UINT32_C(0x8DCF6BC5), UINT32_C(0x4E554D88)},
+         {UINT32_C(0x0CBAB0FE), UINT32_C(0x12E9FB20), UINT32_C(0xBA5E007F),
+          UINT32_C(0x6F3BC7CE), UINT32_C(0xBC871DF6), UINT32_C(0xA770BA1D),
+          UINT32_C(0xFE01142C), UINT32_C(0x541AA4C6)}},
+    },
+    {
+        {{UINT32_C(0xF2412EC7), UINT32_C(0xBFE26700), UINT32_C(0xCFE96AF4),
+          UINT32_C(0x0E975796), UINT32_C(0xDD6B04F7), UINT32_C(0x7D30BF7C),
+          UINT32_C(0xF1D8FCE4), UINT32_C(0x5421925D)},
+         {UINT32_C(0xEC709107), UINT32_C(0x1CF5E9F5), UINT32_C(0xB4580AA9),
+          UINT32_C(0x124FCFC2), UINT32_C(0x67A835B3), UINT32_C(0x02F7012B),
+          UINT32_C(0x47C0760F), UINT32_C(0x753FE01B)}},
+        {{UINT32_C(0xB1D2A896), UINT32_C(0x82FD5D47), UINT32_C(0x54E75DDB),
+          UINT32_C(0x7EABC175), UINT32_C(0x1AB080BC), UINT32_C(0x724FC3A8),
+          UINT32_C(0xA75C31DD), UINT32_C(0x363D6016)},
+         {UINT32_C(0x863F308F), UINT32_C(0x5D465FF2), UINT32_C(0xE515ADCB),
+          UINT32_C(0x9EC70664), UINT32_C(0xB3BC206A), UINT32_C(0x4BD7A1A2),
+          UINT32_C(0x4A167D34), UINT32_C(0x2022576C)}},
+        {{UINT32_C(0x5CD6AC65), UINT32_C(0xF5AC3451), UINT32_C(0x5839F554),
+          UINT32_C(0x7629731E), UINT32_C(0x93545A60), UINT32_C(0xA3260AE3),
+          UINT32_C(0xA7AD1979), UINT32_C(0x49D190E8)},
+         {UINT32_C(0xF0B35045), UINT32_C(0x5AA8492F), UINT32_C(0x2584E651),
+          UINT32_C(0x4A5FAB7B), UINT32_C(0x395E2AAE), UINT32_C(0x5A05420E),
+          UINT32_C(0x547B4038), UINT32_C(0x30613C78)}},
+        {{UINT32_C(0xF9DAE7E6), UINT32_C(0x47E1C59D), UINT32_C(0x247A5A9D),
+          UINT32_C(0x8D68839B), UINT32_C(0xC1A80D5E), UINT32_C(0x663B5977),
+          UINT32_C(0x40D8CF32), UINT32_C(0x5E51F872)},
+         {UINT32_C(0xECE49494), UINT32_C(0x88ADBF9E), UINT32_C(0x1792BAE8),
+          UINT32_C(0x40B4AC5C), UINT32_C(0x9A1B3314), UINT32_C(0x278200D1),
+          UINT32_C(0xD9F83584), UINT32_C(0x7D15320E)}},
+        {{UINT32_C(0xEAF2BFF8), UINT32_C(0xFE6DAA74), UINT32_C(0xC156AA6B),
+          UINT32_C(0x6E4EE4C0), UINT32_C(0xD0F4E7D5), UINT32_C(0xD9310FF8),
+          UINT32_C(0x7BB0C42D), UINT32_C(0x552EEF9E)},
+         {UINT32_C(0xFDC69E1A), UINT32_C(0x323FF6F1), UINT32_C(0x41D79365),
+          UINT32_C(0x00FA66B7), UINT32_C(0xA96B22B4), UINT32_C(0x0006B16E),
+          UINT32_C(0xD20F07BE), UINT32_C(0x71BBC653)}},
+        {{UINT32_C(0xA440FA1C), UINT32_C(0x89A7B7EE), UINT32_C(0x757CD658),
+          UINT32_C(0x52BB5278), UINT32_C(0xB0CDDEA4), UINT32_C(0xC5906F4B),
+          UINT32_C(0x5DE2D8DA), UINT32_C(0x66AAAFEE)},
+         {UINT32_C(0x53B6E226), UINT32_C(0x4D5E016A), UINT32_C(0x1993A1D7),
+          UINT32_C(0xA2F73DC6), UINT32_C(0xA09DD554), UINT32_C(0x7CDD4C1D),
+          UINT32_C(0xAB416627), UINT32_C(0x6F723079)}},
+        {{UINT32_C(0xC4E5C4AF), UINT32_C(0xE641639E), UINT32_C(0x371CC648),
+          UINT32_C(0x8BC6100D), UINT32_C(0x9B216E8A), UINT32_C(0x7BD161B1),
+          UINT32_C(0xF810DB32), UINT32_C(0x58098AEB)},
+         {UINT32_C(0x5AD92372), UINT32_C(0xEE52BB46), UINT32_C(0xEEF938CA),
+          UINT32_C(0x4B2C48E1), UINT32_C(0xAB43A5D0), UINT32_C(0xE8FDE4D6),
+          UINT32_C(0xA5284C83), UINT32_C(0x459274CD)}},
+        {{UINT32_C(0xD015095D), UINT32_C(0xA98925B0), UINT32_C(0x4611A1A5),
+          UINT32_C(0xC8969F5F), UINT32_C(0x2CE4663B), UINT32_C(0xBDDCD62F),
+          UINT32_C(0xA076C8BE), UINT32_C(0x1C9D9007)},
+         {UINT32_C(0x749F7BE5), UINT32_C(0xE8DE8890), UINT32_C(0xFF208E75),
+          UINT32_C(0xC9E455E7), UINT32_C(0x8F5FAC9A), UINT32_C(0xDCEE17A9),
+          UINT32_C(0x68A3A666), UINT32_C(0x776B72D3)}},
+        {{UINT32_C(0xFEE0E89A), UINT32_C(0x28C7D648), UINT32_C(0x463AF60D),
+          UINT32_C(0x621B370F), UINT32_C(0x5ADC8ACD), UINT32_C(0x9DC1548E),
+          UINT32_C(0xA0B49504), UINT32_C(0x48032ACF)},
+         {UINT32_C(0x85E992D5), UINT32_C(0x146C6EAC), UINT32_C(0x5CB491E0),
+          UINT32_C(0x5A2CB577), UINT32_C(0x454C120A), UINT32_C(0x669DD6D4),
+          UINT32_C(0x98203C39), UINT32_C(0x3431AB33)}},
+        {{UINT32_C(0x9DE017BF), UINT32_C(0xE8761503), UINT32_C(0xB60AE61F),
+          UINT32_C(0xAB117D2F), UINT32_C(0x827937FF), UINT32_C(0x0846463F),
+          UINT32_C(0x6BD89C65), UINT32_C(0x45E6BD40)},
+         {UINT32_C(0xA613BDB8), UINT32_C(0x3160AD67), UINT32_C(0xB8714A49),
+          UINT32_C(0xBD5266F3), UINT32_C(0x51A233E4), UINT32_C(0xF7D29C47),
+          UINT32_C(0x4DE6A90C), UINT32_C(0x6887B48D)}},
+        {{UINT32_C(0xDFDE1EF8), UINT32_C(0x087290A5), UINT32_C(0xA166950A),
+          UINT32_C(0xC70CCB52), UINT32_C(0x4A170AAE), UINT32_C(0xAA7F095B),
+          UINT32_C(0x5517CA0B), UINT32_C(0x15301F4E)},
+         {UINT32_C(0x302F1F84), UINT32_C(0x3C86B787), UINT32_C(0x44676E39),
+          UINT32_C(0x95D41535), UINT32_C(0x9DF5F751), UINT32_C(0xBFEC4AE3),
+          UINT32_C(0x304923D3), UINT32_C(0x4A0D3986)}},
+        {{UINT32_C(0x79B1390C), UINT32_C(0x70FAABA9), UINT32_C(0x62BA8B9E),
+          UINT32_C(0xA9067EEE), UINT32_C(0x1E17DF6F), UINT32_C(0x98789503),
+          UINT32_C(0x78D5B295), UINT32_C(0x5997E8AE)},
+         {UINT32_C(0xAE0C6768), UINT32_C(0x31E13AD7), UINT32_C(0xEF17A7B1),
+          UINT32_C(0x23262F05), UINT32_C(0x49B7B101), UINT32_C(0x15803227),
+          UINT32_C(0x36B5BA70), UINT32_C(0x1234A9C5)}},
+        {{UINT32_C(0x395793AC), UINT32_C(0xED65C961), UINT32_C(0xCCDE1C47),
+          UINT32_C(0x01157CD8), UINT32_C(0x1D5614DF), UINT32_C(0x0D0240B0),
+          UINT32_C(0x568E83A5), UINT32_C(0x0F0DA1EF)},
+         {UINT32_C(0xC0B783C1), UINT32_C(0x57C90846), UINT32_C(0x81E2F613),
+          UINT32_C(0x4501048C), UINT32_C(0xA2709DC1), UINT32_C(0x03D8A69B),
+          UINT32_C(0xA97CCE0E), UINT32_C(0x06F365C4)}},
+        {{UINT32_C(0x551580CD), UINT32_C(0xEAF23159), UINT32_C(0x053DD5EE),
+          UINT32_C(0x0F1E586A), UINT32_C(0x3CBCC3D5), UINT32_C(0xEB7A78DD),
+          UINT32_C(0xB014B850), UINT32_C(0x39BBC65A)},
+         {UINT32_C(0x79B61AC7), UINT32_C(0x13DA4E85), UINT32_C(0x0DA59E37),
+          UINT32_C(0x33E78DCF), UINT32_C(0x2A643C4C), UINT32_C(0x4E65AF25),
+          UINT32_C(0x08869D03), UINT32_C(0x0DC38C97)}},
+        {{UINT32_C(0xA3A38837), UINT32_C(0x2B648345), UINT32_C(0x905E261D),
+          UINT32_C(0x2FA6D8F7), UINT32_C(0x66A14946), UINT32_C(0xA23BD786),
+          UINT32_C(0x5E01CC9A), UINT32_C(0x781633FD)},
+         {UINT32_C(0xE2C71AD1), UINT32_C(0xB1352709), UINT32_C(0x83A6D365),
+          UINT32_C(0x9D745052), UINT32_C(0x66567032), UINT32_C(0xD88B5CAE),
+          UINT32_C(0x53D875CA), UINT32_C(0x27FC40DF)}},
+        {{UINT32_C(0x47F7554F), UINT32_C(0xB254E54C), UINT32_C(0xD708614D),
+          UINT32_C(0x33AD0ED6), UINT32_C(0x76CE908D), UINT32_C(0x830566A3),
+          UINT32_C(0xAA1ADD5C), UINT32_C(0x73DF94BD)},
+         {UINT32_C(0x2DBDD8A3), UINT32_C(0x23EC411F), UINT32_C(0x3A979FDC),
+          UINT32_C(0x9BA47338), UINT32_C(0xC667E9F7), UINT32_C(0x56A2C27F),
+          UINT32_C(0x427E6BFB), UINT32_C(0x295647C7)}},
+    },
+    {
+        {{UINT32_C(0xF8E48C13), UINT32_C(0x9B5F4652), UINT32_C(0x9EEF4BA3),
+          UINT32_C(0xE979034F), UINT32_C(0x7CF5AF6E), UINT32_C(0xF95FD776),
+          UINT32_C(0x506CEB46), UINT32_C(0x4236C47E)},
+         {UINT32_C(0xE08D2312), UINT32_C(0x0C02A249), UINT32_C(0xC056499A),
+          UINT32_C(0xAA5A38CC), UINT32_C(0x7C188B64), UINT32_C(0xCB26A8E2),
+          UINT32_C(0x0AE373D5), UINT32_C(0x38FB961D)}},
+        {{UINT32_C(0x7B23470D), UINT32_C(0xEB179C9E), UINT32_C(0x1EBC44E7),
+          UINT32_C(0xAE70102F), UINT32_C(0x92E0EED0), UINT32_C(0x8184C1D4),
+          UINT32_C(0x5C21BF08), UINT32_C(0x32988281)},
+         {UINT32_C(0x8180D11E), UINT32_C(0x46958967), UINT32_C(0x7FD7278D),
+          UINT32_C(0xEBD5518C), UINT32_C(0xAD2B74F7), UINT32_C(0xFCEB7F68),
+          UINT32_C(0xF9C7B6DA), UINT32_C(0x082D2011)}},
+        {{UINT32_C(0xBBE0299D), UINT32_C(0x65D5AED1), UINT32_C(0xCF565A0A),
+          UINT32_C(0x0077F756), UINT32_C(0x344BB90D), UINT32_C(0xD44FCD6B),
+          UINT32_C(0x536F3F25), UINT32_C(0x6C2A19C0)},
+         {UINT32_C(0xBB2A4D91), UINT32_C(0x32EE7439), UINT32_C(0xED9351E1),
+          UINT32_C(0xA97E677A), UINT32_C(0x413A16E0), UINT32_C(0x6752EDCF),
+          UINT32_C(0x1CE4FBE6), UINT32_C(0x5DE1B0C7)}},
+        {{UINT32_C(0xD6009B36), UINT32_C(0x6C10DA15), UINT32_C(0xE5D8CFBE),
+          UINT32_C(0xAAD05F4F), UINT32_C(0x31D58B76), UINT32_C(0xD8BCE0B4),
+          UINT32_C(0x27B2811B), UINT32_C(0x08DE344E)},
+         {UINT32_C(0x80B51E48), UINT32_C(0xD9A78AAE), UINT32_C(0x3E41C63A),
+          UINT32_C(0x1E1D0A81), UINT32_C(0x8076B3C7), UINT32_C(0x844376DE),
+          UINT32_C(0x5FDF9D53), UINT32_C(0x73F0D4A3)}},
+        {{UINT32_C(0x558C7719), UINT32_C(0xF1532922), UINT32_C(0xA8221197),
+          UINT32_C(0x0F10188A), UINT32_C(0x5DDC1716), UINT32_C(0x51A97E5F),
+          UINT32_C(0x444789E7), UINT32_C(0x0F583A9B)},
+         {UINT32_C(0x97D63B87), UINT32_C(0xAA8FC58D), UINT32_C(0x1CFDA59C),
+          UINT32_C(0xA5AF048B), UINT32_C(0x2DDB34EB), UINT32_C(0x2A4A0C5F),
+          UINT32_C(0x701E2E07), UINT32_C(0x66C0F0C7)}},
+        {{UINT32_C(0x36BE2ABF), UINT32_C(0xC0BC88B8), UINT32_C(0x5C721B85),
+          UINT32_C(0x265CCE74), UINT32_C(0xD54299BA), UINT32_C(0x483EBB01),
+          UINT32_C(0x348ED89E), UINT32_C(0x18F11CBE)},
+         {UINT32_C(0xE42129D4), UINT32_C(0x5E9AE7B9), UINT32_C(0x81DE5B77),
+          UINT32_C(0x6B3E9E8D), UINT32_C(0x7A14A74A), UINT32_C(0xB3ADBAC9),
+          UINT32_C(0x0003B266), UINT32_C(0x1B6CEBB2)}},
+        {{UINT32_C(0x15EB200E), UINT32_C(0xD4D4DD10), UINT32_C(0xFB87C57B),
+          UINT32_C(0xEEAEA4C6), UINT32_C(0x72FF6321), UINT32_C(0x48F0B957),
+          UINT32_C(0xB782B01D), UINT32_C(0x187C4B75)},
+         {UINT32_C(0xE9B4D622), UINT32_C(0x3DC1AACD), UINT32_C(0x3F4ED519),
+          UINT32_C(0x0358418E), UINT32_C(0x773D019C), UINT32_C(0x981A24F8),
+          UINT32_C(0x3DB0B4F4), UINT32_C(0x6643CA91)}},
+        {{UINT32_C(0xD47670E3), UINT32_C(0xE3254F4B), UINT32_C(0x30B1DDE9),
+          UINT32_C(0x98226125), UINT32_C(0xDA8AF160), UINT32_C(0x61EB6C86),
+          UINT32_C(0x18363269), UINT32_C(0x725C7716)},
+         {UINT32_C(0x02F62462), UINT32_C(0xB051DC9F), UINT32_C(0x00AC5531),
+          UINT32_C(0xFF8C9EDF), UINT32_C(0x962A92A3), UINT32_C(0x3909C79B),
+          UINT32_C(0x27790237), UINT32_C(0x25C90D93)}},
+        {{UINT32_C(0x88ADC475), UINT32_C(0x0A5DF2CC), UINT32_C(0xE5D27D0A),
+          UINT32_C(0x48D26967), UINT32_C(0x359FF194), UINT32_C(0x21D5F616),
+          UINT32_C(0x89977CE2), UINT32_C(0x38ACD141)},
+         {UINT32_C(0xFDAA8ACB), UINT32_C(0x39B9BD92), UINT32_C(0x035B62D0),
+          UINT32_C(0xDB157DF2), UINT32_C(0xB7D252D9), UINT32_C(0x4E33386E),
+          UINT32_C(0xCF196258), UINT32_C(0x6BD2E33F)}},
+        {{UINT32_C(0xCE8F10C5), UINT32_C(0xE0806297), UINT32_C(0x8A14B746),
+          UINT32_C(0x446AFD6D), UINT32_C(0xBF566190), UINT32_C(0xD7931F29),
+          UINT32_C(0x86FDB72A), UINT32_C(0x4D9CFBFA)},
+         {UINT32_C(0x95009F63), UINT32_C(0x77528851), UINT32_C(0x34C0FF45),
+          UINT32_C(0x5FE50134), UINT32_C(0x6E134B81), UINT32_C(0xC38CABBB),
+          UINT32_C(0xE36DB037), UINT32_C(0x2E60B277)}},
+        {{UINT32_C(0x57184CA5), UINT32_C(0xA614CF67), UINT32_C(0x25BE01E3),
+          UINT32_C(0x6CBD8D63), UINT32_C(0xA0030BE3), UINT32_C(0xE313EE8D),
+          UINT32_C(0x2B1E7C60), UINT32_C(0x69AF0399)},
+         {UINT32_C(0x50423F30), UINT32_C(0x519ABFBB), UINT32_C(0x486B9519),
+          UINT32_C(0x200111FF), UINT32_C(0x3351F692), UINT32_C(0x6FF93CCB),
+          UINT32_C(0x3ED9BE71), UINT32_C(0x32EB3E54)}},
+        {{UINT32_C(0x54052EBD), UINT32_C(0x0851ACB9), UINT32_C(0x6D2336D7),
+          UINT32_C(0x3A389B7B), UINT32_C(0x17C6ACD9), UINT32_C(0x50A87925),
+          UINT32_C(0xB807D9B1), UINT32_C(0x031FE845)},
+         {UINT32_C(0xE22F7492), UINT32_C(0xA348BB01), UINT32_C(0x05F39661),
+          UINT32_C(0x9547ED36), UINT32_C(0x68EC4AC2), UINT32_C(0x97DF6756),
+          UINT32_C(0x85B7F81B), UINT32_C(0x5836FEFE)}},
+        {{UINT32_C(0x5F0B2ACB), UINT32_C(0x4E4869A6), UINT32_C(0xDEC46001),
+          UINT32_C(0xC4798F3F), UINT32_C(0x00903474), UINT32_C(0x281A4ED6),
+          UINT32_C(0xEFB9AABD), UINT32_C(0x04F22E9D)},
+         {UINT32_C(0xFAA721A4), UINT32_C(0x2AC92264), UINT32_C(0x276F8041),
+          UINT32_C(0xBCE2FF0B), UINT32_C(0xE4943926), UINT32_C(0x5F605607),
+          UINT32_C(0x55506DF7), UINT32_C(0x388C5FAB)}},
+        {{UINT32_C(0xAB5687E2), UINT32_C(0xFF104F6D), UINT32_C(0x3B2D0245),
+          UINT32_C(0x1B6DAFE9), UINT32_C(0x81B2EC4B), UINT32_C(0x6405C026),
+          UINT32_C(0xF489EBBC), UINT32_C(0x2B7676DA)},
+         {UINT32_C(0x6DA1F57A), UINT32_C(0xBAA158F0), UINT32_C(0x27A8457F),
+          UINT32_C(0x9CB044AD), UINT32_C(0xA3BBD6C9), UINT32_C(0xC23737A5),
+          UINT32_C(0x1D2267E1), UINT32_C(0x71FB5B47)}},
+        {{UINT32_C(0xD14F56E4), UINT32_C(0x779BD825), UINT32_C(0x08396F23),
+          UINT32_C(0xD7E672A0), UINT32_C(0xD40BA6EE), UINT32_C(0x23FE3FC0),
+          UINT32_C(0x3B56A3AB), UINT32_C(0x41E749E7)},
+         {UINT32_C(0x72042F67), UINT32_C(0xD19471CE), UINT32_C(0x4989D4D7),
+          UINT32_C(0x8A686DA7), UINT32_C(0x4FA09BC9), UINT32_C(0x52A709C6),
+          UINT32_C(0xB3B6AA64), UINT32_C(0x1DC21162)}},
+        {{UINT32_C(0xF9B3BD1D), UINT32_C(0x62C9838B), UINT32_C(0x0CE6384C),
+          UINT32_C(0x1EE59E5A), UINT32_C(0xECE8CC7F), UINT32_C(0xA9F5ABF6),
+          UINT32_C(0x80BDDA83), UINT32_C(0x1961D80F)},
+         {UINT32_C(0xCA406FB1), UINT32_C(0x7A40880C), UINT32_C(0xDFBCE2E4),
+          UINT32_C(0x5035D307), UINT32_C(0x3D637299), UINT32_C(0x590259E0),
+          UINT32_C(0xD6C34E05), UINT32_C(0x1607AC9F)}},
+    },
+    {
+        {{UINT32_C(0x9D818B72), UINT32_C(0x4ABC2710), UINT32_C(0x092607B7),
+          UINT32_C(0x2496CEA6), UINT32_C(0x055C4EC8), UINT32_C(0xFB1087E1),
+          UINT32_C(0x258ADC7D), UINT32_C(0x50A30C6A)},
+         {UINT32_C(0x0FF502E3), UINT32_C(0xAF4EB6B3), UINT32_C(0x190607AB),
+          UINT32_C(0x5D5D76AD), UINT32_C(0x34482C13), UINT32_C(0xC9C9B711),
+          UINT32_C(0x42213696), UINT32_C(0x574A9718)}},
+        {{UINT32_C(0x7018FC70), UINT32_C(0x7C90FAFD), UINT32_C(0x2B83291C),
+          UINT32_C(0x36A04559), UINT32_C(0x40D1B175), UINT32_C(0x6120B51E),
+          UINT32_C(0x3DCF9606), UINT32_C(0x45F10B20)},
+         {UINT32_C(0xF20C5636), UINT32_C(0x3C6A9EFF), UINT32_C(0xFFBBC648),
+          UINT32_C(0xB2768BA3), UINT32_C(0xB523B36C), UINT32_C(0x1C9DF90A),
+          UINT32_C(0xD6FF34ED), UINT32_C(0x4148BF06)}},
+        {{UINT32_C(0x3B5F9492), UINT32_C(0x3D29821A), UINT32_C(0x90B24561),
+          UINT32_C(0xAE12C782), UINT32_C(0x8A3BDC5F), UINT32_C(0xEF6FB277),
+          UINT32_C(0xAC3BD74E), UINT32_C(0x6034BF3B)},
+         {UINT32_C(0x4ACB6F85), UINT32_C(0x131D57CD), UINT32_C(0x3BE79B31),
+          UINT32_C(0xDED1C433), UINT32_C(0x78A896B8), UINT32_C(0xB0913489),
+          UINT32_C(0xB287862C), UINT32_C(0x1247C0B7)}},
+        {{UINT32_C(0x7C494054), UINT32_C(0xEB642893), UINT32_C(0x22142D26),
+          UINT32_C(0x79227930), UINT32_C(0x943E8398), UINT32_C(0x8F1C8371),
+          UINT32_C(0x60886DB7), UINT32_C(0x583C7AEF)},
+         {UINT32_C(0x3A12EE0E), UINT32_C(0xAFE46022), UINT32_C(0xB6CB8685),
+          UINT32_C(0xE9C9253A), UINT32_C(0x6316A4C6), UINT32_C(0x5334F9DD),
+          UINT32_C(0xE6F1DEE9), UINT32_C(0x4E2F13D8)}},
+        {{UINT32_C(0xB37D8BA5), UINT32_C(0x7499A5B4), UINT32_C(0x1C9BCDE2),
+          UINT32_C(0xA12AA637), UINT32_C(0xBFD6AE86), UINT32_C(0xCC99471D),
+          UINT32_C(0x92048D63), UINT32_C(0x09966378)},
+         {UINT32_C(0x552E71A3), UINT32_C(0x42CBFA9D), UINT32_C(0x675C1716),
+          UINT32_C(0x84A8B153), UINT32_C(0x4CF00A7D), UINT32_C(0xB9C07C0E),
+          UINT32_C(0x0DA504DB), UINT32_C(0x32E2322B)}},
+        {{UINT32_C(0xE671EE59), UINT32_C(0x569F581F), UINT32_C(0x422E86C7),
+          UINT32_C(0x293522D7), UINT32_C(0x15DCEF10), UINT32_C(0x5E4CEA7E),
+          UINT32_C(0x483C0FE3), UINT32_C(0x67C8A9FC)},
+         {UINT32_C(0x47B79284), UINT32_C(0x4DE5AC09), UINT32_C(0x025016BA),
+          UINT32_C(0x22AB8FBD), UINT32_C(0x2A099B37), UINT32_C(0x51318C23),
+          UINT32_C(0x49E06623), UINT32_C(0x542EA0FA)}},
+        {{UINT32_C(0x28909F31), UINT32_C(0xDD240F64), UINT32_C(0x101B7F01),
+          UINT32_C(0x46B66F9E), UINT32_C(0x20481C3F), UINT32_C(0x788C29CA),
+          UINT32_C(0xCA5D5182), UINT32_C(0x3218A509)},
+         {UINT32_C(0x63E9A2B9), UINT32_C(0x64BCC7AD), UINT32_C(0xADDF5C0B),
+          UINT32_C(0x3D213CA2), UINT32_C(0x9960D650), UINT32_C(0x6D93ED4C),
+          UINT32_C(0x284EE5F3), UINT32_C(0x3F13DB22)}},
+        {{UINT32_C(0x6697E0D1), UINT32_C(0x5B678C3A), UINT32_C(0x16D9D878),
+          UINT32_C(0x25A171F4), UINT32_C(0xFAEC362B), UINT32_C(0xC20A6D80),
+          UINT32_C(0xC512EA4B), UINT32_C(0x1BB3F14C)},
+         {UINT32_C(0x2AE35FA5), UINT32_C(0xECE5313B), UINT32_C(0xBBD76B87),
+          UINT32_C(0xE390A01F), UINT32_C(0x882DA3FC), UINT32_C(0xC78EA4C5),
+          UINT32_C(0x42086A77), UINT32_C(0x771BCDAE)}},
+        {{UINT32_C(0x565802E9), UINT32_C(0x8E9E3C8B), UINT32_C(0x53FA1BE7),
+          UINT32_C(0xC37A7B35), UINT32_C(0x4408FB77), UINT32_C(0x9D2F1A26),
+          UINT32_C(0xFF308B7B), UINT32_C(0x0B3ECE36)},
+         {UINT32_C(0x1F30FC37), UINT32_C(0x8FB35B36), UINT32_C(0x83E1A3C9),
+          UINT32_C(0x463B44E2), UINT32_C(0x3402233A), UINT32_C(0x7218F09F),
+          UINT32_C(0xFC9A6990), UINT32_C(0x1519638A)}},
+        {{UINT32_C(0x8EAAC478), UINT32_C(0x51FB3E5D), UINT32_C(0x760ED4EC),
+          UINT32_C(0x620E4826), UINT32_C(0x1D865577), UINT32_C(0x46FC5B1F),
+          UINT32_C(0x5244A538), UINT32_C(0x15EF2AD9)},
+         {UINT32_C(0x4BF382BD), UINT32_C(0x8D7E477C), UINT32_C(0x02A5C9EE),
+          UINT32_C(0xCBF170C9), UINT32_C(0x4AFB0EC1), UINT32_C(0xB91A870C),
+          UINT32_C(0x69C31425), UINT32_C(0x052FFC51)}},
+        {{UINT32_C(0x2018D066), UINT32_C(0x1FD43746), UINT32_C(0x4C67FC35),
+          UINT32_C(0xBC501517), UINT32_C(0xBC990EB6), UINT32_C(0xE65BC2FB),
+          UINT32_C(0x73F87F92), UINT32_C(0x538CA6F9)},
+         {UINT32_C(0x8352B03F), UINT32_C(0x42FBDAE0), UINT32_C(0x99A4C9B9),
+          UINT32_C(0xF265B1E0), UINT32_C(0x185CA070), UINT32_C(0x6E3EAB2F),
+          UINT32_C(0x37D0A2C1), UINT32_C(0x6E6F4F7D)}},
+        {{UINT32_C(0xC2D5D73E), UINT32_C(0x9B20D8EE), UINT32_C(0x75844C15),
+          UINT32_C(0x190521AE), UINT32_C(0x26AD08FE), UINT32_C(0x67663AC4),
+          UINT32_C(0xF984EC06), UINT32_C(0x67AEEFEF)},
+         {UINT32_C(0xCBDD87EF), UINT32_C(0x61C71142), UINT32_C(0x63396E3B),
+          UINT32_C(0x0FA4995B), UINT32_C(0x85C193B0), UINT32_C(0x3196E551),
+          UINT32_C(0xDACB3A3D), UINT32_C(0x36C0A2A8)}},
+        {{UINT32_C(0x178A1115), UINT32_C(0xEAB89FDC), UINT32_C(0xD7C31303),
+          UINT32_C(0xC7B764D8), UINT32_C(0x90203755), UINT32_C(0xA5B2D6FB),
+          UINT32_C(0xD5F8AEEE), UINT32_C(0x3C360BF9)},
+         {UINT32_C(0x02F1CC3C), UINT32_C(0x8DFDCD05), UINT32_C(0x64E5269E),
+          UINT32_C(0x7F8A64D2), UINT32_C(0xEA13FFD7), UINT32_C(0xA36196EC),
+          UINT32_C(0x77E3839F), UINT32_C(0x35E22415)}},
+        {{UINT32_C(0xE22E0C52), UINT32_C(0x29E7AB0B), UINT32_C(0x8B27DEDA),
+          UINT32_C(0x68BF32C7), UINT32_C(0xDC7971AE), UINT32_C(0x52A762A2),
+          UINT32_C(0x18B0CDCC), UINT32_C(0x4CA43487)},
+         {UINT32_C(0x3FCEAF73), UINT32_C(0xED429DA1), UINT32_C(0x06718D19),
+          UINT32_C(0x49396E6F), UINT32_C(0x5BB3301C), UINT32_C(0xDECB9337),
+          UINT32_C(0x0FF489B1), UINT32_C(0x4B7723C1)}},
+        {{UINT32_C(0xABEE6B9B), UINT32_C(0xAE321F09), UINT32_C(0x37318F60),
+          UINT32_C(0xF251BF4D), UINT32_C(0xB63DC269), UINT32_C(0xB0A8A251),
+          UINT32_C(0x71817963), UINT32_C(0x514A25FC)},
+         {UINT32_C(0x55C9B2E9), UINT32_C(0x518F5747), UINT32_C(0x1C9B4845),
+          UINT32_C(0x3E56CC3E), UINT32_C(0x283AE1FA), UINT32_C(0xBDFD637A),
+          UINT32_C(0xC3DE778E), UINT32_C(0x419BA4B4)}},
+        {{UINT32_C(0xBCD2EB74), UINT32_C(0xC7F18E93), UINT32_C(0xFC61FB42),
+          UINT32_C(0x171264C8), UINT32_C(0x85119033), UINT32_C(0x27282E76),
+          UINT32_C(0xD7DB91C7), UINT32_C(0x225006A4)},
+         {UINT32_C(0x1ECF5024), UINT32_C(0x628E0F3C), UINT32_C(0x00859CDE),
+          UINT32_C(0xDC5111E0), UINT32_C(0x1F220711), UINT32_C(0x4AB1764F),
+          UINT32_C(0x70DDED3C), UINT32_C(0x7C6916F1)}},
+    },
+    {
+        {{UINT32_C(0x5F0CA58A), UINT32_C(0xF9FFE8FC), UINT32_C(0x22879EBB),
+          UINT32_C(0x09E34F30), UINT32_C(0xED7B0520), UINT32_C(0x648D6339),
+          UINT32_C(0x1AF5ECDC), UINT32_C(0x0D6719D0)},
+         {UINT32_C(0x0B8590E4), UINT32_C(0x2878714D), UINT32_C(0x90EC312B),
+          UINT32_C(0x827D04ED), UINT32_C(0x3B5767C3), UINT32_C(0xD415C8B4),
+          UINT32_C(0xC09FD18D), UINT32_C(0x4170F0AD)}},
+        {{UINT32_C(0x3C601031), UINT32_C(0x9B649CFC), UINT32_C(0x636DDAE7),
+          UINT32_C(0x0478603A), UINT32_C(0x914E100A), UINT32_C(0xDC972DFA),
+          UINT32_C(0x091621AE), UINT32_C(0x519C55DF)},
+         {UINT32_C(0xD4A9963D), UINT32_C(0x863046CB), UINT32_C(0x5ACF7C0C),
+          UINT32_C(0xDF16763C), UINT32_C(0xFF5468A4), UINT32_C(0x4999A93E),
+          UINT32_C(0x424074A5), UINT32_C(0x35543EFF)}},
+        {{UINT32_C(0xDD33307C), UINT32_C(0x27B1DBFA), UINT32_C(0x927CA6F3),
+          UINT32_C(0xA0D04784), UINT32_C(0xA37CF855), UINT32_C(0xBD3EBC5E),
+          UINT32_C(0x49F5AA2C), UINT32_C(0x59D02EF5)},
+         {UINT32_C(0xBDD57BF3), UINT32_C(0xCDABE86F), UINT32_C(0x37819D86),
+          UINT32_C(0x7B3ADD2F), UINT32_C(0x0413B7B0), UINT32_C(0x7B90BA15),
+          UINT32_C(0x6B99685B), UINT32_C(0x47071782)}},
+        {{UINT32_C(0xEF0CE97F), UINT32_C(0xB7C3218E), UINT32_C(0x0898C79C),
+          UINT32_C(0xDAE3B56C), UINT32_C(0x0908877D), UINT32_C(0x6349D83D),
+          UINT32_C(0xC81E8C4E), UINT32_C(0x0970C6C0)},
+         {UINT32_C(0xA47F426C), UINT32_C(0x0E45C4A7), UINT32_C(0x3FBB194E),
+          UINT32_C(0xAB000A59), UINT32_C(0x3A6DD13E), UINT32_C(0x570FBBA5),
+          UINT32_C(0xC8F44A57), UINT32_C(0x66045580)}},
+        {{UINT32_C(0x12A72F7F), UINT32_C(0x5ABEB749), UINT32_C(0x7AE56F4D),
+          UINT32_C(0x15072A92), UINT32_C(0x222AB2C4), UINT32_C(0x1C77AE00),
+          UINT32_C(0x9AFE63DE), UINT32_C(0x591EAEC6)},
+         {UINT32_C(0xDFD24304), UINT32_C(0xB51D41AF), UINT32_C(0xDFBCC096),
+          UINT32_C(0xDE28DF26), UINT32_C(0x38A20DA7), UINT32_C(0x02F046C8),
+          UINT32_C(0x1AE0A45B), UINT32_C(0x5EC3DBDC)}},
+        {{UINT32_C(0x63DD86C2), UINT32_C(0x7C19BD75), UINT32_C(0x8D78A57B),
+          UINT32_C(0xDB119311), UINT32_C(0x23C5C4E7), UINT32_C(0xF48BB4FA),
+          UINT32_C(0x97DB0A05), UINT32_C(0x65514C1C)},
+         {UINT32_C(0x43CAC49C), UINT32_C(0x1BC1F2F0), UINT32_C(0x2851B4BE),
+          UINT32_C(0x975FEB51), UINT32_C(0xDD60D530), UINT32_C(0x0E0A4633),
+          UINT32_C(0x09B1D2C6), UINT32_C(0x32BBBF14)}},
+        {{UINT32_C(0xA670EAC0), UINT32_C(0x79124749), UINT32_C(0x31DD893C),
+          UINT32_C(0x504D89D5), UINT32_C(0xE0654D63), UINT32_C(0xDDCED74C),
+          UINT32_C(0xE2208707), UINT32_C(0x58956BE5)},
+         {UINT32_C(0x437E7077), UINT32_C(0xBE6A3ECD), UINT32_C(0x574095C8),
+          UINT32_C(0xB8AB332D), UINT32_C(0x3869DA42), UINT32_C(0x4E79AC1C),
+          UINT32_C(0x68859F51), UINT32_C(0x79D4C3FB)}},
+        {{UINT32_C(0x7936A831), UINT32_C(0x1E5FC1B9), UINT32_C(0xD74F1F41),
+          UINT32_C(0x1EA42ED2), UINT32_C(0xC4EA3228), UINT32_C(0x33D22EC1),
+          UINT32_C(0x729BEBFE), UINT32_C(0x5705333F)},
+         {UINT32_C(0x64596076), UINT32_C(0xDBD1A67B), UINT32_C(0xFA65BA98),
+          UINT32_C(0x6BFF269D), UINT32_C(0x6C47E715), UINT32_C(0x8451A9C2),
+          UINT32_C(0x22898DB3), UINT32_C(0x243D679D)}},
+        {{UINT32_C(0xB8323FD0), UINT32_C(0xE935D705), UINT32_C(0x6937E5CB),
+          UINT32_C(0xE2DA8845), UINT32_C(0x4A5EAE1E), UINT32_C(0x1C9DFFF8),
+          UINT32_C(0x45DF7A79), UINT32_C(0x796F0B95)},
+         {UINT32_C(0x640DBA32), UINT32_C(0xC24D573F), UINT32_C(0x02E4B792),
+          UINT32_C(0x2B775217), UINT32_C(0x94D12C40), UINT32_C(0xD437EB63),
+          UINT32_C(0x4AD371F0), UINT32_C(0x6182AF6D)}},
+        {{UINT32_C(0x41FC7551), UINT32_C(0x133EDA52), UINT32_C(0xE91714AF),
+          UINT32_C(0xA0088A2B), UINT32_C(0x5E0A73C0), UINT32_C(0xB41B9AC2),
+          UINT32_C(0x1D3B3953), UINT32_C(0x4808BB5A)},
+         {UINT32_C(0x2B9AE648), UINT32_C(0xD875AA14), UINT32_C(0x2408244C),
+          UINT32_C(0x4F38C946), UINT32_C(0xFF051A87), UINT32_C(0x04B6B941),
+          UINT32_C(0x6DF48ECD), UINT32_C(0x1D5B0B9E)}},
+        {{UINT32_C(0x169E757F), UINT32_C(0x27FD368A), UINT32_C(0x7B94D9DB),
+          UINT32_C(0x2ACB3560), UINT32_C(0x4D4C9B5F), UINT32_C(0x81903F4B),
+          UINT32_C(0x169B81DE), UINT32_C(0x641F806C)},
+         {UINT32_C(0x9E957475), UINT32_C(0x574E9444), UINT32_C(0xC6C8EE52),
+          UINT32_C(0xE08814AE), UINT32_C(0x6C84FDDF), UINT32_C(0xD1AE71EC),
+          UINT32_C(0xFAA040D9), UINT32_C(0x44A56014)}},
+        {{UINT32_C(0x75A48F60), UINT32_C(0x06DA6908), UINT32_C(0xBB2CD408),
+          UINT32_C(0x7BA6C9CB), UINT32_C(0x3A1BCBFF), UINT32_C(0x57D2D0FF),
+          UINT32_C(0x8928CE36), UINT32_C(0x186F1A8B)},
+         {UINT32_C(0x7A40F877), UINT32_C(0x0FFD205B), UINT32_C(0x01AF68F7),
+          UINT32_C(0x2915BC8E), UINT32_C(0xC36A5FB1), UINT32_C(0x816AC4DF),
+          UINT32_C(0x2C9E1F7D), UINT32_C(0x609B0A87)}},
+        {{UINT32_C(0xB97536FB), UINT32_C(0x4032AC5E), UINT32_C(0xA7C5EDB6),
+          UINT32_C(0x53E6FE68), UINT32_C(0x5F0DCBA1), UINT32_C(0x2F414930),
+          UINT32_C(0x2837E314), UINT32_C(0x20975256)},
+         {UINT32_C(0x3C3C1D27), UINT32_C(0xDF5DC496), UINT32_C(0x71797C36),
+          UINT32_C(0x0DFDAAF3), UINT32_C(0xDA504E04), UINT32_C(0x5F3E9229),
+          UINT32_C(0x8C234246), UINT32_C(0x354EA88D)}},
+        {{UINT32_C(0x0922D317), UINT32_C(0xAF6741C3), UINT32_C(0x9DF0A572),
+          UINT32_C(0x7429853B), UINT32_C(0x1DC207A8), UINT32_C(0x0EA1AE04),
+          UINT32_C(0x450075F5), UINT32_C(0x2C1DAA1C)},
+         {UINT32_C(0x6ED729B4), UINT32_C(0x27C71F16), UINT32_C(0x53AB8EC0),
+          UINT32_C(0x785718A6), UINT32_C(0xA8465487), UINT32_C(0x1EEC7BBF),
+          UINT32_C(0x4C578BA9), UINT32_C(0x78DA9B04)}},
+        {{UINT32_C(0xB3B707FA), UINT32_C(0xFF9ED65E), UINT32_C(0xF5D28D33),
+          UINT32_C(0xF8C8301F), UINT32_C(0xA65F5C0F), UINT32_C(0xB15D498F),
+          UINT32_C(0xB0EF2B89), UINT32_C(0x6DEF256D)},
+         {UINT32_C(0x52184EF6), UINT32_C(0x0D40A6B2), UINT32_C(0x2BF06F5A),
+          UINT32_C(0xC702EBE5), UINT32_C(0x4BA041AA), UINT32_C(0x13E50E18),
+          UINT32_C(0x7EC4C784), UINT32_C(0x53552D88)}},
+        {{UINT32_C(0xF28ABB3A), UINT32_C(0x2CD09B19), UINT32_C(0x724EDB9B),
+          UINT32_C(0x4F5C040F), UINT32_C(0xE0DCBD16), UINT32_C(0xD6820590),
+          UINT32_C(0x1B7155A3), UINT32_C(0x45D84DE9)},
+         {UINT32_C(0xA251B1BA), UINT32_C(0x995BDD01), UINT32_C(0x37CAA4DC),
+          UINT32_C(0x607F9517), UINT32_C(0xA15D9674), UINT32_C(0x747FEA1C),
+          UINT32_C(0x73E97C97), UINT32_C(0x646C1876)}},
+    },
+    {
+        {{UINT32_C(0x6FAC1486), UINT32_C(0x1951682B), UINT32_C(0x4A4D14C5),
+          UINT32_C(0x8B578E1E), UINT32_C(0xB7384D42), UINT32_C(0x083FA101),
+          UINT32_C(0xED1C8A87), UINT32_C(0x13380CE9)},
+         {UINT32_C(0x732A493B), UINT32_C(0xC7052ED8), UINT32_C(0xB32E3D69),
+          UINT32_C(0xD5FEF40F), UINT32_C(0x88833566), UINT32_C(0xA64ACE87),
+          UINT32_C(0x4177DC00), UINT32_C(0x6E36CFDB)}},
+        {{UINT32_C(0xE742C3B4), UINT32_C(0xAA14E281), UINT32_C(0xEE5AF40A),
+          UINT32_C(0xB75E7B2A), UINT32_C(0x1616EFA2), UINT32_C(0x3FC5FF0B),
+          UINT32_C(0xAD763298), UINT32_C(0x090259B0)},
+         {UINT32_C(0x38753438), UINT32_C(0x4105B57E), UINT32_C(0xCF2D8926),
+          UINT32_C(0x70ED1A00), UINT32_C(0x322F40BB), UINT32_C(0x78921395),
+          UINT32_C(0x67A3FF56), UINT32_C(0x3AEE8199)}},
+        {{UINT32_C(0x11EA75FC), UINT32_C(0x88073D00), UINT32_C(0x06A4B4EB),
+          UINT32_C(0xD23D2796), UINT32_C(0xD85D3A6B), UINT32_C(0x1FD22F9E),
+          UINT32_C(0xAFB43B70), UINT32_C(0x6B5EA051)},
+         {UINT32_C(0xD99BE576), UINT32_C(0x96C9C176), UINT32_C(0x4C47261E),
+          UINT32_C(0x85AC2B6C), UINT32_C(0x99A9C378), UINT32_C(0x27263959),
+          UINT32_C(0x8B5CABDA), UINT32_C(0x6D36E9FE)}},
+        {{UINT32_C(0xA58F614C), UINT32_C(0xC9FC7661), UINT32_C(0x2E45AE73),
+          UINT32_C(0x82AA317D), UINT32_C(0xC8CB9CC7), UINT32_C(0xDCB1925F),
+          UINT32_C(0x27813205), UINT32_C(0x1341C1AA)},
+         {UINT32_C(0x6CD478AB), UINT32_C(0xDD06745B), UINT32_C(0x1E28F6A3),
+          UINT32_C(0x0C2534B2), UINT32_C(0x9D27FE63), UINT32_C(0xE2183345),
+          UINT32_C(0x06466147), UINT32_C(0x7F1E2A33)}},
+        {{UINT32_C(0x5AEE2471), UINT32_C(0x378D727E), UINT32_C(0xD47739B6),
+          UINT32_C(0xB718FC17), UINT32_C(0x4145E8EF), UINT32_C(0xDA27CB9B),
+          UINT32_C(0x0EF2AB20), UINT32_C(0x3F8AB1A3)},
+         {UINT32_C(0xE16C0141), UINT32_C(0xA89ADD37), UINT32_C(0x59DF1C95),
+          UINT32_C(0x2127823B), UINT32_C(0xB7455CC2), UINT32_C(0x53F90B73),
+          UINT32_C(0x1183FBE5), UINT32_C(0x7F960586)}},
+        {{UINT32_C(0xE77235C3), UINT32_C(0x56D0475A), UINT32_C(0xB18ED61A),
+          UINT32_C(0xED2907C5), UINT32_C(0x7D73F6F8), UINT32_C(0x2D02C4CB),
+          UINT32_C(0xC42E7AED), UINT32_C(0x35EF69B4)},
+         {UINT32_C(0x31B7324A), UINT32_C(0x53A6120A), UINT32_C(0x59F1A395),
+          UINT32_C(0x982DD221), UINT32_C(0x835CFD94), UINT32_C(0x03ECA86F),
+          UINT32_C(0x73CA1BD5), UINT32_C(0x4CBA837D)}},
+        {{UINT32_C(0x41B17E6D), UINT32_C(0x64F66D39), UINT32_C(0xCB14F3B3),
+          UINT32_C(0x3C869BF5), UINT32_C(0x28350EFA), UINT32_C(0x1EBA045A),
+          UINT32_C(0xC7CDEC47), UINT32_C(0x7ACFB882)},
+         {UINT32_C(0x8FB3097B), UINT32_C(0x7ACFD28D), UINT32_C(0x62986426),
+          UINT32_C(0xDA397C31), UINT32_C(0x2A1A7A94), UINT32_C(0xD49F8421),
+          UINT32_C(0xFAB65156), UINT32_C(0x7B372E2D)}},
+        {{UINT32_C(0x01D9DB0F), UINT32_C(0x3ADBDD07), UINT32_C(0x94FF0CFB),
+          UINT32_C(0x617521E6), UINT32_C(0x3F5BD583), UINT32_C(0x5BA5905C),
+          UINT32_C(0x78670CD1), UINT32_C(0x6F896033)},
+         {UINT32_C(0xFB98EA11), UINT32_C(0x0A59C447), UINT32_C(0x653EDC59),
+          UINT32_C(0x59B918CC), UINT32_C(0x9F72C01E), UINT32_C(0x00BF4D2A),
+          UINT32_C(0x47DEE00F), UINT32_C(0x748455D1)}},
+        {{UINT32_C(0x386E7491), UINT32_C(0xE371A7A8), UINT32_C(0x621A3484),
+          UINT32_C(0xF71711CC), UINT32_C(0xE0015C3B), UINT32_C(0x1568256E),
+          UINT32_C(0x7D3FFDE9), UINT32_C(0x5ACEF7A6)},
+         {UINT32_C(0xB08E4219), UINT32_C(0x02ED70E5), UINT32_C(0x832AC3AA),
+          UINT32_C(0x7ECE1726), UINT32_C(0x951D1CA2), UINT32_C(0xC3C0D32B),
+          UINT32_C(0x38DECC59), UINT32_C(0x4C991664)}},
+        {{UINT32_C(0x96EB21A4), UINT32_C(0xB99DF8BA), UINT32_C(0x2BBF8E6D),
+          UINT32_C(0xB88D25F4), UINT32_C(0x686DAA3C), UINT32_C(0x16B3E0B1),
+          UINT32_C(0x70D47C57), UINT32_C(0x11314561)},
+         {UINT32_C(0x3338342D), UINT32_C(0x8DCDC3D1), UINT32_C(0x88E028A7),
+          UINT32_C(0xE6D39B01), UINT32_C(0x72855B5E), UINT32_C(0xB781F1ED),
+          UINT32_C(0xCC192572), UINT32_C(0x0E0D82F6)}},
+        {{UINT32_C(0xCF1E20AA), UINT32_C(0xC86A8E5D), UINT32_C(0xF9AB96D5),
+          UINT32_C(0x1A87AEF3), UINT32_C(0xF3D19051), UINT32_C(0xA8941635),
+          UINT32_C(0x654FFF15), UINT32_C(0x67B1D0A2)},
+         {UINT32_C(0x92862ACD), UINT32_C(0x266FD5ED), UINT32_C(0xD11DEEAC),
+          UINT32_C(0xB72587BE), UINT32_C(0xD09320AA), UINT32_C(0x5CF0D2E2),
+          UINT32_C(0x515E0277), UINT32_C(0x68456EBA)}},
+        {{UINT32_C(0x771F64CA), UINT32_C(0x86A5461C), UINT32_C(0x48FF8D7A),
+          UINT32_C(0xB7A220B7), UINT32_C(0xD7A568D1), UINT32_C(0x9A0DD72A),
+          UINT32_C(0xF644D858), UINT32_C(0x18F5E1DC)},
+         {UINT32_C(0x3E00364F), UINT32_C(0xB7AE1BC2), UINT32_C(0xCEE8D9F7),
+          UINT32_C(0xD7EA31F3), UINT32_C(0xDCDB883D), UINT32_C(0xD18DA30F),
+          UINT32_C(0xCBA00F48), UINT32_C(0x179CFCA5)}},
+        {{UINT32_C(0x39E7860C), UINT32_C(0x496F2C01), UINT32_C(0x27F15EAF),
+          UINT32_C(0xACDF8B40), UINT32_C(0x687AC815), UINT32_C(0x8871966C),
+          UINT32_C(0x8DB8FDB5), UINT32_C(0x6228F1B5)},
+         {UINT32_C(0xF30ECF2B), UINT32_C(0x8644656A), UINT32_C(0xAE1DEAFF),
+          UINT32_C(0x15576CC2), UINT32_C(0x697AB3FC), UINT32_C(0x93D86D56),
+          UINT32_C(0x811E3FF2), UINT32_C(0x3E4A428E)}},
+        {{UINT32_C(0x91B9F5DF), UINT32_C(0xFB85DE3D), UINT32_C(0xB20A9C71),
+          UINT32_C(0xCDB595D4), UINT32_C(0xB44D671E), UINT32_C(0x55CB08F3),
+          UINT32_C(0xFCD7D5ED), UINT32_C(0x780FC2E5)},
+         {UINT32_C(0x7F939366), UINT32_C(0x815AB41F), UINT32_C(0xECD52B20),
+          UINT32_C(0xA7597A02), UINT32_C(0x4648E3C5), UINT32_C(0x9BE078F0),
+          UINT32_C(0x17BD3DC2), UINT32_C(0x7A3E2179)}},
+        {{UINT32_C(0x9D9E5E53), UINT32_C(0x22758C41), UINT32_C(0x9EF09FAE),
+          UINT32_C(0x44D675F4), UINT32_C(0x27159F97), UINT32_C(0x1AB7986D),
+          UINT32_C(0xB6B9465B), UINT32_C(0x72B3F02B)},
+         {UINT32_C(0xFE56F578), UINT32_C(0xA372FAC7), UINT32_C(0xDA534F4A),
+          UINT32_C(0x33FA6479), UINT32_C(0xDF63BF2D), UINT32_C(0xB0003307),
+          UINT32_C(0xB80D0F64), UINT32_C(0x34D40B4D)}},
+        {{UINT32_C(0x3D2B9FC2), UINT32_C(0x8A8929DC), UINT32_C(0x55EE75E5),
+          UINT32_C(0x7D12E86C), UINT32_C(0x92E1A870), UINT32_C(0xB3FE1AD3),
+          UINT32_C(0x729CFE4C), UINT32_C(0x27148C94)},
+         {UINT32_C(0x18BA868B), UINT32_C(0x6A8C3B52), UINT32_C(0x7F038A9C),
+          UINT32_C(0xDD2006E4), UINT32_C(0xB7124908), UINT32_C(0x4606FA9E),
+          UINT32_C(0xF4940CB1), UINT32_C(0x434A8C07)}},
+    },
+    {
+        {{UINT32_C(0xF98B91EA), UINT32_C(0x15F36EBE), UINT32_C(0xC1ED17B1),
+          UINT32_C(0x94D802DE), UINT32_C(0x085D77F8), UINT32_C(0x3C45FA08),
+          UINT32_C(0x02FF571A), UINT32_C(0x0A30B3C3)},
+         {UINT32_C(0x264C93D0), UINT32_C(0x70F5852D), UINT32_C(0x191AEE57),
+          UINT32_C(0x5E51BCAB), UINT32_C(0xFAD8E96E), UINT32_C(0xD5C14AE9),
+          UINT32_C(0xD4BC414B), UINT32_C(0x73B00534)}},
+        {{UINT32_C(0x12AFF5E7), UINT32_C(0x21CF876B), UINT32_C(0xF75799A6),
+          UINT32_C(0x3E9F664C), UINT32_C(0x9A0E73CD), UINT32_C(0xC23B7D19),
+          UINT32_C(0x427EEA36), UINT32_C(0x77AAB691)},
+         {UINT32_C(0x604EE854), UINT32_C(0x2E74F972), UINT32_C(0xF867C81A),
+          UINT32_C(0x8712C7A0), UINT32_C(0x953A4C56), UINT32_C(0x6085980F),
+          UINT32_C(0x0F7707E1), UINT32_C(0x2DB99707)}},
+        {{UINT32_C(0x78BDB7A7), UINT32_C(0x5ECC087F), UINT32_C(0x04C693F2),
+          UINT32_C(0x43CC156C), UINT32_C(0x039BD7F1), UINT32_C(0x965067CF),
+          UINT32_C(0x6E3FAE2F), UINT32_C(0x72140E56)},
+         {UINT32_C(0xE019DED1), UINT32_C(0x26452E4D), UINT32_C(0x2EDEF154),
+          UINT32_C(0x6F4C2349), UINT32_C(0x054DFC0F), UINT32_C(0xA7066D7F),
+          UINT32_C(0x3381AB44), UINT32_C(0x544E6F6D)}},
+        {{UINT32_C(0x9214C791), UINT32_C(0x9B6E9469), UINT32_C(0x86938BDC),
+          UINT32_C(0xD74F9C55), UINT32_C(0xFC2928FD), UINT32_C(0x0F1527F6),
+          UINT32_C(0x63C3A053), UINT32_C(0x5B0FBF0F)},
+         {UINT32_C(0xFC41FF10), UINT32_C(0xAC1F442C), UINT32_C(0x787B4932),
+          UINT32_C(0x34EF88EF), UINT32_C(0x316732AC), UINT32_C(0xF8120F08),
+          UINT32_C(0xA655DC4A), UINT32_C(0x7BCCF12C)}},
+        {{UINT32_C(0xA6C7760E), UINT32_C(0x750DF97F), UINT32_C(0x609BF215),
+          UINT32_C(0xF1A0A827), UINT32_C(0x67FD04B4), UINT32_C(0x7348C1B4),
+          UINT32_C(0x615C8145), UINT32_C(0x6A581016)},
+         {UINT32_C(0x9A11AAFC), UINT32_C(0x9DC01225), UINT32_C(0x3F2B0C8B),
+          UINT32_C(0x24F65B05), UINT32_C(0xDCB1B2A4), UINT32_C(0xA27CB8BF),
+          UINT32_C(0xE48C1A71), UINT32_C(0x3C44B811)}},
+        {{UINT32_C(0xF780B295), UINT32_C(0xBC059AF2), UINT32_C(0x0B6B247D),
+          UINT32_C(0xDF58928C), UINT32_C(0x01903F3D), UINT32_C(0x224D4C3C),
+          UINT32_C(0x818EE0AC), UINT32_C(0x7152E120)},
+         {UINT32_C(0x54BFF1BE), UINT32_C(0x6C8F4745), UINT32_C(0x431ADEF7),
+          UINT32_C(0x98A6C7EC), UINT32_C(0x91B2CFB6), UINT32_C(0xDCB6BB75),
+          UINT32_C(0x7E83A5BB), UINT32_C(0x145F6D39)}},
+        {{UINT32_C(0x81D23BC1), UINT32_C(0x827C000C), UINT32_C(0x403956FC),
+          UINT32_C(0x5CDC1135), UINT32_C(0x3C751158), UINT32_C(0xD967A5B1),
+          UINT32_C(0x96201D7D), UINT32_C(0x52AF85BC)},
+         {UINT32_C(0x644558F7), UINT32_C(0x522BC492), UINT32_C(0xED7A060D),
+          UINT32_C(0xF74A35AF), UINT32_C(0x4DC4619E), UINT32_C(0x10E5F9FD),
+          UINT32_C(0x324F60BB), UINT32_C(0x06071F1F)}},
+        {{UINT32_C(0x65921C34), UINT32_C(0xC5FFD5EF), UINT32_C(0x302BAA5D),
+          UINT32_C(0x46CE1A69), UINT32_C(0x4E22FF1D), UINT32_C(0x89CC84EC),
+          UINT32_C(0x68131754), UINT32_C(0x16A481AE)},
+         {UINT32_C(0xB89039F5), UINT32_C(0x2A06A156), UINT32_C(0xB3A95AB9),
+          UINT32_C(0x40B6401B), UINT32_C(0x313820C3), UINT32_C(0xFFCC53EB),
+          UINT32_C(0xEA959F76), UINT32_C(0x256B00E7)}},
+        {{UINT32_C(0x54FBDD74), UINT32_C(0xCCE87FC9), UINT32_C(0xB23C6E1D),
+          UINT32_C(0xEC258542), UINT32_C(0x9E5E1928), UINT32_C(0x5BE392B4),
+          UINT32_C(0x47A8A759), UINT32_C(0x65AF3110)},
+         {UINT32_C(0x47DFFD31), UINT32_C(0x943F7A25), UINT32_C(0x51E896FA),
+          UINT32_C(0xDCCDA186), UINT32_C(0x933E747F), UINT32_C(0x71A93B1E),
+          UINT32_C(0xDFB043AD), UINT32_C(0x44F5C468)}},
+        {{UINT32_C(0x786FCCBA), UINT32_C(0xF6AEC52C), UINT32_C(0x6D51FA78),
+          UINT32_C(0x23D49DCF), UINT32_C(0x9B40D8E6), UINT32_C(0x0F81463B),
+          UINT32_C(0x708D3DA2), UINT32_C(0x18B9D932)},
+         {UINT32_C(0xF986DC6D), UINT32_C(0x796F94ED), UINT32_C(0xFC2622C3),
+          UINT32_C(0x33B2CCC1), UINT32_C(0x9CCEC606), UINT32_C(0x16790DFB),
+          UINT32_C(0xCFD31481), UINT32_C(0x6F5D1452)}},
+        {{UINT32_C(0x6C3A15D6), UINT32_C(0x91F15DDC), UINT32_C(0x4D360E75),
+          UINT32_C(0x45D12F40), UINT32_C(0x1DAFFC9C), UINT32_C(0xF2E28EE8),
+          UINT32_C(0x6CDF5566), UINT32_C(0x5CC6A056)},
+         {UINT32_C(0x1779B9BF), UINT32_C(0x855166D2), UINT32_C(0xCF94D9FE),
+          UINT32_C(0x92BA5EF4), UINT32_C(0x985BC1DD), UINT32_C(0x1266FB2A),
+          UINT32_C(0xCA3018AD), UINT32_C(0x4572CE8F)}},
+        {{UINT32_C(0xBE4BB604), UINT32_C(0x8729A12D), UINT32_C(0x4E99E9AB),
+          UINT32_C(0x6A29C849), UINT32_C(0x7A89894D), UINT32_C(0x54AE5011),
+          UINT32_C(0xCDB0EEBD), UINT32_C(0x5E66A255)},
+         {UINT32_C(0xCBEE153B), UINT32_C(0x006736EA), UINT32_C(0x225E7B86),
+          UINT32_C(0x8A36CC2D), UINT32_C(0xEC0598EC), UINT32_C(0xF731E430),
+          UINT32_C(0x7FD9A11F), UINT32_C(0x49338E4D)}},
+        {{UINT32_C(0xDA6DABAA), UINT32_C(0xE038CE03), UINT32_C(0x7C1BCE0C),
+          UINT32_C(0x13A08DCE), UINT32_C(0xDA89EFBF), UINT32_C(0x12D00DD0),
+          UINT32_C(0x6FCF0510), UINT32_C(0x70A13FB9)},
+         {UINT32_C(0x5CDB03E2), UINT32_C(0x16ED1C92), UINT32_C(0x08E9EE4B),
+          UINT32_C(0xDF1AB61D), UINT32_C(0x03AF3E3D), UINT32_C(0x48983DA8),
+          UINT32_C(0x429DB770), UINT32_C(0x63CCA113)}},
+        {{UINT32_C(0xCFB805E5), UINT32_C(0x6D9AC1EB), UINT32_C(0x50FA37B8),
+          UINT32_C(0x47C3FE69), UINT32_C(0x2C33D457), UINT32_C(0xD308EC73),
+          UINT32_C(0xD4CCA340), UINT32_C(0x3CB08E00)},
+         {UINT32_C(0xBE862794), UINT32_C(0xC078DAD0), UINT32_C(0xF4E10A57),
+          UINT32_C(0x2D147F83), UINT32_C(0x3DE1B3D5), UINT32_C(0xE91820FF),
+          UINT32_C(0x6F30491B), UINT32_C(0x3D85DD72)}},
+        {{UINT32_C(0xF5CBDD3A), UINT32_C(0xD486A022), UINT32_C(0xCAC0B99E),
+          UINT32_C(0x2663134A), UINT32_C(0x5F3ABFCA), UINT32_C(0x42DE13F5),
+          UINT32_C(0xB365B973), UINT32_C(0x4967A225)},
+         {UINT32_C(0x10F1F997), UINT32_C(0x99C98A25), UINT32_C(0x7714FAB2),
+          UINT32_C(0x23F057C9), UINT32_C(0x1BA2338D), UINT32_C(0xCE07CA6E),
+          UINT32_C(0x069F65D7), UINT32_C(0x3BA69161)}},
+        {{UINT32_C(0xC026FB0E), UINT32_C(0xCCD8C86F), UINT32_C(0x50407A8C),
+          UINT32_C(0xF49F1FEA), UINT32_C(0x7F19A1DB), UINT32_C(0x72FEA37B),
+          UINT32_C(0x3F457DB7), UINT32_C(0x22A03E25)},
+         {UINT32_C(0x71F736D2), UINT32_C(0x2D6C62B2), UINT32_C(0xA5ACB4E5),
+          UINT32_C(0xCC99F8E7), UINT32_C(0x0DE5F380), UINT32_C(0x8F7DBF2E),
+          UINT32_C(0x352B4933), UINT32_C(0x24494786)}},
+    },
+    {
+        {{UINT32_C(0xAE2A5E8F), UINT32_C(0xF020E7A9), UINT32_C(0xD14C5F02),
+          UINT32_C(0x5ADC788B), UINT32_C(0x65C84DB4), UINT32_C(0xC5E5AFE4),
+          UINT32_C(0x35C2633C), UINT32_C(0x392FACC4)},
+         {UINT32_C(0x42DEE269), UINT32_C(0x47D50070), UINT32_C(0x6EB7849C),
+          UINT32_C(0x76706ED7), UINT32_C(0x316548CB), UINT32_C(0x6BF56D56),
+          UINT32_C(0xD37FF4DF), UINT32_C(0x4A466066)}},
+        {{UINT32_C(0xC30283AD), UINT32_C(0xC8EBBFB5), UINT32_C(0x3544E645),
+          UINT32_C(0x31E9CF96), UINT32_C(0x88886B50), UINT32_C(0x90EA9A49),
+          UINT32_C(0x021D3D5D), UINT32_C(0x5E4B8C88)},
+         {UINT32_C(0x0DFEB658), UINT32_C(0xA4DB9225), UINT32_C(0x1910FDAE),
+          UINT32_C(0x8AA95DB6), UINT32_C(0xDE400EB9), UINT32_C(0x82E9A997),
+          UINT32_C(0x96769A04), UINT32_C(0x238967E9)}},
+        {{UINT32_C(0x89E2DF0A), UINT32_C(0x1ABB076A), UINT32_C(0x07065929),
+          UINT32_C(0xDA8B09B0), UINT32_C(0x63BD349B), UINT32_C(0x332BE8A5),
+          UINT32_C(0xA2D35385), UINT32_C(0x0EB973CE)},
+         {UINT32_C(0x9C7D375E), UINT32_C(0x67F7AE63), UINT32_C(0xE7AE90B1),
+          UINT32_C(0xA235818D), UINT32_C(0x817493B0), UINT32_C(0x2B59C26E),
+          UINT32_C(0x33C4ACD6), UINT32_C(0x39DC1050)}},
+        {{UINT32_C(0x7B7DB3F5), UINT32_C(0x11801ACE), UINT32_C(0x8CC97CA5),
+          UINT32_C(0x79C214C3), UINT32_C(0xBF2674BF), UINT32_C(0xB4BFE1AB),
+          UINT32_C(0x43252011), UINT32_C(0x598EA7DC)},
+         {UINT32_C(0xB08F8EF5), UINT32_C(0x217FF6D3), UINT32_C(0x8B9226B7),
+          UINT32_C(0x9797BBC9), UINT32_C(0x7B0EDB09), UINT32_C(0xAB8E98C9),
+          UINT32_C(0x083A401F), UINT32_C(0x240EC22D)}},
+        {{UINT32_C(0x459ABC3D), UINT32_C(0x55A75BCF), UINT32_C(0x64ECC2DC),
+          UINT32_C(0xB2F98598), UINT32_C(0x9EE84779), UINT32_C(0x271C47C3),
+          UINT32_C(0xBF9BDBF2), UINT32_C(0x0166E5D4)},
+         {UINT32_C(0x4215B666), UINT32_C(0xD205380F), UINT32_C(0x64E9FE64),
+          UINT32_C(0xF7041396), UINT32_C(0x2BB0DA40), UINT32_C(0x4C737E94),
+          UINT32_C(0xC8119691), UINT32_C(0x2E763521)}},
+        {{UINT32_C(0xFD2F8593), UINT32_C(0x79550B60), UINT32_C(0x0C17A56F),
+          UINT32_C(0x47E00AFD), UINT32_C(0xB44157CF), UINT32_C(0x0D900A9D),
+          UINT32_C(0xA81BED76), UINT32_C(0x016CF746)},
+         {UINT32_C(0xAC47A84B), UINT32_C(0xC21E861B), UINT32_C(0x1724BD47),
+          UINT32_C(0x0E14387A), UINT32_C(0x2077F7BC), UINT32_C(0xC209303E),
+          UINT32_C(0xBAD12F0B), UINT32_C(0x33B5EB59)}},
+        {{UINT32_C(0x9850FC1F), UINT32_C(0x7152354F), UINT32_C(0x83637934),
+          UINT32_C(0x1239576F), UINT32_C(0x82AF46BA), UINT32_C(0xB00C4E4E),
+          UINT32_C(0xEC3FEEFF), UINT32_C(0x563D5062)},
+         {UINT32_C(0x33D67B7F), UINT32_C(0xEF25E373), UINT32_C(0x50D9845E),
+          UINT32_C(0x3A80A50E), UINT32_C(0xA5787EF5), UINT32_C(0x1DCED1E9),
+          UINT32_C(0xA0F87C3C), UINT32_C(0x15723E9A)}},
+        {{UINT32_C(0x2B4A156D), UINT32_C(0x21743511), UINT32_C(0xCD12BD2B),
+          UINT32_C(0xB75C041C), UINT32_C(0x79F393A6), UINT32_C(0x6947368C),
+          UINT32_C(0x76420E56), UINT32_C(0x32CDE49E)},
+         {UINT32_C(0x43D612FF), UINT32_C(0x67FBA315), UINT32_C(0xE3B87BC2),
+          UINT32_C(0x697F7FAE), UINT32_C(0x7391129A), UINT32_C(0x980DAFBC),
+          UINT32_C(0x6F707469), UINT32_C(0x438B2858)}},
+        {{UINT32_C(0x5E9D085F), UINT32_C(0xDA8AD16D), UINT32_C(0x768FA87C),
+          UINT32_C(0xE636F1AF), UINT32_C(0xB85FF1F1), UINT32_C(0x08520756),
+          UINT32_C(0x6ABB31BE), UINT32_C(0x1B818481)},
+         {UINT32_C(0x2E686F1A), UINT32_C(0x25B3DCB9), UINT32_C(0x2B0CB829),
+          UINT32_C(0xE1282134), UINT32_C(0x3B9B759C), UINT32_C(0x626232BC),
+          UINT32_C(0x38C4338E), UINT32_C(0x797316BB)}},
+        {{UINT32_C(0x4A62DCBD), UINT32_C(0xF8365B64), UINT32_C(0x6BF0EFED),
+          UINT32_C(0xC2CF51BA), UINT32_C(0xABF74764), UINT32_C(0x37E379EF),
+          UINT32_C(0xA350D603), UINT32_C(0x5DC32071)},
+         {UINT32_C(0x5B732100), UINT32_C(0x5465CC80), UINT32_C(0xB3BB5366),
+          UINT32_C(0x3231B4E3), UINT32_C(0xD0D067CE), UINT32_C(0x23F5385E),
+          UINT32_C(0x67D33451), UINT32_C(0x76CD7621)}},
+        {{UINT32_C(0x55D857DD), UINT32_C(0xC6C93A05), UINT32_C(0x8F308F7F),
+          UINT32_C(0xB4B6F176), UINT32_C(0xC0F13577), UINT32_C(0x2371CD88),
+          UINT32_C(0x70807D9D), UINT32_C(0x1E507D6C)},
+         {UINT32_C(0xC73E8E2F), UINT32_C(0x7A77CCE1), UINT32_C(0xFCCBDEEB),
+          UINT32_C(0x1DD96274), UINT32_C(0x03F378B8), UINT32_C(0xA4DBEA5D),
+          UINT32_C(0x2A1C347F), UINT32_C(0x44B4DF55)}},
+        {{UINT32_C(0x8D067A47), UINT32_C(0x9853D282), UINT32_C(0x86813E74),
+          UINT32_C(0xBF0ADAF4), UINT32_C(0x39409037), UINT32_C(0xFDE1F24D),
+          UINT32_C(0x973B045D), UINT32_C(0x0E629604)},
+         {UINT32_C(0x3BB92FAB), UINT32_C(0x9880A74B), UINT32_C(0xC6C4D6C6),
+          UINT32_C(0xBC4E3405), UINT32_C(0x5184A2D6), UINT32_C(0x98C24318),
+          UINT32_C(0xC210C183), UINT32_C(0x07D65412)}},
+        {{UINT32_C(0x441A5FBC), UINT32_C(0x3938E528), UINT32_C(0xCCC66B22),
+          UINT32_C(0x2CCD837D), UINT32_C(0x5E606282), UINT32_C(0x075FADE7),
+          UINT32_C(0x4BB0E76A), UINT32_C(0x32181165)},
+         {UINT32_C(0xFC929890), UINT32_C(0xE7240305), UINT32_C(0xE03AAA52),
+          UINT32_C(0x1FA427C8), UINT32_C(0x0BC7B9F8), UINT32_C(0xF23C879B),
+          UINT32_C(0xD6BBC908), UINT32_C(0x699A1235)}},
+        {{UINT32_C(0x14124B8A), UINT32_C(0x20C29781), UINT32_C(0x48000278),
+          UINT32_C(0x0C6464B3), UINT32_C(0xD644E10C), UINT32_C(0xF1939127),
+          UINT32_C(0x4EC07EE3), UINT32_C(0x47A479E6)},
+         {UINT32_C(0x77023389), UINT32_C(0xB6315768), UINT32_C(0x8BFDD90F),
+          UINT32_C(0xC0FD319D), UINT32_C(0x6CB022D4), UINT32_C(0x0EBEC200),
+          UINT32_C(0x302F58EF), UINT32_C(0x6810DF3D)}},
+        {{UINT32_C(0xACB1C3F2), UINT32_C(0xCF97FA07), UINT32_C(0xA2C3F2F1),
+          UINT32_C(0xACC60D84), UINT32_C(0x5DEB73D4), UINT32_C(0x4EF3CAAC),
+          UINT32_C(0xD5472C1D), UINT32_C(0x654D0D90)},
+         {UINT32_C(0xE4729062), UINT32_C(0x5A39A718), UINT32_C(0x8324E0F2),
+          UINT32_C(0x84B286B0), UINT32_C(0xD21E8457), UINT32_C(0xA07A01CB),
+          UINT32_C(0xB094714E), UINT32_C(0x0EC091C7)}},
+        {{UINT32_C(0x895736BD), UINT32_C(0x7AB81940), UINT32_C(0xE4679DF5),
+          UINT32_C(0x9AE791B7), UINT32_C(0xF064109B), UINT32_C(0x36163D81),
+          UINT32_C(0x0E956B07), UINT32_C(0x3DDEE4A4)},
+         {UINT32_C(0xFEAAE47C), UINT32_C(0xE146E7EE), UINT32_C(0x6A8EEC03),
+          UINT32_C(0x81C0C2A7), UINT32_C(0xA8C315CB), UINT32_C(0x10BB8DD9),
+          UINT32_C(0xD21B9AB0), UINT32_C(0x2CB423D8)}},
+    },
+    {
+        {{UINT32_C(0x166A5B9A), UINT32_C(0x5B11D3C7), UINT32_C(0x8768861D),
+          UINT32_C(0x973627BB), UINT32_C(0x5A3E442A), UINT32_C(0x82A5E2CD),
+          UINT32_C(0xDDE63678), UINT32_C(0x13F6C741)},
+         {UINT32_C(0xD892738E), UINT32_C(0x8DAA3C74), UINT32_C(0xA932376F),
+          UINT32_C(0x0A07D651), UINT32_C(0x6892504B), UINT32_C(0xE12612C5),
+          UINT32_C(0xCA3FF301), UINT32_C(0x619D2B1D)}},
+        {{UINT32_C(0x1B07CEB7), UINT32_C(0x2B6D686F), UINT32_C(0x298D0996),
+          UINT32_C(0x90C0260C), UINT32_C(0x102BC73C), UINT32_C(0x8CAAB926),
+          UINT32_C(0xAEB3911C), UINT32_C(0x445A6487)},
+         {UINT32_C(0x57F17290), UINT32_C(0x7EE1E547), UINT32_C(0x417711BF),
+          UINT32_C(0xC055478B), UINT32_C(0x5CFA42C2), UINT32_C(0x29EF9FEC),
+          UINT32_C(0x2B8EA0D6), UINT32_C(0x5A022DE4)}},
+        {{UINT32_C(0xAEEB2675), UINT32_C(0x81A5EC18), UINT32_C(0xAD1BBA8A),
+          UINT32_C(0xA867C5AA), UINT32_C(0x8DB47EBC), UINT32_C(0xAECB3688),
+          UINT32_C(0x26D1038F), UINT32_C(0x77CE00BC)},
+         {UINT32_C(0x3E68504B), UINT32_C(0xADC635EF), UINT32_C(0xDAE8AF4F),
+          UINT32_C(0x0EFC21DE), UINT32_C(0xAC70C4C9), UINT32_C(0xDE57FD43),
+          UINT32_C(0xE78FFC0D), UINT32_C(0x123360BE)}},
+        {{UINT32_C(0xD82B61DB), UINT32_C(0xD608DB32), UINT32_C(0x8E45C853),
+          UINT32_C(0x05AF2A90), UINT32_C(0x9D3B0032), UINT32_C(0xF1B8213E),
+          UINT32_C(0xCAD15361), UINT32_C(0x2312F8AB)},
+         {UINT32_C(0xC29EE818), UINT32_C(0xDC8D8E32), UINT32_C(0xDE5CD587),
+          UINT32_C(0x07D7A475), UINT32_C(0x0C6C38B8), UINT32_C(0x76610913),
+          UINT32_C(0xD7984BD9), UINT32_C(0x0131B6C6)}},
+        {{UINT32_C(0xCF69C844), UINT32_C(0xC05CD4D0), UINT32_C(0x81A9B005),
+          UINT32_C(0x747C092D), UINT32_C(0xD9E39F54), UINT32_C(0x0D793551),
+          UINT32_C(0x7FFEF17C), UINT32_C(0x3BBB00DA)},
+         {UINT32_C(0x655AD7C1), UINT32_C(0x6CAB83D9), UINT32_C(0x66A8F590),
+          UINT32_C(0x601BECD0), UINT32_C(0xAE51811B), UINT32_C(0xFADB086D),
+          UINT32_C(0xD69F734B), UINT32_C(0x7768A5D8)}},
+        {{UINT32_C(0xF0E2385E), UINT32_C(0x3BB9B347), UINT32_C(0xF7D39F23),
+          UINT32_C(0x376C8C48), UINT32_C(0xD82EC840), UINT32_C(0xE656C1A4),
+          UINT32_C(0xFC2AC59A), UINT32_C(0x328B25C9)},
+         {UINT32_C(0xA046BEE6), UINT32_C(0xD02B2F39), UINT32_C(0x80066D6C),
+          UINT32_C(0xDBAB19A5), UINT32_C(0xE938B7F7), UINT32_C(0x6A2E8F67),
+          UINT32_C(0xAA7F2661), UINT32_C(0x645A57A1)}},
+        {{UINT32_C(0x9A006FAE), UINT32_C(0x6227904D), UINT32_C(0xB598CB72),
+          UINT32_C(0xA975FC4C), UINT32_C(0xA1120B82), UINT32_C(0x945BFC2F),
+          UINT32_C(0x2AC15CE5), UINT32_C(0x437A8AB4)},
+         {UINT32_C(0x0F53317C), UINT32_C(0xA512A107), UINT32_C(0xFF9BD7D6),
+          UINT32_C(0x7B552554), UINT32_C(0x54155AF9), UINT32_C(0xF81213E7),
+          UINT32_C(0xFDCE0842), UINT32_C(0x0923F42C)}},
+        {{UINT32_C(0x5216BB55), UINT32_C(0x13523916), UINT32_C(0x599CA117),
+          UINT32_C(0xF27E4C7A), UINT32_C(0x7DD95BE1), UINT32_C(0x464D040A),
+          UINT32_C(0x3C417D05), UINT32_C(0x40897486)},
+         {UINT32_C(0x7C88E5D7), UINT32_C(0x0A3D16BF), UINT32_C(0xC13B286F),
+          UINT32_C(0x0B94C661), UINT32_C(0xE2214821), UINT32_C(0xF73C7126),
+          UINT32_C(0xF2F6DAFA), UINT32_C(0x4B3D5BF0)}},
+        {{UINT32_C(0xF1A4332A), UINT32_C(0xCFABD8A2), UINT32_C(0xBAAC9A51),
+          UINT32_C(0x56DB1546), UINT32_C(0x04416247), UINT32_C(0x8CC5204B),
+          UINT32_C(0xF0583310), UINT32_C(0x75EC13BF)},
+         {UINT32_C(0xD35B55D0), UINT32_C(0x0D68896E), UINT32_C(0x67FC14D9),
+          UINT32_C(0xE89274E2), UINT32_C(0xFC322878), UINT32_C(0x18D425C0),
+          UINT32_C(0x916C714A), UINT32_C(0x69477DD7)}},
+        {{UINT32_C(0x9BDDF0F9), UINT32_C(0x427CBB6C), UINT32_C(0xDB9F52CB),
+          UINT32_C(0xCF6941E2), UINT32_C(0x35E60DFA), UINT32_C(0xEF144DF6),
+          UINT32_C(0xB61DF45C), UINT32_C(0x27B5246E)},
+         {UINT32_C(0xB8D3D1D9), UINT32_C(0x0E124518), UINT32_C(0x8B313B95),
+          UINT32_C(0xBB3BA134), UINT32_C(0x0FA2B7A9), UINT32_C(0x050DCBDF),
+          UINT32_C(0x1D0A99B5), UINT32_C(0x50DBCF6D)}},
+        {{UINT32_C(0x3924A1E5), UINT32_C(0x8A8B22CB), UINT32_C(0x118F9D55),
+          UINT32_C(0x86CB4C5A), UINT32_C(0x5B339C53), UINT32_C(0xE5330ACC),
+          UINT32_C(0x66A35A67), UINT32_C(0x6D5FDDF9)},
+         {UINT32_C(0x6F6438A5), UINT32_C(0xC9500719), UINT32_C(0x07E5394E),
+          UINT32_C(0x9723F2BA), UINT32_C(0x866B45A8), UINT32_C(0xA9CE2117),
+          UINT32_C(0x045CA2CA), UINT32_C(0x1B737D8D)}},
+        {{UINT32_C(0x6EE00E30), UINT32_C(0x6093F5A5), UINT32_C(0x5DE0A6FC),
+          UINT32_C(0x5CAB98D4), UINT32_C(0x65DE754F), UINT32_C(0xADFB652C),
+          UINT32_C(0x862EFD1D), UINT32_C(0x679900D1)},
+         {UINT32_C(0xAFC5D235), UINT32_C(0x6E5C230F), UINT32_C(0x12CF6DD3),
+          UINT32_C(0x3A1E5579), UINT32_C(0x03FB4FA0), UINT32_C(0x241C20FB),
+          UINT32_C(0x20F6C013), UINT32_C(0x562FFAE3)}},
+        {{UINT32_C(0x397F25EC), UINT32_C(0x6EFC732F), UINT32_C(0xBC1F03B8),
+          UINT32_C(0x304D1F7D), UINT32_C(0x8890DADE), UINT32_C(0xA2FA6001),
+          UINT32_C(0x51A25539), UINT32_C(0x4F91F97C)},
+         {UINT32_C(0x48F4EF02), UINT32_C(0xE75F9C50), UINT32_C(0x218AEE9D),
+          UINT32_C(0xCC53F460), UINT32_C(0x10D76649), UINT32_C(0xE7B40489),
+          UINT32_C(0x42ECDBA4), UINT32_C(0x148F90A2)}},
+        {{UINT32_C(0x1F683AD6), UINT32_C(0xBF45023A), UINT32_C(0x95E868D1),
+          UINT32_C(0x2EA5F70C), UINT32_C(0xA97F2DE3), UINT32_C(0x47A19F33),
+          UINT32_C(0x8A76ED9F), UINT32_C(0x3C8CCA9E)},
+         {UINT32_C(0xE1A268D0), UINT32_C(0x01562C6E), UINT32_C(0xBA4EF01E),
+          UINT32_C(0x9EB6EBAC), UINT32_C(0x342410FB), UINT32_C(0x835E64D4),
+          UINT32_C(0xFFF4594D), UINT32_C(0x06F96B87)}},
+        {{UINT32_C(0xD233612B), UINT32_C(0xE49A383A), UINT32_C(0xC9C14F64),
+          UINT32_C(0x3CA5421F), UINT32_C(0xBB53DF81), UINT32_C(0x25192E1B),
+          UINT32_C(0xA94C046C), UINT32_C(0x3C1451FE)},
+         {UINT32_C(0x0423FAA8), UINT32_C(0x72B270F8), UINT32_C(0x3763888A),
+          UINT32_C(0xFF63513D), UINT32_C(0xC1745190), UINT32_C(0xB22F2F20),
+          UINT32_C(0x35DEA32C), UINT32_C(0x2E005A7A)}},
+        {{UINT32_C(0x6305B2EB), UINT32_C(0x6B5A4E7A), UINT32_C(0x9CCD05D2),
+          UINT32_C(0xF017BCA1), UINT32_C(0xD19AD8CB), UINT32_C(0xB37027C9),
+          UINT32_C(0x0CBB36A6), UINT32_C(0x2CFCB470)},
+         {UINT32_C(0x663F3485), UINT32_C(0x17F4FE51), UINT32_C(0x0DC3467B),
+          UINT32_C(0x7DC20A17), UINT32_C(0x4AF63CBD), UINT32_C(0x6B56BA3F),
+          UINT32_C(0x0D5D64AF), UINT32_C(0x4E7CF289)}},
+    },
+    {
+        {{UINT32_C(0x7F59D2E9), UINT32_C(0xE2C5CD1F), UINT32_C(0x9D7FBE1E),
+          UINT32_C(0x6B9ACEB7), UINT32_C(0xA20225B0), UINT32_C(0x84F0441D),
+          UINT32_C(0x8B369FBC), UINT32_C(0x15875CDA)},
+         {UINT32_C(0x0659E294), UINT32_C(0xED133277), UINT32_C(0x7AE02043),
+          UINT32_C(0x7FAA913E), UINT32_C(0x9DCEDE14), UINT32_C(0xCA0E58DA),
+          UINT32_C(0xCDE68547), UINT32_C(0x5F6A70FD)}},
+        {{UINT32_C(0xE7282711), UINT32_C(0x524B790D), UINT32_C(0xBCA05694),
+          UINT32_C(0x4B4F6246), UINT32_C(0x949AF774), UINT32_C(0x85169ECB),
+          UINT32_C(0xCC743068), UINT32_C(0x5B168842)},
+         {UINT32_C(0x31FB3BA3), UINT32_C(0xB8D0E9F2), UINT32_C(0x62D471C7),
+          UINT32_C(0x56DD4BC3), UINT32_C(0xE2A34F75), UINT32_C(0xB14D689C),
+          UINT32_C(0x02E8D2D2), UINT32_C(0x7F4E1717)}},
+        {{UINT32_C(0xB17090B9), UINT32_C(0x8EE3491A), UINT32_C(0x6B7EDAF4),
+          UINT32_C(0x67C07116), UINT32_C(0x4D0E6CCE), UINT32_C(0x6876E4CE),
+          UINT32_C(0xBC5A86BE), UINT32_C(0x6D2FBB64)},
+         {UINT32_C(0x070FA8C3), UINT32_C(0x0431C67A), UINT32_C(0x0F5D65F4),
+          UINT32_C(0x91EFF9BE), UINT32_C(0xE07088DF), UINT32_C(0x332985E2),
+          UINT32_C(0x676EADA8), UINT32_C(0x006D2583)}},
+        {{UINT32_C(0x0AA747D6), UINT32_C(0xA1FBCC37), UINT32_C(0xB0DFDF3C),
+          UINT32_C(0xADEA4A90), UINT32_C(0x401ED81B), UINT32_C(0x650162C7),
+          UINT32_C(0xA8B15E22), UINT32_C(0x0FBC4841)},
+         {UINT32_C(0xBF98CDAC), UINT32_C(0x1044B4E8), UINT32_C(0xECD1C668),
+          UINT32_C(0x37071115), UINT32_C(0x233C220C), UINT32_C(0x29B93C17),
+          UINT32_C(0xE69BC0C0), UINT32_C(0x4BEBC3CC)}},
+        {{UINT32_C(0x46BF7E51), UINT32_C(0xD1A16E37), UINT32_C(0xF7A7370C),
+          UINT32_C(0x889C7782), UINT32_C(0x3CCB474D), UINT32_C(0xC73F396E),
+          UINT32_C(0xB9D67A2E), UINT32_C(0x1C508F18)},
+         {UINT32_C(0x6B03B7E7), UINT32_C(0x3F17E967), UINT32_C(0xF857BB26),
+          UINT32_C(0x3928F1D8), UINT32_C(0xC0EA8620), UINT32_C(0x3086FB2E),
+          UINT32_C(0x1BE7C3E4), UINT32_C(0x15DC32C2)}},
+        {{UINT32_C(0x11F4D949), UINT32_C(0xF48D4C32), UINT32_C(0xB0357C05),
+          UINT32_C(0xE14A4AE3), UINT32_C(0x151D91AE), UINT32_C(0x77A1121F),
+          UINT32_C(0xE8C6869D), UINT32_C(0x33F85C2F)},
+         {UINT32_C(0x364B77B0), UINT32_C(0x8EA3BB4C), UINT32_C(0x9BD43E50),
+          UINT32_C(0x1F155B91), UINT32_C(0x54748E7D), UINT32_C(0xA6C28730),
+          UINT32_C(0xE7DDC539), UINT32_C(0x5AA34DDA)}},
+        {{UINT32_C(0xA6CF8A82), UINT32_C(0xF0F80DDA), UINT32_C(0x091663B5),
+          UINT32_C(0x87DE6D6C), UINT32_C(0x02FE5519), UINT32_C(0x94798734),
+          UINT32_C(0x96722130), UINT32_C(0x109D411F)},
+         {UINT32_C(0xE661041F), UINT32_C(0xBC47CA73), UINT32_C(0x65741541),
+          UINT32_C(0x071D6059), UINT32_C(0x07E08735), UINT32_C(0x7CD4DF66),
+          UINT32_C(0xE68FC807), UINT32_C(0x175E1F77)}},
+        {{UINT32_C(0xDA58865B), UINT32_C(0xB88BDAB8), UINT32_C(0x20ED2B89),
+          UINT32_C(0x14AD9112), UINT32_C(0x039BF0A3), UINT32_C(0x2B21AEDF),
+          UINT32_C(0x9D4B77E9), UINT32_C(0x78971777)},
+         {UINT32_C(0xD6612EF3), UINT32_C(0x133DA2AC), UINT32_C(0x12AD1785),
+          UINT32_C(0x6260FCF5), UINT32_C(0x9DF08843), UINT32_C(0xDBA784DA),
+          UINT32_C(0x4449FBD1), UINT32_C(0x1A30C4CF)}},
+        {{UINT32_C(0x4EF7ACA2), UINT32_C(0xB6FECE87), UINT32_C(0x13F7C58C),
+          UINT32_C(0x9CE7B61A), UINT32_C(0xF8719A60), UINT32_C(0x6B0223C9),
+          UINT32_C(0xA3B3B088), UINT32_C(0x21199AA5)},
+         {UINT32_C(0x6938BB02), UINT32_C(0x4A717196), UINT32_C(0xE7ABC263),
+          UINT32_C(0x2E9A17C9), UINT32_C(0x4BAB12B7), UINT32_C(0x83F79623),
+          UINT32_C(0x49D7CFBD), UINT32_C(0x15C0C4AF)}},
+        {{UINT32_C(0x56D2957F), UINT32_C(0x99B34139), UINT32_C(0x07218BB6),
+          UINT32_C(0xA51B8DFD), UINT32_C(0xFC91D7C9), UINT32_C(0x47CA4323),
+          UINT32_C(0x3DCFD5F0), UINT32_C(0x44B01E75)},
+         {UINT32_C(0x8CE894F3), UINT32_C(0x29F9D18E), UINT32_C(0x95227C6F),
+          UINT32_C(0x22BCC540), UINT32_C(0x3FC75409), UINT32_C(0x815CD936),
+          UINT32_C(0xD8989472), UINT32_C(0x0D58B325)}},
+        {{UINT32_C(0xB6C80208), UINT32_C(0x8B4C6980), UINT32_C(0x8FB77CCD),
+          UINT32_C(0xA5D97497), UINT32_C(0x9477132F), UINT32_C(0x1B896571),
+          UINT32_C(0x3AE45F53), UINT32_C(0x348ABC21)},
+         {UINT32_C(0x14BCDB96), UINT32_C(0xE438C1C3), UINT32_C(0x8007C1BF),
+          UINT32_C(0x63150CF9), UINT32_C(0x8508B903), UINT32_C(0xDB861A33),
+          UINT32_C(0x7B04ECD6), UINT32_C(0x421DFB01)}},
+        {{UINT32_C(0x19430E7B), UINT32_C(0xF2FCE58B), UINT32_C(0xD0F8ECB7),
+          UINT32_C(0x851A5F03), UINT32_C(0x0A5A1833), UINT32_C(0xE756C167),
+          UINT32_C(0x227F866C), UINT32_C(0x25A51405)},
+         {UINT32_C(0x3C6EE5F3), UINT32_C(0x40F34CB0), UINT32_C(0xF244B5CF),
+          UINT32_C(0xF4010401), UINT32_C(0x01349BCF), UINT32_C(0x0E21BDED),
+          UINT32_C(0x04547F42), UINT32_C(0x1B129D82)}},
+        {{UINT32_C(0x0927D153), UINT32_C(0x802EC480), UINT32_C(0x72541520),
+          UINT32_C(0x0F75E4FE), UINT32_C(0x026C4613), UINT32_C(0xA4A1557A),
+          UINT32_C(0x7D92BC18), UINT32_C(0x25E8DAFB)},
+         {UINT32_C(0x12F15F05), UINT32_C(0x1D87A143), UINT32_C(0x7B6B4240),
+          UINT32_C(0x79390E3C), UINT32_C(0x492E6273), UINT32_C(0xFC199D76),
+          UINT32_C(0x7EB090C0), UINT32_C(0x0053F1C4)}},
+        {{UINT32_C(0xACEE6DFC), UINT32_C(0xE790F1CA), UINT32_C(0xDFEA04FF),
+          UINT32_C(0xC8FB4626), UINT32_C(0x627D88D7), UINT32_C(0xBF03627F),
+          UINT32_C(0x3D81A75A), UINT32_C(0x1B369884)},
+         {UINT32_C(0x917FA19D), UINT32_C(0x83405DDA), UINT32_C(0x8C7DDCD2),
+          UINT32_C(0xFFB23FF9), UINT32_C(0x40F10B48), UINT32_C(0x644F54C7),
+          UINT32_C(0x17FF713A), UINT32_C(0x4636FADF)}},
+        {{UINT32_C(0x27F417E4), UINT32_C(0xDA62ECC2), UINT32_C(0xFD8662BE),
+          UINT32_C(0xC0DBE48F), UINT32_C(0x1011E73C), UINT32_C(0x729EE4AA),
+          UINT32_C(0x3E11C84B), UINT32_C(0x4BAE5D3C)},
+         {UINT32_C(0x6CEF6CDA), UINT32_C(0x854DFFF8), UINT32_C(0xCB7131EA),
+          UINT32_C(0x7939228C), UINT32_C(0xD3EBC607), UINT32_C(0x58B3744A),
+          UINT32_C(0x2049E239), UINT32_C(0x6EB9248F)}},
+        {{UINT32_C(0xED0D4E57), UINT32_C(0x0265CAE9), UINT32_C(0x8AA65AEF),
+          UINT32_C(0x92166D02), UINT32_C(0x198345D6), UINT32_C(0x2E337CDA),
+          UINT32_C(0xABE1AD7B), UINT32_C(0x6775330C)},
+         {UINT32_C(0xBF6FBC7D), UINT32_C(0xA9A828A8), UINT32_C(0xCBFEA393),
+          UINT32_C(0x33A56F8D), UINT32_C(0xD811EC51), UINT32_C(0x2DB72F77),
+          UINT32_C(0x8327C78E), UINT32_C(0x3DDFCD26)}},
+    },
+    {
+        {{UINT32_C(0xB46AA2C4), UINT32_C(0x7CF8A521), UINT32_C(0xACF0D567),
+          UINT32_C(0xE3B20937), UINT32_C(0xA440648E), UINT32_C(0xD47D8D1B),
+          UINT32_C(0x1E9791A1), UINT32_C(0x674E7920)},
+         {UINT32_C(0x18366462), UINT32_C(0x27B714EB), UINT32_C(0x8476F588),
+          UINT32_C(0x1526E558), UINT32_C(0x6C240D70), UINT32_C(0x72C8D374),
+          UINT32_C(0x805C1265), UINT32_C(0x066BBAFB)}},
+        {{UINT32_C(0x457034E1), UINT32_C(0x15F1CFF5), UINT32_C(0xDD819FA7),
+          UINT32_C(0xCF7C6550), UINT32_C(0x77AC7AD6), UINT32_C(0x57C2CD53),
+          UINT32_C(0xAFED669D), UINT32_C(0x7DB2A8BE)},
+         {UINT32_C(0xD4697340), UINT32_C(0x2DAFD95F), UINT32_C(0x15A6B6E7),
+          UINT32_C(0x382FF892), UINT32_C(0xBF4A6B1B), UINT32_C(0x036FC753),
+          UINT32_C(0xE4012711), UINT32_C(0x3E7AC46D)}},
+        {{UINT32_C(0x5752A34D), UINT32_C(0xBA5ECDED), UINT32_C(0x6BAA08DD),
+          UINT32_C(0xB08749D4), UINT32_C(0x4A4A47A8), UINT32_C(0x8A2B9897),
+          UINT32_C(0xE42DCE02), UINT32_C(0x7230966F)},
+         {UINT32_C(0x58654FF5), UINT32_C(0xA6FF614A), UINT32_C(0xAB3C2A7E),
+          UINT32_C(0x7F3531D1), UINT32_C(0x0D0ED417), UINT32_C(0x0282A2F0),
+          UINT32_C(0xEA9755A3), UINT32_C(0x2DC7B872)}},
+        {{UINT32_C(0x2392536A), UINT32_C(0x7678D765), UINT32_C(0x574C657D),
+          UINT32_C(0x0C2025F1), UINT32_C(0x795413DC), UINT32_C(0x01701C80),
+          UINT32_C(0x5396279E), UINT32_C(0x63F0D496)},
+         {UINT32_C(0xFA32EA64), UINT32_C(0xB0F9968A), UINT32_C(0x5BB393DE),
+          UINT32_C(0x81265D15), UINT32_C(0x0BCD8C10), UINT32_C(0xC05ECC6D),
+          UINT32_C(0x2824457E), UINT32_C(0x4F3769F9)}},
+        {{UINT32_C(0xF13DB92E), UINT32_C(0x9AA58686), UINT32_C(0xED2E1B18),
+          UINT32_C(0x1155CDF4), UINT32_C(0x09823F5A), UINT32_C(0xA06E9194),
+          UINT32_C(0x4257AB0E), UINT32_C(0x7F1BBE73)},
+         {UINT32_C(0xABA6FCD1), UINT32_C(0x2DFB6472), UINT32_C(0xD73D850E),
+          UINT32_C(0x04BE6BCA), UINT32_C(0x297D312B), UINT32_C(0x72AAEC34),
+          UINT32_C(0x7509D9F5), UINT32_C(0x31F4C02C)}},
+        {{UINT32_C(0x7CA72AD5), UINT32_C(0xAA9BA000), UINT32_C(0x7FBCB4D6),
+          UINT32_C(0x21EE2945), UINT32_C(0x1CF8580A), UINT32_C(0x0E210AAB),
+          UINT32_C(0x0FA8DE10), UINT32_C(0x600479FE)},
+         {UINT32_C(0x54322F70), UINT32_C(0x246FD265), UINT32_C(0x60DF1893),
+          UINT32_C(0xC60BE9BB), UINT32_C(0x05137E38), UINT32_C(0x04D4F99D),
+          UINT32_C(0x6164C176), UINT32_C(0x6ACB9E01)}},
+        {{UINT32_C(0xC1DB7B6C), UINT32_C(0x126F2C7E), UINT32_C(0xCF4DD3C0),
+          UINT32_C(0x4C3B30B5), UINT32_C(0xF782A489), UINT32_C(0x827D57A2),
+          UINT32_C(0xE52621F0), UINT32_C(0x41B897DE)},
+         {UINT32_C(0xDDA0A3CD), UINT32_C(0xED31C55A), UINT32_C(0xA11AD179),
+          UINT32_C(0x21C91BB2), UINT32_C(0x43FD6E23), UINT32_C(0x60E606B8),
+          UINT32_C(0x51ED7FA6), UINT32_C(0x31B8138D)}},
+        {{UINT32_C(0xE72E4BC5), UINT32_C(0x1387B313), UINT32_C(0x82EBFC72),
+          UINT32_C(0xDCCCB09C), UINT32_C(0xAA4432D6), UINT32_C(0xF0B01202),
+          UINT32_C(0x7C52B69D), UINT32_C(0x632599C4)},
+         {UINT32_C(0xBCE9A04C), UINT32_C(0x3922D0C0), UINT32_C(0xB53F4268),
+          UINT32_C(0xC2397D88), UINT32_C(0x00669858), UINT32_C(0x50AE5ED9),
+          UINT32_C(0x16C7696B), UINT32_C(0x1B2BD4C2)}},
+        {{UINT32_C(0x2BF7DF06), UINT32_C(0x6FAE1B08), UINT32_C(0x5210DB3B),
+          UINT32_C(0x870B3FE8), UINT32_C(0x9BDC0B91), UINT32_C(0x680BE422),
+          UINT32_C(0xBCC970AD), UINT32_C(0x56BA83C6)},
+         {UINT32_C(0x859D6C78), UINT32_C(0x1AE91BAC), UINT32_C(0x2895A1A6),
+          UINT32_C(0xC5BDD5FB), UINT32_C(0x550610F5), UINT32_C(0xA169E73C),
+          UINT32_C(0x0CC7D3EA), UINT32_C(0x01B46767)}},
+        {{UINT32_C(0x0EC5ECE2), UINT32_C(0x1E147A51), UINT32_C(0xD0E2C46C),
+          UINT32_C(0x9B612A1F), UINT32_C(0x5E293783), UINT32_C(0x664FDD55),
+          UINT32_C(0x67DC4DBC), UINT32_C(0x52070E15)},
+         {UINT32_C(0x4A4903FB), UINT32_C(0x449B53E5), UINT32_C(0xA8D30103),
+          UINT32_C(0x79B53583), UINT32_C(0xAF7CC314), UINT32_C(0x616C97F3),
+          UINT32_C(0x2849862C), UINT32_C(0x6BEB304C)}},
+        {{UINT32_C(0x019F0313), UINT32_C(0xB9C636D6), UINT32_C(0xD3E0188D),
+          UINT32_C(0x0B08E7CB), UINT32_C(0xD704DE15), UINT32_C(0xEAEB1715),
+          UINT32_C(0x837E7543), UINT32_C(0x4990282C)},
+         {UINT32_C(0xFBD3A061), UINT32_C(0xCBB0BD49), UINT32_C(0x1DA124AE),
+          UINT32_C(0x3454A8AC), UINT32_C(0x37D64EAB), UINT32_C(0x0D524A02),
+          UINT32_C(0x0B3E4ADE), UINT32_C(0x76680749)}},
+        {{UINT32_C(0x95B04835), UINT32_C(0xC293E011), UINT32_C(0x23D0C885),
+          UINT32_C(0x76D304BA), UINT32_C(0xD6552D80), UINT32_C(0x36A63627),
+          UINT32_C(0xC504CCAB), UINT32_C(0x3B4FA680)},
+         {UINT32_C(0xE1FC08DF), UINT32_C(0xF25B3A04), UINT32_C(0x62D080F8),
+          UINT32_C(0x786380E5), UINT32_C(0xDAC0D110), UINT32_C(0x0A731427),
+          UINT32_C(0xD628429A), UINT32_C(0x1D65288F)}},
+        {{UINT32_C(0xDC94453E), UINT32_C(0x3CE5E929), UINT32_C(0xB6073324),
+          UINT32_C(0xEC7CF988), UINT32_C(0xDCB35234), UINT32_C(0x023361E7),
+          UINT32_C(0xF5E89B7C), UINT32_C(0x3AF20624)},
+         {UINT32_C(0xA5B2B103), UINT32_C(0x860F188E), UINT32_C(0xCB6D112F),
+          UINT32_C(0x5EAC84CE), UINT32_C(0x914C9FFD), UINT32_C(0x63B200C3),
+          UINT32_C(0x55A1FDCB), UINT32_C(0x327870A0)}},
+        {{UINT32_C(0x155280ED), UINT32_C(0x4F94633C), UINT32_C(0x3654B8AA),
+          UINT32_C(0xF98321D5), UINT32_C(0x489AE89A), UINT32_C(0x9C057A23),
+          UINT32_C(0xD59CA3B5), UINT32_C(0x1124A1FB)},
+         {UINT32_C(0x1F64AFD7), UINT32_C(0x2F4CE052), UINT32_C(0x7C789152),
+          UINT32_C(0x841EE441), UINT32_C(0x59A98374), UINT32_C(0x93531ED4),
+          UINT32_C(0x36BB8F07), UINT32_C(0x69A4F48C)}},
+        {{UINT32_C(0x5FD512A7), UINT32_C(0xD8FFD243), UINT32_C(0x9BEA1738),
+          UINT32_C(0xF48C96F1), UINT32_C(0x0FFB4553), UINT32_C(0xF70E1F6A),
+          UINT32_C(0x5FF91D21), UINT32_C(0x29DB63B1)},
+         {UINT32_C(0x77BF7279), UINT32_C(0xC1355C23), UINT32_C(0xA2FC904D),
+          UINT32_C(0xD3946EE9), UINT32_C(0xE7B7A9F4), UINT32_C(0x07223881),
+          UINT32_C(0x56E08ED6), UINT32_C(0x212D8967)}},
+        {{UINT32_C(0x45503451), UINT32_C(0x32B8C22A), UINT32_C(0xE6AB7B3D),
+          UINT32_C(0x9E4FDAF1), UINT32_C(0x04A31294), UINT32_C(0x7A300E3D),
+          UINT32_C(0x05FE2AEB), UINT32_C(0x0F529DFD)},
+         {UINT32_C(0x9951B6FB), UINT32_C(0x7EFFEA9E), UINT32_C(0x336B9A2B),
+          UINT32_C(0x18C60266), UINT32_C(0x6C8D0EEC), UINT32_C(0xB78A5EE1),
+          UINT32_C(0x46ED0B23), UINT32_C(0x68C17FE4)}},
+    },
+    {
+        {{UINT32_C(0x96B3222E), UINT32_C(0xF707FAD5), UINT32_C(0x0223F804),
+          UINT32_C(0xD6AF6161), UINT32_C(0x4F43A0E9), UINT32_C(0x13FFDC74),
+          UINT32_C(0x3347F487), UINT32_C(0x6A3B70E9)},
+         {UINT32_C(0x6A4AF4F5), UINT32_C(0xBDDF02A4), UINT32_C(0xE4C69950),
+          UINT32_C(0x61B451E1), UINT32_C(0xF9E3BB99), UINT32_C(0xFF854590),
+          UINT32_C(0x7CD54C54), UINT32_C(0x46EB1F69)}},
+        {{UINT32_C(0x8E6848D3), UINT32_C(0x70E643B6), UINT32_C(0x848C2587),
+          UINT32_C(0xC58B8519), UINT32_C(0xEDF4A38E), UINT32_C(0x2F195C54),
+          UINT32_C(0x3D2A52E8), UINT32_C(0x206E6A32)},
+         {UINT32_C(0x417595BF), UINT32_C(0x234845B5), UINT32_C(0xFF5AE3CB),
+          UINT32_C(0x90354373), UINT32_C(0x89C0E555), UINT32_C(0x13BE31CE),
+          UINT32_C(0xCC67E26F), UINT32_C(0x2D18AA43)}},
+        {{UINT32_C(0xF041BD17), UINT32_C(0xC74EE8C4), UINT32_C(0xC2B3CC64),
+          UINT32_C(0x655CF527), UINT32_C(0x160FF053), UINT32_C(0x6735CF0A),
+          UINT32_C(0x04218A0D), UINT32_C(0x35DAB9EB)},
+         {UINT32_C(0xCBC34E46), UINT32_C(0x32BB2E9A), UINT32_C(0x7D190342),
+          UINT32_C(0xF780CEAF), UINT32_C(0x9F0DA1A4), UINT32_C(0x161C0C1A),
+          UINT32_C(0xE7642FD6), UINT32_C(0x7B198C9E)}},
+        {{UINT32_C(0x122FD0B4), UINT32_C(0x936C763E), UINT32_C(0xA7E0C435),
+          UINT32_C(0xA3819ED9), UINT32_C(0xCAAE6D7B), UINT32_C(0x86228B04),
+          UINT32_C(0x7A3C65B4), UINT32_C(0x2E116018)},
+         {UINT32_C(0xD4EB0345), UINT32_C(0xF55BB1F3), UINT32_C(0x0630B569),
+          UINT32_C(0x858A0BF4), UINT32_C(0xCB78A626), UINT32_C(0x8CC22657),
+          UINT32_C(0xB45E3005), UINT32_C(0x7CD93BDE)}},
+        {{UINT32_C(0x98E517AB), UINT32_C(0xCAA1F459), UINT32_C(0xB34A6F5C),
+          UINT32_C(0x36E60281), UINT32_C(0x0B46F47F), UINT32_C(0x877A49F3),
+          UINT32_C(0x9E7BE761), UINT32_C(0x0179824B)},
+         {UINT32_C(0xD455D9C0), UINT32_C(0x6830A2B2), UINT32_C(0x7BA31962),
+          UINT32_C(0xB734BA0A), UINT32_C(0x065C3B51), UINT32_C(0x344665A4),
+          UINT32_C(0x562E7F1D), UINT32_C(0x0B1D2210)}},
+        {{UINT32_C(0x0B2E22E8), UINT32_C(0x289BAFCA), UINT32_C(0x83390107),
+          UINT32_C(0x038929A0), UINT32_C(0x0683E782), UINT32_C(0x968A014D),
+          UINT32_C(0x53D34463), UINT32_C(0x5A1AD5C8)},
+         {UINT32_C(0x9527B2CA), UINT32_C(0xA2613334), UINT32_C(0x310B745F),
+          UINT32_C(0xE8471271), UINT32_C(0x31387F59), UINT32_C(0x49C81A26),
+          UINT32_C(0x0343C691), UINT32_C(0x1B955AF7)}},
+        {{UINT32_C(0xA4A9FCA4), UINT32_C(0x069328AD), UINT32_C(0x624FCB94),
+          UINT32_C(0x14EF09A7), UINT32_C(0xE3E0CECD), UINT32_C(0x21C76F0D),
+          UINT32_C(0x6C1BCE0F), UINT32_C(0x5F470B86)},
+         {UINT32_C(0xB15BC8B4), UINT32_C(0x79319A3F), UINT32_C(0xDB06AFA1),
+          UINT32_C(0xB1407CB1), UINT32_C(0x911116E0), UINT32_C(0xD69E9E09),
+          UINT32_C(0x0756579E), UINT32_C(0x6E77524E)}},
+        {{UINT32_C(0xE2D851D5), UINT32_C(0xD3EC5EBC), UINT32_C(0x03B63143),
+          UINT32_C(0xC888BC23), UINT32_C(0xDB0C357F), UINT32_C(0x5F3DE41E),
+          UINT32_C(0xC3D47D37), UINT32_C(0x646FFBD3)},
+         {UINT32_C(0x0692639B), UINT32_C(0xE53F8BEB), UINT32_C(0xD4FBC3D4),
+          UINT32_C(0x7E194E37), UINT32_C(0x452B2A2E), UINT32_C(0xE1988A22),
+          UINT32_C(0xB013F9E1), UINT32_C(0x5D359A15)}},
+        {{UINT32_C(0xB2A6627D), UINT32_C(0xA48160A7), UINT32_C(0x3CE8789E),
+          UINT32_C(0x5EFDC848), UINT32_C(0xB1CD14EE), UINT32_C(0x264CBFF1),
+          UINT32_C(0x44D84222), UINT32_C(0x288823D4)},
+         {UINT32_C(0x3A6DB1F8), UINT32_C(0x2F091B23), UINT32_C(0xCEA89B44),
+          UINT32_C(0xBFD737B5), UINT32_C(0x17F5E969), UINT32_C(0x682AB86C),
+          UINT32_C(0xABB0FA87), UINT32_C(0x7653005C)}},
+        {{UINT32_C(0xD4B8A43A), UINT32_C(0x619C2629), UINT32_C(0xB6DAF943),
+          UINT32_C(0xBFDAF433), UINT32_C(0x6D640DB8), UINT32_C(0xDC7AA1EE),
+          UINT32_C(0x3B08D55C), UINT32_C(0x35ADEEA8)},
+         {UINT32_C(0xD7AF5382), UINT32_C(0x30935454), UINT32_C(0x3D68A24A),
+          UINT32_C(0x1F9C51A1), UINT32_C(0x78BDBEA9), UINT32_C(0xDBD13CFC),
+          UINT32_C(0x31210A3F), UINT32_C(0x003B6D99)}},
+        {{UINT32_C(0x9C2B515D), UINT32_C(0xD4547A32), UINT32_C(0xFECDAAA9),
+          UINT32_C(0x4AF29AA8), UINT32_C(0xE401D5AD), UINT32_C(0x85C80ECD),
+          UINT32_C(0x8AA315A1), UINT32_C(0x2830332D)},
+         {UINT32_C(0x71DCE198), UINT32_C(0x56758823), UINT32_C(0x6ACBDEE3),
+          UINT32_C(0x55AC9D10), UINT32_C(0x575CF4BB), UINT32_C(0xF6D468CF),
+          UINT32_C(0x576B5C4A), UINT32_C(0x46E4FA98)}},
+        {{UINT32_C(0x20D859EF), UINT32_C(0xAD20F820), UINT32_C(0x2A5462B0),
+          UINT32_C(0x38091588), UINT32_C(0x2135DA7D), UINT32_C(0x35F45C9F),
+          UINT32_C(0xF7F20DBD), UINT32_C(0x6B426F91)},
+         {UINT32_C(0xF96E77D2), UINT32_C(0x4A0D8CBE), UINT32_C(0xCC51D3F4),
+          UINT32_C(0x8FC36F5B), UINT32_C(0xBE16A0A8), UINT32_C(0x7A1870DD),
+          UINT32_C(0x114DB780), UINT32_C(0x29C3E2B3)}},
+        {{UINT32_C(0x21779E6E), UINT32_C(0xFF692A4C), UINT32_C(0xA6026EC1),
+          UINT32_C(0x698231AB), UINT32_C(0xEF03E21B), UINT32_C(0xDAB0D835),
+          UINT32_C(0xC846D56F), UINT32_C(0x770BFFAC)},
+         {UINT32_C(0x3B8B0747), UINT32_C(0xCD28722D), UINT32_C(0x32AE95E5),
+          UINT32_C(0x3DEFE040), UINT32_C(0x0F9857D6), UINT32_C(0x6F5D816A),
+          UINT32_C(0xFC630F5E), UINT32_C(0x2E483FED)}},
+        {{UINT32_C(0x967C7140), UINT32_C(0xDBF82EC4), UINT32_C(0x0D20A2A5),
+          UINT32_C(0x6265CAD1), UINT32_C(0x5862DEFE), UINT32_C(0x1509652B),
+          UINT32_C(0x94A284E5), UINT32_C(0x699DD939)},
+         {UINT32_C(0x0B2CC732), UINT32_C(0xC0116646), UINT32_C(0x94C3EF86),
+          UINT32_C(0x583FE012), UINT32_C(0xCD353430), UINT32_C(0xCD5DAEA8),
+          UINT32_C(0xC7ADA62B), UINT32_C(0x2B39A746)}},
+        {{UINT32_C(0xE4257BBC), UINT32_C(0xF449B989), UINT32_C(0xA90DCCE6),
+          UINT32_C(0x95BA21BA), UINT32_C(0x93CA4ACD), UINT32_C(0xDD53AD5C),
+          UINT32_C(0x0BB4213B), UINT32_C(0x7FCF2738)},
+         {UINT32_C(0xC2E7E54E), UINT32_C(0x0E57C1C0), UINT32_C(0xA1A0E975),
+          UINT32_C(0xD1769DAE), UINT32_C(0xC3B6E13B), UINT32_C(0x68F62C4E),
+          UINT32_C(0x781242D8), UINT32_C(0x75152F9A)}},
+        {{UINT32_C(0x24B8B820), UINT32_C(0x4D582768), UINT32_C(0x5BBD9F84),
+          UINT32_C(0x36E37AC4), UINT32_C(0xDA076F12), UINT32_C(0x1F34414A),
+          UINT32_C(0x3E0333C6), UINT32_C(0x08A77C28)},
+         {UINT32_C(0xD9193382), UINT32_C(0xBB1F017D), UINT32_C(0x83A5612D),
+          UINT32_C(0x56E9AA24), UINT32_C(0xD0B4554F), UINT32_C(0x6959B02B),
+          UINT32_C(0xE4559B52), UINT32_C(0x2479BC56)}},
+    },
+    {
+        {{UINT32_C(0x0F570A8E), UINT32_C(0x96D631C6), UINT32_C(0xD714B807),
+          UINT32_C(0xE3F566A3), UINT32_C(0xEF7E1550), UINT32_C(0x564DD512),
+          UINT32_C(0x79FA2F58), UINT32_C(0x1C5CF24A)},
+         {UINT32_C(0x897958DB), UINT32_C(0x973BA599), UINT32_C(0x11A9CBB1),
+          UINT32_C(0x93951D17), UINT32_C(0xA37A969A), UINT32_C(0x86BA17F6),
+          UINT32_C(0xA069B195), UINT32_C(0x4807CAC7)}},
+        {{UINT32_C(0x6665B35E), UINT32_C(0xB64AC0D4), UINT32_C(0x7EF72C68),
+          UINT32_C(0xBA9CD394), UINT32_C(0x9C4CBC44), UINT32_C(0x838807B2),
+          UINT32_C(0x82770197), UINT32_C(0x2675D268)},
+         {UINT32_C(0x17087FA9), UINT32_C(0xBFC2F137), UINT32_C(0xE7B79B31),
+          UINT32_C(0x811E644B), UINT32_C(0xC963A061), UINT32_C(0x597CE23F),
+          UINT32_C(0x2EA0DEB0), UINT32_C(0x40BC32E4)}},
+        {{UINT32_C(0x27C85959), UINT32_C(0xC0AEFB50), UINT32_C(0x058E0FDD),
+          UINT32_C(0x76D1087E), UINT32_C(0x7E51A6F8), UINT32_C(0x6ADA5AAF),
+          UINT32_C(0x054A058D), UINT32_C(0x424B16E0)},
+         {UINT32_C(0x63AF9766), UINT32_C(0x9A2C20A9), UINT32_C(0x3CF18DAB),
+          UINT32_C(0x4C1CB532), UINT32_C(0x6C5D6A00), UINT32_C(0x599CD929),
+          UINT32_C(0x8AA311BF), UINT32_C(0x57C39BAE)}},
+        {{UINT32_C(0xCD987F02), UINT32_C(0x3FDF5B46), UINT32_C(0x353175C4),
+          UINT32_C(0x57755078), UINT32_C(0xCD578394), UINT32_C(0x80223EC0),
+          UINT32_C(0xAEB7D278), UINT32_C(0x04BBA6AC)},
+         {UINT32_C(0x8688BFB2), UINT32_C(0xD27FD2BE), UINT32_C(0xC27A62E5),
+          UINT32_C(0xB2F80278), UINT32_C(0x339429D8), UINT32_C(0x8BA6FB07),
+          UINT32_C(0x3AB70AA0), UINT32_C(0x57737FF6)}},
+        {{UINT32_C(0x8EAEB3C9), UINT32_C(0x0140E47F), UINT32_C(0x735AC8EA),
+          UINT32_C(0xB91C9798), UINT32_C(0x83D4EFAA), UINT32_C(0x325E0312),
+          UINT32_C(0xD9C5888E), UINT32_C(0x1E7DA3BE)},
+         {UINT32_C(0xF7F1EB13), UINT32_C(0xA210CDA6), UINT32_C(0x936EA9E9),
+          UINT32_C(0xEDC1F6B3), UINT32_C(0x1B097F65), UINT32_C(0x46E831C4),
+          UINT32_C(0x1939A0AE), UINT32_C(0x00857601)}},
+        {{UINT32_C(0x1F68BB40), UINT32_C(0x7C26F711), UINT32_C(0x39DDBE6D),
+          UINT32_C(0xEA69C845), UINT32_C(0xE5316F22), UINT32_C(0x590BF426),
+          UINT32_C(0xCC2DF9C9), UINT32_C(0x40CDC921)},
+         {UINT32_C(0xF3F991C6), UINT32_C(0x28A32DDE), UINT32_C(0x5356CA78),
+          UINT32_C(0xD75B59E6), UINT32_C(0xD1F5F318), UINT32_C(0xB5DD3861),
+          UINT32_C(0xE7929834), UINT32_C(0x09EB1A2D)}},
+        {{UINT32_C(0xDBC0370D), UINT32_C(0x701F9A2D), UINT32_C(0x2870B59D),
+          UINT32_C(0x559D0FAF), UINT32_C(0x55367B5D), UINT32_C(0xE89E5DF0),
+          UINT32_C(0x74005A58), UINT32_C(0x22BBD4FC)},
+         {UINT32_C(0x99CDC76B), UINT32_C(0x7ACED1E4), UINT32_C(0xE3C219D3),
+          UINT32_C(0xD41C827C), UINT32_C(0x8221D91F), UINT32_C(0x5AF3F2AE),
+          UINT32_C(0xE5B6BC98), UINT32_C(0x6D62C990)}},
+        {{UINT32_C(0x7FFC9D0F), UINT32_C(0x23B2A0BF), UINT32_C(0x974CA299),
+          UINT32_C(0xED98F71D), UINT32_C(0x151D559B), UINT32_C(0x10F8C07A),
+          UINT32_C(0x8E949C62), UINT32_C(0x40E46FC3)},
+         {UINT32_C(0xBBE55338), UINT32_C(0x0CF53E34), UINT32_C(0x115520D4),
+          UINT32_C(0xF2D6CF26), UINT32_C(0x590B4E23), UINT32_C(0x915FF09A),
+          UINT32_C(0xBEDC75F2), UINT32_C(0x072E4233)}},
+        {{UINT32_C(0x997E9BFA), UINT32_C(0xB67A6B60), UINT32_C(0x973BC3E7),
+          UINT32_C(0xE7686AC9), UINT32_C(0x0B228320), UINT32_C(0x9525B449),
+          UINT32_C(0x7ADE8F19), UINT32_C(0x6C727583)},
+         {UINT32_C(0x062FF3D5), UINT32_C(0x3D064298), UINT32_C(0x07E22768),
+          UINT32_C(0x5483826C), UINT32_C(0x1F7A64A4), UINT32_C(0xF4ADE921),
+          UINT32_C(0xBD92EB25), UINT32_C(0x70BDDCF7)}},
+        {{UINT32_C(0x5D8A9E36), UINT32_C(0xA8DB3611), UINT32_C(0xFA81065A),
+          UINT32_C(0xAA6A5F33), UINT32_C(0x366DDA90), UINT32_C(0x8EC120A3),
+          UINT32_C(0xD8A15CF7), UINT32_C(0x2AA0AB25)},
+         {UINT32_C(0xA0DFFB9C), UINT32_C(0x5E11E169), UINT32_C(0x118408A7),
+          UINT32_C(0x8C7572E9), UINT32_C(0x35833ADF), UINT32_C(0x4EEFD13E),
+          UINT32_C(0xFC2C1811), UINT32_C(0x2C6732E8)}},
+        {{UINT32_C(0xB1537DF6), UINT32_C(0x15D063F9), UINT32_C(0x0414FCFD),
+          UINT32_C(0x864176B3), UINT32_C(0x8FF9E32E), UINT32_C(0x9C0A194C),
+          UINT32_C(0xDDE1540B), UINT32_C(0x4DB14C6F)},
+         {UINT32_C(0x31F6493F), UINT32_C(0xFAA4AED4), UINT32_C(0xD3C41A46),
+          UINT32_C(0x2C479F1D), UINT32_C(0x8E5E85A2), UINT32_C(0xC3119667),
+          UINT32_C(0x84E9A76C), UINT32_C(0x7E567C80)}},
+        {{UINT32_C(0x689A6B95), UINT32_C(0xB9E2C92A), UINT32_C(0x3B635B01),
+          UINT32_C(0xCCEAC383), UINT32_C(0x34AAB952), UINT32_C(0x04FEA465),
+          UINT32_C(0x63B5CF63), UINT32_C(0x772E5027)},
+         {UINT32_C(0x25830581), UINT32_C(0xCB94F5D2), UINT32_C(0xC77FB7DE),
+          UINT32_C(0x791004AF), UINT32_C(0x5140E4AE), UINT32_C(0x53273C33),
+          UINT32_C(0xA524419F), UINT32_C(0x0C2D329E)}},
+        {{UINT32_C(0xB307B0E4), UINT32_C(0xB7CEDA36), UINT32_C(0x0F8F9667),
+          UINT32_C(0x12DF7FD0), UINT32_C(0xBF62BD94), UINT32_C(0x74274002),
+          UINT32_C(0xC436C319), UINT32_C(0x6765C73D)},
+         {UINT32_C(0xF6EEC946), UINT32_C(0x79B64CE5), UINT32_C(0xDAB258B6),
+          UINT32_C(0x3B1B4B43), UINT32_C(0xEE1F8B84), UINT32_C(0x377819A3),
+          UINT32_C(0x76D0EB1F), UINT32_C(0x1F45F1D6)}},
+        {{UINT32_C(0x58C953AD), UINT32_C(0xCC5BF9B3), UINT32_C(0x7BAD1D2C),
+          UINT32_C(0x8303250F), UINT32_C(0xF164972B), UINT32_C(0xBCA7BC36),
+          UINT32_C(0xB1DFDA64), UINT32_C(0x2CACF8A9)},
+         {UINT32_C(0xD4E2A06F), UINT32_C(0xB03A59B9), UINT32_C(0x1B7FB8FD),
+          UINT32_C(0xFED68E68), UINT32_C(0x7E747AE6), UINT32_C(0x08F75A52),
+          UINT32_C(0x37A4420B), UINT32_C(0x3299EA6B)}},
+        {{UINT32_C(0x932E5BA6), UINT32_C(0x49A00BE6), UINT32_C(0x56114C4B),
+          UINT32_C(0x49212505), UINT32_C(0x376183C7), UINT32_C(0x786B7D31),
+          UINT32_C(0xDD8A5EAF), UINT32_C(0x01F9E229)},
+         {UINT32_C(0x53094AD4), UINT32_C(0xE9B8E990), UINT32_C(0xBFAEDFA8),
+          UINT32_C(0x2EDA305C), UINT32_C(0x7F9E3BC8), UINT32_C(0x34443726),
+          UINT32_C(0x6B55B3C3), UINT32_C(0x1729519C)}},
+        {{UINT32_C(0x50A597D6), UINT32_C(0xEA5A68C0), UINT32_C(0xF1E86D1B),
+          UINT32_C(0xA65147D4), UINT32_C(0x8B47CDEB), UINT32_C(0x554FA36B),
+          UINT32_C(0x9F24FFED), UINT32_C(0x7F38364B)},
+         {UINT32_C(0x1D2A8E2B), UINT32_C(0x657C7E05), UINT32_C(0xE3F64D62),
+          UINT32_C(0x8270F1A7), UINT32_C(0x953AF5A2), UINT32_C(0xFD258B59),
+          UINT32_C(0x43510AA3), UINT32_C(0x6DE01141)}},
+    },
+    {
+        {{UINT32_C(0x0D7A5CBE), UINT32_C(0x48390428), UINT32_C(0xDE441E5E),
+          UINT32_C(0xD37E8C1F), UINT32_C(0x0DE31C8C), UINT32_C(0x908C88B8),
+          UINT32_C(0x0ACD87CE), UINT32_C(0x7C0E24BB)},
+         {UINT32_C(0x25ECCCE8), UINT32_C(0x4A781177), UINT32_C(0xCBDA746F),
+          UINT32_C(0xC06C2F7A), UINT32_C(0xAB565DD4), UINT32_C(0xDB9E9A08),
+          UINT32_C(0xBE776F5B), UINT32_C(0x1E9B44C0)}},
+        {{UINT32_C(0x85B54ABC), UINT32_C(0x7CFD4E50), UINT32_C(0xE7A44F8B),
+          UINT32_C(0x41A4A4DC), UINT32_C(0xA4422576), UINT32_C(0x751C5052),
+          UINT32_C(0xD56B6CB1), UINT32_C(0x534FE0B2)},
+         {UINT32_C(0xD5D767D0), UINT32_C(0x22DAA5CD), UINT32_C(0x0AF8E22C),
+          UINT32_C(0x9C1999AB), UINT32_C(0x99259068), UINT32_C(0xC70C0932),
+          UINT32_C(0xFD0839F0), UINT32_C(0x459D212E)}},
+        {{UINT32_C(0xFD32D79B), UINT32_C(0xA207E7DE), UINT32_C(0x410B479F),
+          UINT32_C(0xA7B54991), UINT32_C(0xD68E5CDC), UINT32_C(0x806912B6),
+          UINT32_C(0x92AB8B64), UINT32_C(0x1CB7B68C)},
+         {UINT32_C(0xDF98339F), UINT32_C(0x3DB85378), UINT32_C(0x83EA7A18),
+          UINT32_C(0xA24101DC), UINT32_C(0xE25522C5), UINT32_C(0x8892367C),
+          UINT32_C(0x7753A2C3), UINT32_C(0x491A8BB3)}},
+        {{UINT32_C(0x8C7875A7), UINT32_C(0x571C547E), UINT32_C(0xE9747C13),
+          UINT32_C(0x7E5F23E4), UINT32_C(0x1058548D), UINT32_C(0x00F3BBB2),
+          UINT32_C(0xE2397102), UINT32_C(0x7081F172)},
+         {UINT32_C(0x6B573034), UINT32_C(0xB4351B8A), UINT32_C(0xC1A094F0),
+          UINT32_C(0xB35A4F44), UINT32_C(0xAE951E96), UINT32_C(0xE2C1DAED),
+          UINT32_C(0xB9DAA081), UINT32_C(0x5CF2A742)}},
+        {{UINT32_C(0x9828ED9F), UINT32_C(0xB4F0D3F0), UINT32_C(0xA9251386),
+          UINT32_C(0x6DB312FB), UINT32_C(0x537203F2), UINT32_C(0xC9A4583F),
+          UINT32_C(0x9CE76D40), UINT32_C(0x5E099639)},
+         {UINT32_C(0xC9F8CEA8), UINT32_C(0x3381B894), UINT32_C(0x626E07E8),
+          UINT32_C(0x8242DAF8), UINT32_C(0x6077DFD9), UINT32_C(0x64A0B68C),
+          UINT32_C(0x563CF051), UINT32_C(0x3CC462C0)}},
+        {{UINT32_C(0x87AF4A45), UINT32_C(0x8937364C), UINT32_C(0x2DE0FD60),
+          UINT32_C(0x8C4ACBFA), UINT32_C(0x472A5D8A), UINT32_C(0xF10AED11),
+          UINT32_C(0x5380C2E6), UINT32_C(0x3F5674B5)},
+         {UINT32_C(0x2BF8A452), UINT32_C(0x8F4FD0F5), UINT32_C(0xC7390418),
+          UINT32_C(0xB436E388), UINT32_C(0xE6EE9406), UINT32_C(0xAFAB7B7C),
+          UINT32_C(0x951739BA), UINT32_C(0x4F623177)}},
+        {{UINT32_C(0xA9B50F2A), UINT32_C(0x90B0ED35), UINT32_C(0xAC6CF217),
+          UINT32_C(0x46DC3F91), UINT32_C(0x2C7B119C), UINT32_C(0x2F142031),
+          UINT32_C(0x07D79225), UINT32_C(0x55A93CBC)},
+         {UINT32_C(0xB304A642), UINT32_C(0x45E0DD7D), UINT32_C(0xD572D446),
+          UINT32_C(0xB743DFCD), UINT32_C(0xAC74B368), UINT32_C(0x867B02EB),
+          UINT32_C(0x169B94B0), UINT32_C(0x67B2B86C)}},
+        {{UINT32_C(0x483CFEDB), UINT32_C(0x18396DA7), UINT32_C(0x8A3A07C2),
+          UINT32_C(0x6C6E0370), UINT32_C(0xAB554998), UINT32_C(0xF32A1AFE),
+          UINT32_C(0x87D1C136), UINT32_C(0x408C9119)},
+         {UINT32_C(0x4BBE0B78), UINT32_C(0x755F6325), UINT32_C(0xD1178550),
+          UINT32_C(0xDC4A7319), UINT32_C(0xB3B9E459), UINT32_C(0x44B49813),
+          UINT32_C(0x4C3D3620), UINT32_C(0x0294B9A9)}},
+        {{UINT32_C(0x067FA6FF), UINT32_C(0x6480F6FE), UINT32_C(0xF307A52E),
+          UINT32_C(0x67891400), UINT32_C(0x7F865DA8), UINT32_C(0x9F846EF8),
+          UINT32_C(0xAE02F671), UINT32_C(0x318DAC55)},
+         {UINT32_C(0xE288A317), UINT32_C(0x91119652), UINT32_C(0x038C61B8),
+          UINT32_C(0x4D7CF2B8), UINT32_C(0x5154C1A8), UINT32_C(0x098F80DD),
+          UINT32_C(0xD239A2D4), UINT32_C(0x10C04F87)}},
+        {{UINT32_C(0x5CA6F183), UINT32_C(0x13460926), UINT32_C(0xD52001ED),
+          UINT32_C(0x5E97AD18), UINT32_C(0xE14843DF), UINT32_C(0x7DCD2477),
+          UINT32_C(0x98A30426), UINT32_C(0x27DAB276)},
+         {UINT32_C(0xE120D80C), UINT32_C(0x7939CAE3), UINT32_C(0x51E5B81A),
+          UINT32_C(0xC9F46466), UINT32_C(0xE2E49D52), UINT32_C(0xED620322),
+          UINT32_C(0xFA172BBB), UINT32_C(0x3C0F5A2E)}},
+        {{UINT32_C(0x5DB1196B), UINT32_C(0xBFFE8742), UINT32_C(0x49B7214E),
+          UINT32_C(0xCD45F8ED), UINT32_C(0xC35F5C33), UINT32_C(0x923ABA47),
+          UINT32_C(0x83F3EE48), UINT32_C(0x16ED1F10)},
+         {UINT32_C(0x99274930), UINT32_C(0x042E6DF0), UINT32_C(0xC5F8EA16),
+          UINT32_C(0xE8AE1DCF), UINT32_C(0xF02EA2B2), UINT32_C(0x004462CB),
+          UINT32_C(0xD284B04E), UINT32_C(0x427F9381)}},
+        {{UINT32_C(0x75EFACC5), UINT32_C(0x4CD481F8), UINT32_C(0x21C83368),
+          UINT32_C(0xD98C3FD4), UINT32_C(0x3894CE88), UINT32_C(0x4335E7C8),
+          UINT32_C(0x955A298C), UINT32_C(0x18321F87)},
+         {UINT32_C(0xD1716E18), UINT32_C(0x073DD00A), UINT32_C(0xFE0BFE61),
+          UINT32_C(0x66D82A5F), UINT32_C(0x2310C532), UINT32_C(0x7D869E20),
+          UINT32_C(0x19BF4704), UINT32_C(0x29A376FB)}},
+        {{UINT32_C(0xC149B5B0), UINT32_C(0xA1B12B35), UINT32_C(0x1E828959),
+          UINT32_C(0x3411B231), UINT32_C(0x560D99FB), UINT32_C(0x56417519),
+          UINT32_C(0xEBB52124), UINT32_C(0x4E0EB143)},
+         {UINT32_C(0x6AEF3801), UINT32_C(0x7B594B5E), UINT32_C(0x9ECB536E),
+          UINT32_C(0x00AEE12E), UINT32_C(0x56E23145), UINT32_C(0x6BF0FB29),
+          UINT32_C(0x61AE8E98), UINT32_C(0x2B2D83B9)}},
+        {{UINT32_C(0x6AC27F2D), UINT32_C(0x9CB3E2E8), UINT32_C(0x5A6280AA),
+          UINT32_C(0x82BACA96), UINT32_C(0x2C6B7C8F), UINT32_C(0xCBC6C01B),
+          UINT32_C(0xD0C01ABD), UINT32_C(0x390511BC)},
+         {UINT32_C(0x49551C0D), UINT32_C(0xB322D972), UINT32_C(0x7B6489C8),
+          UINT32_C(0x7905E82E), UINT32_C(0x40EEC20D), UINT32_C(0x4DD0CE8B),
+          UINT32_C(0x2409298A), UINT32_C(0x5C0B3EE7)}},
+        {{UINT32_C(0xB635FB99), UINT32_C(0x4418D685), UINT32_C(0x3ACE8B39),
+          UINT32_C(0x652EA608), UINT32_C(0x46FC4047), UINT32_C(0xE586FBDC),
+          UINT32_C(0xD8CC13D8), UINT32_C(0x3C832D34)},
+         {UINT32_C(0xF7AA54A1), UINT32_C(0x14CC9F23), UINT32_C(0x07153B9F),
+          UINT32_C(0x80D094E6), UINT32_C(0x6A2EED8E), UINT32_C(0x0776E540),
+          UINT32_C(0x77249085), UINT32_C(0x03CC3BFC)}},
+        {{UINT32_C(0x1308C1A8), UINT32_C(0x5F8F281F), UINT32_C(0xD1AFC4B7),
+          UINT32_C(0x31C8E737), UINT32_C(0x41AE8EF2), UINT32_C(0x67785298),
+          UINT32_C(0xFD028A4B), UINT32_C(0x17716086)},
+         {UINT32_C(0xF922E100), UINT32_C(0x1A2083E0), UINT32_C(0xD53FE691),
+          UINT32_C(0xD67EC9D1), UINT32_C(0xECCA8DEB), UINT32_C(0x2DF8B6ED),
+          UINT32_C(0xBCCC999E), UINT32_C(0x3B595EE4)}},
+    },
+    {
+        {{UINT32_C(0x5A4B8C04), UINT32_C(0x11F03F89), UINT32_C(0x7DAE8E6B),
+          UINT32_C(0x254C3648), UINT32_C(0x637CDB83), UINT32_C(0xAB6EAAF1),
+          UINT32_C(0xFDDED8F6), UINT32_C(0x41F52243)},
+         {UINT32_C(0xBBDF3270), UINT32_C(0x487078E1), UINT32_C(0x339CEA28),
+          UINT32_C(0x98853B49), UINT32_C(0xAB3EDE57), UINT32_C(0x8AF0522B),
+          UINT32_C(0x85EB4CC0), UINT32_C(0x734D711F)}},
+        {{UINT32_C(0xF86BA644), UINT32_C(0xFD1F46AD), UINT32_C(0xA3299855),
+          UINT32_C(0xA5332B97), UINT32_C(0xD9493634), UINT32_C(0x61BE90DB),
+          UINT32_C(0xC2705911), UINT32_C(0x308F09B1)},
+         {UINT32_C(0x0B7918A5), UINT32_C(0xD59F1B1A), UINT32_C(0xCF6399E6),
+          UINT32_C(0x9CF333D0), UINT32_C(0xFBB26B6B), UINT32_C(0xD09C63CD),
+          UINT32_C(0xA6536647), UINT32_C(0x76C27913)}},
+        {{UINT32_C(0xAAAB555C), UINT32_C(0x3DF1811F), UINT32_C(0x886C828B),
+          UINT32_C(0x60853351), UINT32_C(0xF1E87F41), UINT32_C(0xF6CA7707),
+          UINT32_C(0x7D7082E6), UINT32_C(0x5B4F6EDF)},
+         {UINT32_C(0x3F672DE7), UINT32_C(0xADE518E0), UINT32_C(0x022541B2),
+          UINT32_C(0x00ED0B84), UINT32_C(0x618E8969), UINT32_C(0x04FE5DD6),
+          UINT32_C(0xDB9CCA4D), UINT32_C(0x2F5F5C65)}},
+        {{UINT32_C(0x96BDAE2C), UINT32_C(0x00B69B45), UINT32_C(0x770604C4),
+          UINT32_C(0x06DB22CF), UINT32_C(0x856585C3), UINT32_C(0xC2EB7F8F),
+          UINT32_C(0x0413C614), UINT32_C(0x6E322539)},
+         {UINT32_C(0x70A46872), UINT32_C(0x22C09EA8), UINT32_C(0x1FF23734),
+          UINT32_C(0x143E73BC), UINT32_C(0x575C20B4), UINT32_C(0xCAC5E2DD),
+          UINT32_C(0x3FEBE787), UINT32_C(0x225E5390)}},
+        {{UINT32_C(0xBE9C512D), UINT32_C(0x594FEA4E), UINT32_C(0x92CB73AE),
+          UINT32_C(0x58507092), UINT32_C(0xB0CE2096), UINT32_C(0xFD8EFC7D),
+          UINT32_C(0xE031D6AB), UINT32_C(0x3B58C199)},
+         {UINT32_C(0x479F23E4), UINT32_C(0x55DA1CBD), UINT32_C(0xA6DB6137),
+          UINT32_C(0x060C6BB5), UINT32_C(0x6864488E), UINT32_C(0xD8319CF8),
+          UINT32_C(0x21B02EDA), UINT32_C(0x6C15A31B)}},
+        {{UINT32_C(0x8CA7084D), UINT32_C(0x13C48372), UINT32_C(0xA171ECE5),
+          UINT32_C(0xF7554E59), UINT32_C(0x23A97699), UINT32_C(0x7425C5D8),
+          UINT32_C(0x71E1120E), UINT32_C(0x6F2C68DA)},
+         {UINT32_C(0x24324B64), UINT32_C(0x9591B9B6), UINT32_C(0xC02AC704),
+          UINT32_C(0x2DA33472), UINT32_C(0x81EE1295), UINT32_C(0xC5DE7FC9),
+          UINT32_C(0x5D6E93C6), UINT32_C(0x6A646A44)}},
+        {{UINT32_C(0xA39D6554), UINT32_C(0x48684061), UINT32_C(0xC3DF57B6),
+          UINT32_C(0xB70ABF61), UINT32_C(0x58B9EEE3), UINT32_C(0x9824AFD6),
+          UINT32_C(0x3A14A733), UINT32_C(0x46EBE9D1)},
+         {UINT32_C(0xD74F8E94), UINT32_C(0x8E70F95D), UINT32_C(0x6AFCA4E2),
+          UINT32_C(0xA9D922A2), UINT32_C(0x6988CC16), UINT32_C(0x519A9753),
+          UINT32_C(0xD545AF8A), UINT32_C(0x711DEF16)}},
+        {{UINT32_C(0x811A2BF7), UINT32_C(0x362A5D95), UINT32_C(0x566B90CE),
+          UINT32_C(0x42A84A33), UINT32_C(0x7C41EC87), UINT32_C(0x25CBC760),
+          UINT32_C(0xD4B7DBEE), UINT32_C(0x6B77E39C)},
+         {UINT32_C(0x833015A4), UINT32_C(0xA98B8201), UINT32_C(0xC31B26F4),
+          UINT32_C(0xE412E217), UINT32_C(0xE0090782), UINT32_C(0x518BE8F0),
+          UINT32_C(0x3DB51D4E), UINT32_C(0x08D9F4B6)}},
+        {{UINT32_C(0x297D421E), UINT32_C(0x2C80CE87), UINT32_C(0xADBA1498),
+          UINT32_C(0x2FD137F8), UINT32_C(0x2899AA14), UINT32_C(0xA2ED3D47),
+          UINT32_C(0xFE4F365A), UINT32_C(0x2AC924A5)},
+         {UINT32_C(0x666DC0A0), UINT32_C(0xAC0389B7), UINT32_C(0x8ABF3D9E),
+          UINT32_C(0x3CC99739), UINT32_C(0xDFBFF83A), UINT32_C(0x33060DB6),
+          UINT32_C(0x0339C3B8), UINT32_C(0x54EEE215)}},
+        {{UINT32_C(0x820F7E4D), UINT32_C(0x06C3A4F5), UINT32_C(0x08C3D311),
+          UINT32_C(0x86F083E2), UINT32_C(0xFE4B0476), UINT32_C(0x47E29984),
+          UINT32_C(0xCA7DF6CF), UINT32_C(0x218F52E2)},
+         {UINT32_C(0xBF2C2084), UINT32_C(0x59317E26), UINT32_C(0x289A10CF),
+          UINT32_C(0xEA9C865B), UINT32_C(0x2074FEA3), UINT32_C(0x7AA1E50B),
+          UINT32_C(0x4B3EFC31), UINT32_C(0x708A1D8C)}},
+        {{UINT32_C(0x864817D7), UINT32_C(0x34C5C63E), UINT32_C(0xD89E995B),
+          UINT32_C(0x0F614043), UINT32_C(0x975E2A03), UINT32_C(0x60CE8BCE),
+          UINT32_C(0x78493E0C), UINT32_C(0x70916E29)},
+         {UINT32_C(0x216782C6), UINT32_C(0xBD0748F9), UINT32_C(0xED32FB72),
+          UINT32_C(0x0051C65A), UINT32_C(0x4DD64705), UINT32_C(0x9DC5F558),
+          UINT32_C(0xEEC14B50), UINT32_C(0x674F1A63)}},
+        {{UINT32_C(0xDB633FD1), UINT32_C(0x73D6E68E), UINT32_C(0xF52F9537),
+          UINT32_C(0x7B5F8303), UINT32_C(0x88A74CFB), UINT32_C(0x980FDDDC),
+          UINT32_C(0x47FC32D1), UINT32_C(0x6419C18F)},
+         {UINT32_C(0x870B5D59), UINT32_C(0x93727B4C), UINT32_C(0xCF28021D),
+          UINT32_C(0x4BCE05DE), UINT32_C(0xAB4F0CE5), UINT32_C(0x3C059B47),
+          UINT32_C(0xB85FFDBB), UINT32_C(0x77CA7F67)}},
+        {{UINT32_C(0xC525088E), UINT32_C(0xDBEADDCE), UINT32_C(0x390D2221),
+          UINT32_C(0x561E12BE), UINT32_C(0xD9BA7AF0), UINT32_C(0xCD224FC1),
+          UINT32_C(0x394DC073), UINT32_C(0x03744552)},
+         {UINT32_C(0x21BB6B6E), UINT32_C(0xCFC67B49), UINT32_C(0x1B5F8E6A),
+          UINT32_C(0xD234FD8D), UINT32_C(0x40B7F8B0), UINT32_C(0x6DDBC18B),
+          UINT32_C(0xDAACCC74), UINT32_C(0x79F40857)}},
+        {{UINT32_C(0x9DD71B9C), UINT32_C(0x30E5F990), UINT32_C(0x291124EF),
+          UINT32_C(0x00FCBFA5), UINT32_C(0x49B8C570), UINT32_C(0xBE595A25),
+          UINT32_C(0xBC094446), UINT32_C(0x5B4B8141)},
+         {UINT32_C(0x469191B6), UINT32_C(0xB22B4F04), UINT32_C(0xD73C4D38),
+          UINT32_C(0x10845AC8), UINT32_C(0xED0C8224), UINT32_C(0x39C9F0FB),
+          UINT32_C(0xF5813BEE), UINT32_C(0x7E009DFB)}},
+        {{UINT32_C(0xA61D09C0), UINT32_C(0xA47C2989), UINT32_C(0x59E55A9C),
+          UINT32_C(0x3706F456), UINT32_C(0xEA0259B9), UINT32_C(0x2373976F),
+          UINT32_C(0x077D20CC), UINT32_C(0x13FC0E09)},
+         {UINT32_C(0xE78D29CF), UINT32_C(0xBB24DD05), UINT32_C(0x822CFA02),
+          UINT32_C(0xD8757A67), UINT32_C(0x3C55A4C6), UINT32_C(0x36CA7486),
+          UINT32_C(0x3EEABBE1), UINT32_C(0x4234E689)}},
+        {{UINT32_C(0xB46BDB51), UINT32_C(0xA2F54D14), UINT32_C(0x675BB770),
+          UINT32_C(0x8A530B78), UINT32_C(0xDE9F1F8B), UINT32_C(0x617D7E8E),
+          UINT32_C(0x2DCC4712), UINT32_C(0x799B3E44)},
+         {UINT32_C(0xB486FE8C), UINT32_C(0x658A31D8), UINT32_C(0x163D4AF0),
+          UINT32_C(0x45BAFC29), UINT32_C(0xA5289C8D), UINT32_C(0x3A2C7F66),
+          UINT32_C(0xB91FF3DB), UINT32_C(0x4ECC3C7D)}},
+    },
+    {
+        {{UINT32_C(0xDF4DFD43), UINT32_C(0x738CF1C7), UINT32_C(0xE987084C),
+          UINT32_C(0x72943A2D), UINT32_C(0x2491FF24), UINT32_C(0xEA21C05F),
+          UINT32_C(0xDA050094), UINT32_C(0x3D3F4ED7)},
+         {UINT32_C(0x61C4054D), UINT32_C(0xF90644E4), UINT32_C(0x3A50E82A),
+          UINT32_C(0x25379214), UINT32_C(0xC7DEF970), UINT32_C(0x47EDB006),
+          UINT32_C(0x0F53F307), UINT32_C(0x0F8F031C)}},
+        {{UINT32_C(0x724976D5), UINT32_C(0x50FEB6D8), UINT32_C(0xF40C7720),
+          UINT32_C(0x57AA499F), UINT32_C(0x0DAAF428), UINT32_C(0x6B80AC54),
+          UINT32_C(0x1F6FC276), UINT32_C(0x7AC6845E)},
+         {UINT32_C(0x17A4B9C5), UINT32_C(0x8EC7FAB1), UINT32_C(0xED0C8F97),
+          UINT32_C(0x8336DD62), UINT32_C(0xB7B7104E), UINT32_C(0x6014A510),
+          UINT32_C(0xA2911C30), UINT32_C(0x4991A03B)}},
+        {{UINT32_C(0xCBCC9BA3), UINT32_C(0x6D353975), UINT32_C(0xC4564492),
+          UINT32_C(0x23E97E28), UINT32_C(0xF8AEED3E), UINT32_C(0xDF432FDA),
+          UINT32_C(0x6F6B472C), UINT32_C(0x11DB40DD)},
+         {UINT32_C(0x95AA0174), UINT32_C(0x5B87005B), UINT32_C(0x89D9F1A8),
+          UINT32_C(0x1DB41080), UINT32_C(0x689DF208), UINT32_C(0x5A6BC444),
+          UINT32_C(0xBF38FF8D), UINT32_C(0x16153F87)}},
+        {{UINT32_C(0xFFD3C814), UINT32_C(0xD217003F), UINT32_C(0xFD50AF95),
+          UINT32_C(0x1ADE64C3), UINT32_C(0x9FFB8BEB), UINT32_C(0x1936332C),
+          UINT32_C(0xD70CD8D8), UINT32_C(0x6EE322DC)},
+         {UINT32_C(0xF2A60976), UINT32_C(0xE40A0419), UINT32_C(0xEF93B05B),
+          UINT32_C(0xA62F6FA1), UINT32_C(0x596575FF), UINT32_C(0x5978206C),
+          UINT32_C(0xB68BFE5C), UINT32_C(0x5CDCA200)}},
+        {{UINT32_C(0xB7949E33), UINT32_C(0x3FB16AED), UINT32_C(0x40304A1B),
+          UINT32_C(0x34538928), UINT32_C(0x3BCA4239), UINT32_C(0x7FA35A34),
+          UINT32_C(0xEE76919E), UINT32_C(0x22FD1AEF)},
+         {UINT32_C(0x0F6A5D50), UINT32_C(0x1F8FE6A4), UINT32_C(0x26BBA46B),
+          UINT32_C(0x27CC704F), UINT32_C(0x3420CC52), UINT32_C(0x230FD0CA),
+          UINT32_C(0xB3A83D85), UINT32_C(0x3E9E4DA4)}},
+        {{UINT32_C(0x7F5CC75E), UINT32_C(0x1D82390E), UINT32_C(0x49D0A605),
+          UINT32_C(0x70256245), UINT32_C(0x4FF4BC44), UINT32_C(0x5B877813),
+          UINT32_C(0xB5EC02E4), UINT32_C(0x28E6A057)},
+         {UINT32_C(0x2E89FB84), UINT32_C(0xBC7A10DA), UINT32_C(0x20E1EA00),
+          UINT32_C(0x3AF182E5), UINT32_C(0x9C507274), UINT32_C(0x4B590FFA),
+          UINT32_C(0xAA7FD65B), UINT32_C(0x26BA94D6)}},
+        {{UINT32_C(0x238CC195), UINT32_C(0xC02CC77C), UINT32_C(0xA97EE3E4),
+          UINT32_C(0x3F175C97), UINT32_C(0xDFA1F9DC), UINT32_C(0x8A28FA23),
+          UINT32_C(0x1F968D15), UINT32_C(0x35CAC0FF)},
+         {UINT32_C(0x37C7C773), UINT32_C(0x0FC41B33), UINT32_C(0xBC999443),
+          UINT32_C(0x71E06B10), UINT32_C(0x2C87B0A4), UINT32_C(0x073A1ABA),
+          UINT32_C(0x9E5E8B70), UINT32_C(0x29F29B12)}},
+        {{UINT32_C(0xE491FE70), UINT32_C(0xAA25F348), UINT32_C(0xC1713992),
+          UINT32_C(0x9371F94B), UINT32_C(0x4FA08818), UINT32_C(0x674B478C),
+          UINT32_C(0xB1407431), UINT32_C(0x6F3C31FE)},
+         {UINT32_C(0xD93DD5E1), UINT32_C(0xBB7D37FB), UINT32_C(0x7E04EE7A),
+          UINT32_C(0xE34A40B8), UINT32_C(0xF3C33528), UINT32_C(0xCF82360D),
+          UINT32_C(0x01477712), UINT32_C(0x0A3B8FF5)}},
+        {{UINT32_C(0x6B718511), UINT32_C(0xA4591471), UINT32_C(0xD2FD6B9B),
+          UINT32_C(0x7B0CE8DE), UINT32_C(0x6845DBEF), UINT32_C(0xC42544FA),
+          UINT32_C(0x63AF476A), UINT32_C(0x456A6985)},
+         {UINT32_C(0x9CDE4E74), UINT32_C(0x5DD611F6), UINT32_C(0x2B346AEB),
+          UINT32_C(0x86095683), UINT32_C(0x6E75B3D7), UINT32_C(0xD15C5DA0),
+          UINT32_C(0xC72D5D2C), UINT32_C(0x220FFD73)}},
+        {{UINT32_C(0xD2ED888F), UINT32_C(0x478DA345), UINT32_C(0xE04CBCC7),
+          UINT32_C(0xA69D4FB9), UINT32_C(0xB3F1179D), UINT32_C(0xA427150A),
+          UINT32_C(0xD5CEA78A), UINT32_C(0x1DD3B8C2)},
+         {UINT32_C(0xB8628A22), UINT32_C(0x9462EFF0), UINT32_C(0xB2CB44A5),
+          UINT32_C(0xB2FFFF4A), UINT32_C(0x24039BA8), UINT32_C(0x8234A3FF),
+          UINT32_C(0x916DE889), UINT32_C(0x01BE7202)}},
+        {{UINT32_C(0x6DFCEF0B), UINT32_C(0x51066985), UINT32_C(0xDF20CDEE),
+          UINT32_C(0x25729D98), UINT32_C(0x9693E5EF), UINT32_C(0x872FD39D),
+          UINT32_C(0x2D859635), UINT32_C(0x72D03AE1)},
+         {UINT32_C(0xDACAEB82), UINT32_C(0x3F28F84E), UINT32_C(0xCB5284D7),
+          UINT32_C(0x9EB40FD6), UINT32_C(0xC5F54041), UINT32_C(0x66C2DCA6),
+          UINT32_C(0x1C1F2461), UINT32_C(0x4BDBA382)}},
+        {{UINT32_C(0x0E0ED176), UINT32_C(0xE5342197), UINT32_C(0xA225A47F),
+          UINT32_C(0xF588547A), UINT32_C(0x1FEB2259), UINT32_C(0xC83B54ED),
+          UINT32_C(0x92F3733D), UINT32_C(0x1B037913)},
+         {UINT32_C(0x2271ECFA), UINT32_C(0x935C9782), UINT32_C(0x53CFE07C),
+          UINT32_C(0x5F7E94A6), UINT32_C(0x1B40CA19), UINT32_C(0xBFF5B0E6),
+          UINT32_C(0x459445E1), UINT32_C(0x36C7851D)}},
+        {{UINT32_C(0x588C9748), UINT32_C(0xB6547971), UINT32_C(0x11970562),
+          UINT32_C(0xCFD8E81B), UINT32_C(0x702FE4FA), UINT32_C(0x41333C80),
+          UINT32_C(0x962A993B), UINT32_C(0x2F153C8C)},
+         {UINT32_C(0x8BDA48AC), UINT32_C(0x028BBD6A), UINT32_C(0xFE1DB02A),
+          UINT32_C(0x7B076F88), UINT32_C(0x078FB3FC), UINT32_C(0xC9560400),
+          UINT32_C(0x035907EA), UINT32_C(0x5DCC0946)}},
+        {{UINT32_C(0xA6233F1C), UINT32_C(0x93D7CF33), UINT32_C(0xDF2A187C),
+          UINT32_C(0x03184BC4), UINT32_C(0xE83DAC32), UINT32_C(0x291149BC),
+          UINT32_C(0xFAEDF216), UINT32_C(0x575F4279)},
+         {UINT32_C(0x086FC141), UINT32_C(0x101427B4), UINT32_C(0xD288562E),
+          UINT32_C(0xC924F2AE), UINT32_C(0xEEF5799A), UINT32_C(0xDB610463),
+          UINT32_C(0x6A09661D), UINT32_C(0x20F18767)}},
+        {{UINT32_C(0xF59D0C20), UINT32_C(0xE39BB775), UINT32_C(0x723A4EF2),
+          UINT32_C(0x18DA90E2), UINT32_C(0xF56B381B), UINT32_C(0x8E747A7B),
+          UINT32_C(0xF98F26DC), UINT32_C(0x7EF67224)},
+         {UINT32_C(0xE1F94B99), UINT32_C(0xB1373AF5), UINT32_C(0x0C3B6AA8),
+          UINT32_C(0x1076FBA6), UINT32_C(0xA3A7811C), UINT32_C(0x7FCD0017),
+          UINT32_C(0x46554E7E), UINT32_C(0x6D1A6973)}},
+        {{UINT32_C(0xB9CED2C2), UINT32_C(0xE5734077), UINT32_C(0x1F770914),
+          UINT32_C(0xC94D17F8), UINT32_C(0x1CD248EB), UINT32_C(0x58B47BCB),
+          UINT32_C(0x24804B6F), UINT32_C(0x2E06538C)},
+         {UINT32_C(0x32E7CA19), UINT32_C(0x275D933F), UINT32_C(0x1FC9241E),
+          UINT32_C(0x1B982B49), UINT32_C(0x3986B6AC), UINT32_C(0x8B8A6ED5),
+          UINT32_C(0x35B4EA6A), UINT32_C(0x17568221)}},
+    },
+    {
+        {{UINT32_C(0xE796327F), UINT32_C(0x090AD05A), UINT32_C(0xAD21DD4B),
+          UINT32_C(0xA78DAE5E), UINT32_C(0x9C2F8CBE), UINT32_C(0x8EEC9EDB),
+          UINT32_C(0x653E0F2D), UINT32_C(0x33E375E0)},
+         {UINT32_C(0x8D67AC72), UINT32_C(0xDA19EFF2), UINT32_C(0x2737AB8C),
+          UINT32_C(0xBFC7E62B), UINT32_C(0x4CF53C12), UINT32_C(0xBBF8BD1D),
+          UINT32_C(0x45C6D555), UINT32_C(0x5ABFE23F)}},
+        {{UINT32_C(0x0DE39342), UINT32_C(0x32460B33), UINT32_C(0xB8977067),
+          UINT32_C(0x3567454A), UINT32_C(0xF954592C), UINT32_C(0x10A1E47D),
+          UINT32_C(0x4DD019C4), UINT32_C(0x4DE8C6EF)},
+         {UINT32_C(0x1BDAAAFA), UINT32_C(0x1F1D296B), UINT32_C(0x3A75AD99),
+          UINT32_C(0x4E6B8E8F), UINT32_C(0xA27FE061), UINT32_C(0x259015E1),
+          UINT32_C(0x9F320632), UINT32_C(0x6B6A4820)}},
+        {{UINT32_C(0xA0B5E605), UINT32_C(0x8AA089AF), UINT32_C(0x1B4058FD),
+          UINT32_C(0x1D6C1EEE), UINT32_C(0xB4E89BEF), UINT32_C(0x1D920534),
+          UINT32_C(0x16163340), UINT32_C(0x722A3A35)},
+         {UINT32_C(0xF33B49B2), UINT32_C(0xA3B9178C), UINT32_C(0x65558E90),
+          UINT32_C(0xFF8FE9BB), UINT32_C(0x9794EFAE), UINT32_C(0x94766BC0),
+          UINT32_C(0xFDFAEB42), UINT32_C(0x79A1EFA2)}},
+        {{UINT32_C(0xBCB6D558), UINT32_C(0x2FE44B97), UINT32_C(0xDB8B0A79),
+          UINT32_C(0xB4F4F402), UINT32_C(0x247C32E5), UINT32_C(0xF53D8AB1),
+          UINT32_C(0x4DA4C009), UINT32_C(0x3B883CE5)},
+         {UINT32_C(0x2EC9F1C6), UINT32_C(0xB46168BD), UINT32_C(0x6B8FE01A),
+          UINT32_C(0xD40BDE7B), UINT32_C(0xCDFE509F), UINT32_C(0x60A5C168),
+          UINT32_C(0x23BE249E), UINT32_C(0x3314D878)}},
+        {{UINT32_C(0x4D9F5769), UINT32_C(0x02511A85), UINT32_C(0xB49D6A8E),
+          UINT32_C(0x8398F9BD), UINT32_C(0x5D2D7135), UINT32_C(0xE8D773F3),
+          UINT32_C(0x9DECC331), UINT32_C(0x09B3B8AB)},
+         {UINT32_C(0x584C11D9), UINT32_C(0x8D2B269B), UINT32_C(0x6B6B86A9),
+          UINT32_C(0xF7661944), UINT32_C(0xC7659AF7), UINT32_C(0x719A3620),
+          UINT32_C(0x37C27DBE), UINT32_C(0x3CFC8DF0)}},
+        {{UINT32_C(0x1145B14B), UINT32_C(0x5EE0BE06), UINT32_C(0x23193ED6),
+          UINT32_C(0xAC6950E4), UINT32_C(0xDF244C7F), UINT32_C(0x7291C44C),
+          UINT32_C(0x43D744EA), UINT32_C(0x4650C162)},
+         {UINT32_C(0x34A084D8), UINT32_C(0x60B92D3F), UINT32_C(0x376E5414),
+          UINT32_C(0xBBD44A0E), UINT32_C(0x0980F36C), UINT32_C(0x5C0E488A),
+          UINT32_C(0xD7991A09), UINT32_C(0x4E53FCCA)}},
+        {{UINT32_C(0x367B55C2), UINT32_C(0x7A2ADBCF), UINT32_C(0x1FED467E),
+          UINT32_C(0x96A88B75), UINT32_C(0xFB263845), UINT32_C(0x8E75E37E),
+          UINT32_C(0xEB508DD0), UINT32_C(0x4C2E47B8)},
+         {UINT32_C(0xB19FCD14), UINT32_C(0x20BF51DE), UINT32_C(0x14CB67D0),
+          UINT32_C(0xD9071749), UINT32_C(0x29EBDA7C), UINT32_C(0xEC90714B),
+          UINT32_C(0x634C0F2E), UINT32_C(0x4ACADAA6)}},
+        {{UINT32_C(0xEC715EC9), UINT32_C(0xA516B9B8), UINT32_C(0x42B8A87B),
+          UINT32_C(0xC7DCA263), UINT32_C(0xDA27B456), UINT32_C(0x2CE450C9),
+          UINT32_C(0x00A8819F), UINT32_C(0x3C974812)},
+         {UINT32_C(0xECDED574), UINT32_C(0xF4822C23), UINT32_C(0x19FA48D4),
+          UINT32_C(0xFA737FAD), UINT32_C(0x45D718E0), UINT32_C(0xE34B2F2A),
+          UINT32_C(0xBEA7B540), UINT32_C(0x1D6F19FE)}},
+        {{UINT32_C(0x98E24789), UINT32_C(0xADC8FCE7), UINT32_C(0x45869609),
+          UINT32_C(0xFE2F890C), UINT32_C(0x78A35C19), UINT32_C(0x6466E03C),
+          UINT32_C(0xC1F34AA9), UINT32_C(0x24C70FED)},
+         {UINT32_C(0x57747DD1), UINT32_C(0x89530F75), UINT32_C(0x2B8CDE2D),
+          UINT32_C(0x343DE05B), UINT32_C(0x35CC8D5A), UINT32_C(0xC33134E3),
+          UINT32_C(0xAC9B4F2B), UINT32_C(0x3CCEFC38)}},
+        {{UINT32_C(0xEF923364), UINT32_C(0x84C904B8), UINT32_C(0xBDDD31D8),
+          UINT32_C(0x46E1FECF), UINT32_C(0xFAE79B6B), UINT32_C(0xA8126DD6),
+          UINT32_C(0xFBF05C9A), UINT32_C(0x4A53C034)},
+         {UINT32_C(0xBE8F255F), UINT32_C(0x44CA3ACB), UINT32_C(0xEC319885),
+          UINT32_C(0x6F0FD374), UINT32_C(0xF1836DC2), UINT32_C(0xADBCB4AA),
+          UINT32_C(0x65187EE9), UINT32_C(0x6CC3A596)}},
+        {{UINT32_C(0xB397B5E7), UINT32_C(0x941E7821), UINT32_C(0xFEE2A9D5),
+          UINT32_C(0xD3457371), UINT32_C(0x66382F60), UINT32_C(0x9F69BE44),
+          UINT32_C(0xA1F49E9B), UINT32_C(0x6DCEAD04)},
+         {UINT32_C(0x3BF21647), UINT32_C(0xDC6BC23B), UINT32_C(0xB5271BE9),
+          UINT32_C(0x1500FD7F), UINT32_C(0xF23FDF3D), UINT32_C(0x9B0994DD),
+          UINT32_C(0x45065CF7), UINT32_C(0x38A2ECEB)}},
+        {{UINT32_C(0x0DCA8BF4), UINT32_C(0x2667CEFE), UINT32_C(0xE46EB469),
+          UINT32_C(0x8227ACB3), UINT32_C(0xA75C5B8B), UINT32_C(0x4C20677D),
+          UINT32_C(0xB36ACDFE), UINT32_C(0x224FC5B4)},
+         {UINT32_C(0x7A6A01D3), UINT32_C(0xA0007E14), UINT32_C(0xF8A64EED),
+          UINT32_C(0x15C79558), UINT32_C(0x93DEDC09), UINT32_C(0xFB58A76A),
+          UINT32_C(0x26F10A98), UINT32_C(0x2057DDDC)}},
+        {{UINT32_C(0xBDB27AE4), UINT32_C(0x1FF658AE), UINT32_C(0xDDD96647),
+          UINT32_C(0x7F30DF57), UINT32_C(0xC7294313), UINT32_C(0x63490B8D),
+          UINT32_C(0x5435869E), UINT32_C(0x0EAEC573)},
+         {UINT32_C(0xDF115B78), UINT32_C(0x85F05C49), UINT32_C(0x62992F5D),
+          UINT32_C(0x95739C0C), UINT32_C(0x2B573963), UINT32_C(0x72F14319),
+          UINT32_C(0x86328FF4), UINT32_C(0x05600E64)}},
+        {{UINT32_C(0xEAB0F425), UINT32_C(0x9BE7331F), UINT32_C(0x74447C20),
+          UINT32_C(0x2E4CF5AA), UINT32_C(0x66243D2A), UINT32_C(0x9B26F512),
+          UINT32_C(0x84AB5627), UINT32_C(0x77C96722)},
+         {UINT32_C(0x601673B4), UINT32_C(0xEC545427), UINT32_C(0x2F127AF7),
+          UINT32_C(0xEF6A34FB), UINT32_C(0xE2DFD269), UINT32_C(0x519559C1),
+          UINT32_C(0x8258E37A), UINT32_C(0x34D7D754)}},
+        {{UINT32_C(0x5E8B5281), UINT32_C(0xC113747B), UINT32_C(0xE04D779B),
+          UINT32_C(0x0C085456), UINT32_C(0x1CCBCFC6), UINT32_C(0x3E326052),
+          UINT32_C(0x2A37D19F), UINT32_C(0x5C954CC1)},
+         {UINT32_C(0x9124435B), UINT32_C(0xB1A4A5B3), UINT32_C(0x18ED98E7),
+          UINT32_C(0x5E8B8D41), UINT32_C(0x144A3793), UINT32_C(0xC973D969),
+          UINT32_C(0x88DD8B49), UINT32_C(0x0CB98CC8)}},
+        {{UINT32_C(0xB48D04DF), UINT32_C(0x0E0233B2), UINT32_C(0x7BEAA4A5),
+          UINT32_C(0x1B3916E0), UINT32_C(0xB672BE8C), UINT32_C(0xA24A4BE4),
+          UINT32_C(0x845AB94D), UINT32_C(0x7A61506D)},
+         {UINT32_C(0xE7F4CA3B), UINT32_C(0x160DFA0F), UINT32_C(0xD84C1148),
+          UINT32_C(0xA9562C89), UINT32_C(0x92A276EB), UINT32_C(0x52979B95),
+          UINT32_C(0x924E86E9), UINT32_C(0x17869B53)}},
+    },
+    {
+        {{UINT32_C(0x1A86D0D8), UINT32_C(0x5D39F478), UINT32_C(0xFB8BC8A9),
+          UINT32_C(0xDE5932DA), UINT32_C(0x2F5B4B70), UINT32_C(0xD706C6D7),
+          UINT32_C(0x8A36AFC2), UINT32_C(0x53F450FC)},
+         {UINT32_C(0x1E550B3B), UINT32_C(0xE1DC3540), UINT32_C(0x8B7EB6D2),
+          UINT32_C(0x475507DC), UINT32_C(0xDFA2E5F7), UINT32_C(0xF803F78A),
+          UINT32_C(0xC48097FF), UINT32_C(0x40B5F263)}},
+        {{UINT32_C(0x226CDB1F), UINT32_C(0x336FB00E), UINT32_C(0x88215C40),
+          UINT32_C(0xDDC1BB02), UINT32_C(0x73C07FD0), UINT32_C(0x6C4DD40E),
+          UINT32_C(0x8F7D15E7), UINT32_C(0x4D0D2E49)},
+         {UINT32_C(0xD2061402), UINT32_C(0xAF96E9B3), UINT32_C(0x1372FCF8),
+          UINT32_C(0x15A3084A), UINT32_C(0x307B02D6), UINT32_C(0x91B571E6),
+          UINT32_C(0x53AE7705), UINT32_C(0x2239592F)}},
+        {{UINT32_C(0xC20B6645), UINT32_C(0x7D8615A1), UINT32_C(0xC7C4465B),
+          UINT32_C(0xF4875767), UINT32_C(0x861702AB), UINT32_C(0xF6D3E718),
+          UINT32_C(0x131F726A), UINT32_C(0x7F014A53)},
+         {UINT32_C(0xDAAB77CA), UINT32_C(0x30809F8F), UINT32_C(0x28F944D3),
+          UINT32_C(0x7CE8DC61), UINT32_C(0x9AEEF6A1), UINT32_C(0xF915111D),
+          UINT32_C(0x206902FD), UINT32_C(0x246D7CC8)}},
+        {{UINT32_C(0xEF806225), UINT32_C(0x7677488B), UINT32_C(0xF4C75EAE),
+          UINT32_C(0x994C8104), UINT32_C(0x4E0C8988), UINT32_C(0x17586D4E),
+          UINT32_C(0x90E33A2A), UINT32_C(0x70E52580)},
+         {UINT32_C(0x022D2FED), UINT32_C(0xB993F26A), UINT32_C(0x689FBFBD),
+          UINT32_C(0x955C130D), UINT32_C(0xA3612E8E), UINT32_C(0x0D3D1C63),
+          UINT32_C(0xB91A8DE6), UINT32_C(0x423D73E1)}},
+        {{UINT32_C(0x3027164F), UINT32_C(0x7274BE08), UINT32_C(0x42FDB769),
+          UINT32_C(0xDE907B49), UINT32_C(0xB697060D), UINT32_C(0x61D74449),
+          UINT32_C(0x26602CC9), UINT32_C(0x18A5FDC2)},
+         {UINT32_C(0x049CAF4A), UINT32_C(0xB08DC02B), UINT32_C(0x78DBA1F1),
+          UINT32_C(0xC84AF485), UINT32_C(0x7178E4DF), UINT32_C(0x0A5B3519),
+          UINT32_C(0x5B26D0FE), UINT32_C(0x6EC7A7A5)}},
+        {{UINT32_C(0x88554F05), UINT32_C(0xDEF1782F), UINT32_C(0xD8D6DF47),
+          UINT32_C(0xB73E7333), UINT32_C(0x90E9C67A), UINT32_C(0x1DDF9022),
+          UINT32_C(0xD56181AC), UINT32_C(0x5D217B51)},
+         {UINT32_C(0xE27F90EE), UINT32_C(0x7A338C7B), UINT32_C(0x0D84A177),
+          UINT32_C(0xB97CCD2A), UINT32_C(0x7C5E3FA9), UINT32_C(0x3E101601),
+          UINT32_C(0x30FF0918), UINT32_C(0x2706E77C)}},
+        {{UINT32_C(0x72A7CB9F), UINT32_C(0x1BD1274F), UINT32_C(0x0622DB90),
+          UINT32_C(0x8B60357A), UINT32_C(0x2151BB23), UINT32_C(0x0140E14A),
+          UINT32_C(0xE9A30C4C), UINT32_C(0x358D7DDA)},
+         {UINT32_C(0x89BFB2C6), UINT32_C(0x3B153060), UINT32_C(0xB6757C69),
+          UINT32_C(0x47462C79), UINT32_C(0xB43EF986), UINT32_C(0x2B22239D),
+          UINT32_C(0x0B774DE3), UINT32_C(0x6793671F)}},
+        {{UINT32_C(0xF6F8EDC6), UINT32_C(0x99EDB02E), UINT32_C(0xC4257DD9),
+          UINT32_C(0x24432760), UINT32_C(0x0336EED2), UINT32_C(0x4FDD7301),
+          UINT32_C(0xF6C6506B), UINT32_C(0x44879709)},
+         {UINT32_C(0x13F18D89), UINT32_C(0x107C7DE2), UINT32_C(0xA5701FBD),
+          UINT32_C(0x71C71DFB), UINT32_C(0xC7DE3E0B), UINT32_C(0x97017E24),
+          UINT32_C(0xFC9EDDC2), UINT32_C(0x0F8D7E09)}},
+        {{UINT32_C(0x3897E01D), UINT32_C(0x7A0BB3B1), UINT32_C(0xC5892BDE),
+          UINT32_C(0x7FD4F504), UINT32_C(0xAB752928), UINT32_C(0x2EA9AA77),
+          UINT32_C(0x9078B466), UINT32_C(0x19A82F55)},
+         {UINT32_C(0x55A0F0D9), UINT32_C(0xEF2842C5), UINT32_C(0x15B6F2B4),
+          UINT32_C(0x5501EEE9), UINT32_C(0x942AA4B4), UINT32_C(0x9665EA6F),
+          UINT32_C(0x0E707C32), UINT32_C(0x015F41F4)}},
+        {{UINT32_C(0x9C6B6FD6), UINT32_C(0x1B4D6A91), UINT32_C(0x68217AFC),
+          UINT32_C(0xCFD2CEE9), UINT32_C(0xBBC9284D), UINT32_C(0xC5076256),
+          UINT32_C(0xAC36547B), UINT32_C(0x4C7F4EEF)},
+         {UINT32_C(0x65EE1907), UINT32_C(0xAB1AAD2C), UINT32_C(0xBAC25425),
+          UINT32_C(0xBCFE8C77), UINT32_C(0xC9048A35), UINT32_C(0x38BA0F85),
+          UINT32_C(0x60A035F6), UINT32_C(0x300E6AC4)}},
+        {{UINT32_C(0x34707CC6), UINT32_C(0xA8EDBC5E), UINT32_C(0x56ADFC16),
+          UINT32_C(0x3DA6BC51), UINT32_C(0xCA8B6F3F), UINT32_C(0x5C7CB5E1),
+          UINT32_C(0x2D612DFA), UINT32_C(0x76E4A028)},
+         {UINT32_C(0x64F49D39), UINT32_C(0x75AB66FD), UINT32_C(0xC387A739),
+          UINT32_C(0x5AF9879D), UINT32_C(0x3E9EDBCF), UINT32_C(0x83964808),
+          UINT32_C(0x7F4C4FFE), UINT32_C(0x555D8BBD)}},
+        {{UINT32_C(0x3C5590B0), UINT32_C(0xAAE8A2FE), UINT32_C(0x8AB34213),
+          UINT32_C(0x461C6CCC), UINT32_C(0x9E719B77), UINT32_C(0xB2F3E822),
+          UINT32_C(0x663188BB), UINT32_C(0x25B8FCA8)},
+         {UINT32_C(0x72548131), UINT32_C(0xAA7A047B), UINT32_C(0x189FA6F0),
+          UINT32_C(0x0878FFEE), UINT32_C(0xCE3E17C3), UINT32_C(0x9E7FB402),
+          UINT32_C(0x44418277), UINT32_C(0x6F260D93)}},
+        {{UINT32_C(0xB703B647), UINT32_C(0x0EF1C290), UINT32_C(0x651673E4),
+          UINT32_C(0x995009FA), UINT32_C(0xBE46362D), UINT32_C(0x661F76D7),
+          UINT32_C(0x23E56E7A), UINT32_C(0x74B00FD1)},
+         {UINT32_C(0xA1A50E4B), UINT32_C(0x9557D0AB), UINT32_C(0x587688CE),
+          UINT32_C(0xC5A1CF95), UINT32_C(0x7AE08ECA), UINT32_C(0x2A14D1B2),
+          UINT32_C(0x3C23D507), UINT32_C(0x2DA8816C)}},
+        {{UINT32_C(0xB9934883), UINT32_C(0x51CB405F), UINT32_C(0x01A6864B),
+          UINT32_C(0xC99A67D4), UINT32_C(0x6CDFFFC3), UINT32_C(0xCCF62233),
+          UINT32_C(0x98FE0B79), UINT32_C(0x2938F9F9)},
+         {UINT32_C(0x39A5AA28), UINT32_C(0x77666911), UINT32_C(0x2427BFC0),
+          UINT32_C(0xDF56CBB5), UINT32_C(0x189EB66D), UINT32_C(0xA39BE968),
+          UINT32_C(0xA64FD2AB), UINT32_C(0x71E6E105)}},
+        {{UINT32_C(0x60F9D20B), UINT32_C(0xA0C6F795), UINT32_C(0x765670CC),
+          UINT32_C(0xE06DC8BB), UINT32_C(0xA67275E0), UINT32_C(0x9FA1DD58),
+          UINT32_C(0xE2D23BBB), UINT32_C(0x0F7F670D)},
+         {UINT32_C(0x33FB15EA), UINT32_C(0xF8F07CF3), UINT32_C(0x723A0271),
+          UINT32_C(0x1D09B592), UINT32_C(0x4E6FCAAB), UINT32_C(0xF1402923),
+          UINT32_C(0xAE301940), UINT32_C(0x05BE1273)}},
+        {{UINT32_C(0x114AFD1E), UINT32_C(0x2D83906C), UINT32_C(0xC88E5761),
+          UINT32_C(0x091474FD), UINT32_C(0xEF9E4F9B), UINT32_C(0xAFF18EEB),
+          UINT32_C(0xF4E646ED), UINT32_C(0x136ECAE5)},
+         {UINT32_C(0xEB01808F), UINT32_C(0xEF4526D0), UINT32_C(0x940C0AEC),
+          UINT32_C(0x3923EBBA), UINT32_C(0xA437F460), UINT32_C(0xAB34160C),
+          UINT32_C(0x421AD57C), UINT32_C(0x7A46966E)}},
+    }};
+
+/*-
+ * Q := 2P, both projective, Q and P same pointers OK
+ * Autogenerated: op3/dbl_proj_any.op3
+ * https://eprint.iacr.org/2015/1060 Alg 3
+ */
+static void point_double(pt_prj_t *Q, const pt_prj_t *P) {
+    /* temporary variables */
+    fe_t t0, t1, t2, t3, t4;
+    /* constants */
+    const limb_t *a = const_a;
+    const limb_t *b3 = const_b3;
+    /* set pointers for legacy 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 *Z3 = Q->Z;
+
+    /* the curve arith formula */
+    fiat_id_GostR3410_2001_TestParamSet_square(t0, X);
+    fiat_id_GostR3410_2001_TestParamSet_square(t1, Y);
+    fiat_id_GostR3410_2001_TestParamSet_square(t2, Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, X, Y);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, t3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, Y, Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, X, Z);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, a, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, b3, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, X3, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, t1, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, b3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t3, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, a, t3);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, t0, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t0, Z3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t0, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t0, t3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t2, t4, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t2, t3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t2, t1);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3);
+}
+
+/*-
+ * 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_any.op3
+ * https://eprint.iacr.org/2015/1060 Alg 2
+ */
+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, t4, t5;
+    /* constants */
+    const limb_t *a = const_a;
+    const limb_t *b3 = const_b3;
+    /* set pointers for legacy curve arith */
+    const limb_t *X1 = Q->X;
+    const limb_t *Y1 = Q->Y;
+    const limb_t *Z1 = Q->Z;
+    const limb_t *X2 = P->X;
+    const limb_t *Y2 = P->Y;
+    fe_t X3;
+    fe_t Y3;
+    fe_t Z3;
+    limb_t nz;
+
+    /* check P for affine inf */
+    fiat_id_GostR3410_2001_TestParamSet_nonzero(&nz, P->Y);
+
+    /* the curve arith formula */
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, X2, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Y1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, X2, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, X1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t5, Y2, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, t5, Y1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0);
+
+    /* if P is inf, throw all that away and take Q */
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(R->X, nz, Q->X, X3);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Y, nz, Q->Y, Y3);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Z, nz, Q->Z, Z3);
+}
+
+/*-
+ * R := Q + P all projective.
+ * R and Q same pointers OK
+ * R and P same pointers not OK
+ * Autogenerated: op3/add_proj_any.op3
+ * https://eprint.iacr.org/2015/1060 Alg 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, t4, t5;
+    /* constants */
+    const limb_t *a = const_a;
+    const limb_t *b3 = const_b3;
+    /* set pointers for legacy curve arith */
+    const limb_t *X1 = Q->X;
+    const limb_t *Y1 = Q->Y;
+    const limb_t *Z1 = Q->Z;
+    const limb_t *X2 = P->X;
+    const limb_t *Y2 = P->Y;
+    const limb_t *Z2 = P->Z;
+    limb_t *X3 = R->X;
+    limb_t *Y3 = R->Y;
+    limb_t *Z3 = R->Z;
+
+    /* the curve arith formula */
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, Z1, Z2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t3, X1, Y1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, X2, Y2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, X2, Z2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, t4, t5);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t4, t4, t5);
+    fiat_id_GostR3410_2001_TestParamSet_add(t5, Y1, Z1);
+    fiat_id_GostR3410_2001_TestParamSet_add(X3, Y2, Z2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t5, t5, X3);
+    fiat_id_GostR3410_2001_TestParamSet_add(X3, t1, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t5, t5, X3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2);
+    fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2);
+    fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4);
+    fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4);
+    fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3);
+    fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0);
+    fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1);
+    fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3);
+    fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0);
+}
+
+/* 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;
+
+    fe_copy(precomp[0].X, P->X);
+    fe_copy(precomp[0].Y, P->Y);
+    fe_copy(precomp[0].Z, const_one);
+    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[32], int idx) {
+    int widx, rshift;
+
+    widx = idx >> 3;
+    rshift = idx & 0x7;
+
+    if (idx < 0 || widx >= 32) 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[52], const unsigned char in[32]) {
+    int i;
+    char window, d;
+
+    window = (in[0] & (DRADIX_WNAF - 1)) | 1;
+    for (i = 0; i < 51; 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[257], const unsigned char in[32]) {
+    int i;
+    char window, d;
+
+    window = in[0] & (DRADIX_WNAF - 1);
+    for (i = 0; i < 257; 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[32],
+                              const unsigned char b[32], const pt_aff_t *P) {
+    int i, d, is_neg, is_inf = 1, flipped = 0;
+    char anaf[257] = {0};
+    char bnaf[257] = {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 = 256; i >= 0; i--) {
+        if (!is_inf) point_double(&Q, &Q);
+        if ((d = bnaf[i])) {
+            if ((is_neg = d < 0) != flipped) {
+                fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y);
+                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.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_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y);
+                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.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.Z);
+    }
+
+    if (flipped) {
+        /* correct sign */
+        fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y);
+    }
+
+    /* convert to affine -- NB depends on coordinate system */
+    fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_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[32],
+                           const pt_aff_t *P) {
+    int i, j, d, diff, is_neg;
+    char rnaf[52] = {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[51] - 1) >> 1;
+    for (j = 0; j < DRADIX / 2; j++) {
+        diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1;
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, diff, Q.X,
+                                                      precomp[j].X);
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, diff, Q.Y,
+                                                      precomp[j].Y);
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, diff, Q.Z,
+                                                      precomp[j].Z);
+    }
+
+    for (i = 50; 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_GostR3410_2001_TestParamSet_selectznz(lut.X, diff, lut.X,
+                                                          precomp[j].X);
+            fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, diff, lut.Y,
+                                                          precomp[j].Y);
+            fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Z, diff, lut.Z,
+                                                          precomp[j].Z);
+        }
+        /* negate lut point if digit is negative */
+        fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y);
+        fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y,
+                                                      out->Y);
+        point_add_proj(&Q, &Q, &lut);
+    }
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
+    /* conditionally subtract P if the scalar was even */
+    fe_copy(lut.X, precomp[0].X);
+    fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, precomp[0].Y);
+    fe_copy(lut.Z, precomp[0].Z);
+    point_add_proj(&lut, &lut, &Q);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, lut.X,
+                                                  Q.X);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, lut.Y,
+                                                  Q.Y);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, lut.Z,
+                                                  Q.Z);
+
+    /* convert to affine -- NB depends on coordinate system */
+    fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_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[32]) {
+    int i, j, k, d, diff, is_neg = 0;
+    char rnaf[52] = {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.Z);
+
+#if defined(_MSC_VER)
+    /* result still unsigned: yes we know */
+#pragma warning(push)
+#pragma warning(disable : 4146)
+#endif
+
+    for (i = 1; i >= 0; i--) {
+        for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q);
+        for (j = 0; j < 27; j++) {
+            if (j * 2 + i > 51) continue;
+            d = rnaf[j * 2 + 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_GostR3410_2001_TestParamSet_selectznz(
+                    lut.X, diff, lut.X, lut_cmb[j][k].X);
+                fiat_id_GostR3410_2001_TestParamSet_selectznz(
+                    lut.Y, diff, lut.Y, lut_cmb[j][k].Y);
+            }
+            /* negate lut point if digit is negative */
+            fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y);
+            fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y,
+                                                          out->Y);
+            point_add_mixed(&Q, &Q, &lut);
+        }
+    }
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
+    /* conditionally subtract P if the scalar was even */
+    fe_copy(lut.X, lut_cmb[0][0].X);
+    fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, lut_cmb[0][0].Y);
+    point_add_mixed(&R, &Q, &lut);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, R.X, Q.X);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, R.Y, Q.Y);
+    fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, R.Z, Q.Z);
+
+    /* convert to affine -- NB depends on coordinate system */
+    fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z);
+    fiat_id_GostR3410_2001_TestParamSet_mul(out->Y, Q.Y, Q.Z);
+}
+
+static void point_mul_two(unsigned char outx[32], unsigned char outy[32],
+                          const unsigned char a[32], const unsigned char b[32],
+                          const unsigned char inx[32],
+                          const unsigned char iny[32]) {
+    pt_aff_t P;
+
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx);
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y);
+    /* simultaneous scalar multiplication */
+    var_smul_wnaf_two(&P, a, b, &P);
+
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y);
+}
+
+static void point_mul_g(unsigned char outx[32], unsigned char outy[32],
+                        const unsigned char scalar[32]) {
+    pt_aff_t P;
+
+    /* fixed scmul function */
+    fixed_smul_cmb(&P, scalar);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y);
+}
+
+static void point_mul(unsigned char outx[32], unsigned char outy[32],
+                      const unsigned char scalar[32],
+                      const unsigned char inx[32],
+                      const unsigned char iny[32]) {
+    pt_aff_t P;
+
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx);
+    fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y);
+    /* var scmul function */
+    var_smul_rwnaf(&P, scalar, &P);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X);
+    fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y);
+}
+
+#include <openssl/ec.h>
+
+static const unsigned char const_zb[32] = {0};
+
+    int
+    point_mul_two_id_GostR3410_2001_TestParamSet(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[32];
+    unsigned char b_y[32];
+    unsigned char b_n[32];
+    unsigned char b_m[32];
+    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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
+        BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32)
+        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, 32) == 0 &&
+        CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
+        if (!EC_POINT_set_to_infinity(group, r)) goto err;
+    } else {
+        /* otherwise, pack the bytes into the result */
+        if (BN_lebin2bn(b_x, 32, x) == NULL ||
+            BN_lebin2bn(b_y, 32, 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_GostR3410_2001_TestParamSet(const EC_GROUP *group, EC_POINT *r,
+                                             const EC_POINT *q, const BIGNUM *m,
+                                             BN_CTX *ctx) {
+    int ret = 0;
+    unsigned char b_x[32];
+    unsigned char b_y[32];
+    unsigned char b_m[32];
+    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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 ||
+        BN_bn2lebinpad(m, b_m, 32) != 32)
+        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, 32) == 0 &&
+        CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
+        if (!EC_POINT_set_to_infinity(group, r)) goto err;
+    } else {
+        /* otherwise, pack the bytes into the result */
+        if (BN_lebin2bn(b_x, 32, x) == NULL ||
+            BN_lebin2bn(b_y, 32, 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_GostR3410_2001_TestParamSet(const EC_GROUP *group,
+                                               EC_POINT *r, const BIGNUM *n,
+                                               BN_CTX *ctx) {
+    int ret = 0;
+    unsigned char b_x[32];
+    unsigned char b_y[32];
+    unsigned char b_n[32];
+    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, 32) != 32)
+        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, 32) == 0 &&
+        CRYPTO_memcmp(const_zb, b_y, 32) == 0) {
+        if (!EC_POINT_set_to_infinity(group, r)) goto err;
+    } else {
+        /* otherwise, pack the bytes into the result */
+        if (BN_lebin2bn(b_x, 32, x) == NULL ||
+            BN_lebin2bn(b_y, 32, 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__ */