cosmopolitan/third_party/python/Modules/_lol3.c
Justine Tunney 39bf41f4eb Make numerous improvements
- Python static hello world now 1.8mb
- Python static fully loaded now 10mb
- Python HTTPS client now uses MbedTLS
- Python REPL now completes import stmts
- Increase stack size for Python for now
- Begin synthesizing posixpath and ntpath
- Restore Python \N{UNICODE NAME} support
- Restore Python NFKD symbol normalization
- Add optimized code path for Intel SHA-NI
- Get more Python unit tests passing faster
- Get Python help() pagination working on NT
- Python hashlib now supports MbedTLS PBKDF2
- Make memcpy/memmove/memcmp/bcmp/etc. faster
- Add Mersenne Twister and Vigna to LIBC_RAND
- Provide privileged __printf() for error code
- Fix zipos opendir() so that it reports ENOTDIR
- Add basic chmod() implementation for Windows NT
- Add Cosmo's best functions to Python cosmo module
- Pin function trace indent depth to that of caller
- Show memory diagram on invalid access in MODE=dbg
- Differentiate stack overflow on crash in MODE=dbg
- Add stb_truetype and tools for analyzing font files
- Upgrade to UNICODE 13 and reduce its binary footprint
- COMPILE.COM now logs resource usage of build commands
- Start implementing basic poll() support on bare metal
- Set getauxval(AT_EXECFN) to GetModuleFileName() on NT
- Add descriptions to strerror() in non-TINY build modes
- Add COUNTBRANCH() macro to help with micro-optimizations
- Make error / backtrace / asan / memory code more unbreakable
- Add fast perfect C implementation of μ-Law and a-Law audio codecs
- Make strtol() functions consistent with other libc implementations
- Improve Linenoise implementation (see also github.com/jart/bestline)
- COMPILE.COM now suppresses stdout/stderr of successful build commands
2021-09-28 01:52:34 -07:00

7986 lines
252 KiB
C

/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:8;coding:utf-8 -*-│
│vi: set net ft=c ts=4 sts=4 sw=4 fenc=utf-8 :vi│
╞══════════════════════════════════════════════════════════════════════════════╡
│ Python 3 │
│ https://docs.python.org/3/license.html │
╚─────────────────────────────────────────────────────────────────────────────*/
#include "third_party/python/Include/abstract.h"
#include "third_party/python/Include/bytesobject.h"
#include "third_party/python/Include/descrobject.h"
#include "third_party/python/Include/import.h"
#include "third_party/python/Include/longobject.h"
#include "third_party/python/Include/modsupport.h"
#include "third_party/python/Include/object.h"
#include "third_party/python/Include/objimpl.h"
#include "third_party/python/Include/pyerrors.h"
#include "third_party/python/Include/pystrhex.h"
#include "third_party/python/Include/yoink.h"
PYTHON_PROVIDE("_sha3");
PYTHON_PROVIDE("_sha3.__doc__");
PYTHON_PROVIDE("_sha3.__loader__");
PYTHON_PROVIDE("_sha3.__name__");
PYTHON_PROVIDE("_sha3.__package__");
PYTHON_PROVIDE("_sha3.__spec__");
PYTHON_PROVIDE("_sha3.implementation");
PYTHON_PROVIDE("_sha3.keccakopt");
PYTHON_PROVIDE("_sha3.sha3_224");
PYTHON_PROVIDE("_sha3.sha3_256");
PYTHON_PROVIDE("_sha3.sha3_384");
PYTHON_PROVIDE("_sha3.sha3_512");
PYTHON_PROVIDE("_sha3.shake_128");
PYTHON_PROVIDE("_sha3.shake_256");
typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHLEN = 2 } HashReturn;
typedef struct KeccakWidth1600_SpongeInstanceStruct {
unsigned char state[200] forcealign(8);
unsigned int rate;
unsigned int byteIOIndex;
int squeezing;
} KeccakWidth1600_SpongeInstance;
typedef struct {
KeccakWidth1600_SpongeInstance sponge;
unsigned int fixedOutputLength;
unsigned char delimitedSuffix;
} Keccak_HashInstance;
static const uint64_t kKeccakf[24] = {
0x0000000000000001, 0x0000000000008082, 0x800000000000808a,
0x8000000080008000, 0x000000000000808b, 0x0000000080000001,
0x8000000080008081, 0x8000000000008009, 0x000000000000008a,
0x0000000000000088, 0x0000000080008009, 0x000000008000000a,
0x000000008000808b, 0x800000000000008b, 0x8000000000008089,
0x8000000000008003, 0x8000000000008002, 0x8000000000000080,
0x000000000000800a, 0x800000008000000a, 0x8000000080008081,
0x8000000000008080, 0x0000000080000001, 0x8000000080008008,
};
static void _PySHA3_KeccakP1600_Initialize(void *state) {
bzero(state, 200);
((uint64_t *)state)[1] = ~(uint64_t)0;
((uint64_t *)state)[2] = ~(uint64_t)0;
((uint64_t *)state)[8] = ~(uint64_t)0;
((uint64_t *)state)[12] = ~(uint64_t)0;
((uint64_t *)state)[17] = ~(uint64_t)0;
((uint64_t *)state)[20] = ~(uint64_t)0;
}
static void _PySHA3_KeccakP1600_AddBytesInLane(void *state,
unsigned int lanePosition,
const unsigned char *data,
unsigned int offset,
unsigned int length) {
uint64_t lane;
if (length == 0) return;
if (length == 1)
lane = data[0];
else {
lane = 0;
memcpy(&lane, data, length);
}
lane <<= offset * 8;
((uint64_t *)state)[lanePosition] ^= lane;
}
static void _PySHA3_KeccakP1600_AddLanes(void *state, const unsigned char *data,
unsigned int laneCount) {
unsigned int i = 0;
for (; (i + 8) <= laneCount; i += 8) {
((uint64_t *)state)[i + 0] ^= ((uint64_t *)data)[i + 0];
((uint64_t *)state)[i + 1] ^= ((uint64_t *)data)[i + 1];
((uint64_t *)state)[i + 2] ^= ((uint64_t *)data)[i + 2];
((uint64_t *)state)[i + 3] ^= ((uint64_t *)data)[i + 3];
((uint64_t *)state)[i + 4] ^= ((uint64_t *)data)[i + 4];
((uint64_t *)state)[i + 5] ^= ((uint64_t *)data)[i + 5];
((uint64_t *)state)[i + 6] ^= ((uint64_t *)data)[i + 6];
((uint64_t *)state)[i + 7] ^= ((uint64_t *)data)[i + 7];
}
for (; (i + 4) <= laneCount; i += 4) {
((uint64_t *)state)[i + 0] ^= ((uint64_t *)data)[i + 0];
((uint64_t *)state)[i + 1] ^= ((uint64_t *)data)[i + 1];
((uint64_t *)state)[i + 2] ^= ((uint64_t *)data)[i + 2];
((uint64_t *)state)[i + 3] ^= ((uint64_t *)data)[i + 3];
}
for (; (i + 2) <= laneCount; i += 2) {
((uint64_t *)state)[i + 0] ^= ((uint64_t *)data)[i + 0];
((uint64_t *)state)[i + 1] ^= ((uint64_t *)data)[i + 1];
}
if (i < laneCount) {
((uint64_t *)state)[i + 0] ^= ((uint64_t *)data)[i + 0];
}
}
static void _PySHA3_KeccakP1600_AddBytes(void *state, const unsigned char *data,
unsigned int offset,
unsigned int length) {
if ((offset) == 0) {
_PySHA3_KeccakP1600_AddLanes(state, data, (length) / 8);
_PySHA3_KeccakP1600_AddBytesInLane(
state, (length) / 8, (data) + ((length) / 8) * 8, 0, (length) % 8);
} else {
unsigned int _sizeLeft = (length);
unsigned int _lanePosition = (offset) / 8;
unsigned int _offsetInLane = (offset) % 8;
const unsigned char *_curData = (data);
while (_sizeLeft > 0) {
unsigned int _bytesInLane = 8 - _offsetInLane;
if (_bytesInLane > _sizeLeft) _bytesInLane = _sizeLeft;
_PySHA3_KeccakP1600_AddBytesInLane(state, _lanePosition, _curData,
_offsetInLane, _bytesInLane);
_sizeLeft -= _bytesInLane;
_lanePosition++;
_offsetInLane = 0;
_curData += _bytesInLane;
}
}
}
static void _PySHA3_KeccakP1600_OverwriteBytesInLane(void *state,
unsigned int lanePosition,
const unsigned char *data,
unsigned int offset,
unsigned int length) {
if ((lanePosition == 1) || (lanePosition == 2) || (lanePosition == 8) ||
(lanePosition == 12) || (lanePosition == 17) || (lanePosition == 20)) {
unsigned int i;
for (i = 0; i < length; i++)
((unsigned char *)state)[lanePosition * 8 + offset + i] = ~data[i];
} else {
memcpy((unsigned char *)state + lanePosition * 8 + offset, data, length);
}
}
static void _PySHA3_KeccakP1600_OverwriteLanes(void *state,
const unsigned char *data,
unsigned int laneCount) {
unsigned int lanePosition;
for (lanePosition = 0; lanePosition < laneCount; lanePosition++)
if ((lanePosition == 1) || (lanePosition == 2) || (lanePosition == 8) ||
(lanePosition == 12) || (lanePosition == 17) || (lanePosition == 20))
((uint64_t *)state)[lanePosition] =
~((const uint64_t *)data)[lanePosition];
else
((uint64_t *)state)[lanePosition] =
((const uint64_t *)data)[lanePosition];
}
static void _PySHA3_KeccakP1600_OverwriteBytes(void *state,
const unsigned char *data,
unsigned int offset,
unsigned int length) {
{
if ((offset) == 0) {
_PySHA3_KeccakP1600_OverwriteLanes(state, data, (length) / 8);
_PySHA3_KeccakP1600_OverwriteBytesInLane(
state, (length) / 8, (data) + ((length) / 8) * 8, 0, (length) % 8);
} else {
unsigned int _sizeLeft = (length);
unsigned int _lanePosition = (offset) / 8;
unsigned int _offsetInLane = (offset) % 8;
const unsigned char *_curData = (data);
while (_sizeLeft > 0) {
unsigned int _bytesInLane = 8 - _offsetInLane;
if (_bytesInLane > _sizeLeft) _bytesInLane = _sizeLeft;
_PySHA3_KeccakP1600_OverwriteBytesInLane(state, _lanePosition, _curData,
_offsetInLane, _bytesInLane);
_sizeLeft -= _bytesInLane;
_lanePosition++;
_offsetInLane = 0;
_curData += _bytesInLane;
}
}
};
}
static void _PySHA3_KeccakP1600_OverwriteWithZeroes(void *state,
unsigned int byteCount) {
unsigned int lanePosition;
for (lanePosition = 0; lanePosition < byteCount / 8; lanePosition++)
if ((lanePosition == 1) || (lanePosition == 2) || (lanePosition == 8) ||
(lanePosition == 12) || (lanePosition == 17) || (lanePosition == 20))
((uint64_t *)state)[lanePosition] = ~0;
else
((uint64_t *)state)[lanePosition] = 0;
if (byteCount % 8 != 0) {
lanePosition = byteCount / 8;
if ((lanePosition == 1) || (lanePosition == 2) || (lanePosition == 8) ||
(lanePosition == 12) || (lanePosition == 17) || (lanePosition == 20))
memset((unsigned char *)state + lanePosition * 8, 0xFF, byteCount % 8);
else
bzero((unsigned char *)state + lanePosition * 8, byteCount % 8);
}
}
static void _PySHA3_KeccakP1600_Permute_24rounds(void *state) {
uint64_t Ca, Ce, Ci, Co, Cu;
uint64_t Da, De, Di, Do, Du;
uint64_t Aba, Abe, Abi, Abo, Abu;
uint64_t Aga, Age, Agi, Ago, Agu;
uint64_t Aka, Ake, Aki, Ako, Aku;
uint64_t Ama, Ame, Ami, Amo, Amu;
uint64_t Asa, Ase, Asi, Aso, Asu;
uint64_t Bba, Bbe, Bbi, Bbo, Bbu;
uint64_t Bga, Bge, Bgi, Bgo, Bgu;
uint64_t Bka, Bke, Bki, Bko, Bku;
uint64_t Bma, Bme, Bmi, Bmo, Bmu;
uint64_t Bsa, Bse, Bsi, Bso, Bsu;
uint64_t Eba, Ebe, Ebi, Ebo, Ebu;
uint64_t Ega, Ege, Egi, Ego, Egu;
uint64_t Eka, Eke, Eki, Eko, Eku;
uint64_t Ema, Eme, Emi, Emo, Emu;
uint64_t Esa, Ese, Esi, Eso, Esu;
uint64_t *stateAsLanes = (uint64_t *)state;
Aba = stateAsLanes[0];
Abe = stateAsLanes[1];
Abi = stateAsLanes[2];
Abo = stateAsLanes[3];
Abu = stateAsLanes[4];
Aga = stateAsLanes[5];
Age = stateAsLanes[6];
Agi = stateAsLanes[7];
Ago = stateAsLanes[8];
Agu = stateAsLanes[9];
Aka = stateAsLanes[10];
Ake = stateAsLanes[11];
Aki = stateAsLanes[12];
Ako = stateAsLanes[13];
Aku = stateAsLanes[14];
Ama = stateAsLanes[15];
Ame = stateAsLanes[16];
Ami = stateAsLanes[17];
Amo = stateAsLanes[18];
Amu = stateAsLanes[19];
Asa = stateAsLanes[20];
Ase = stateAsLanes[21];
Asi = stateAsLanes[22];
Aso = stateAsLanes[23];
Asu = stateAsLanes[24];
Ca = Aba ^ Aga ^ Aka ^ Ama ^ Asa;
Ce = Abe ^ Age ^ Ake ^ Ame ^ Ase;
Ci = Abi ^ Agi ^ Aki ^ Ami ^ Asi;
Co = Abo ^ Ago ^ Ako ^ Amo ^ Aso;
Cu = Abu ^ Agu ^ Aku ^ Amu ^ Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[0];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[1];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[2];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[3];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[4];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[5];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[6];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[7];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[8];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[9];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[10];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[11];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[12];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[13];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[14];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[15];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[16];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[17];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[18];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[19];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[20];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[21];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[22];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[23];
Abe = Bbe ^ ((~Bbi) | Bbo);
Abi = Bbi ^ (Bbo & Bbu);
Abo = Bbo ^ (Bbu | Bba);
Abu = Bbu ^ (Bba & Bbe);
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Age = Bge ^ (Bgi & Bgo);
Agi = Bgi ^ (Bgo | (~Bgu));
Ago = Bgo ^ (Bgu | Bga);
Agu = Bgu ^ (Bga & Bge);
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ake = Bke ^ (Bki & Bko);
Aki = Bki ^ ((~Bko) & Bku);
Ako = (~Bko) ^ (Bku | Bka);
Aku = Bku ^ (Bka & Bke);
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ame = Bme ^ (Bmi | Bmo);
Ami = Bmi ^ ((~Bmo) | Bmu);
Amo = (~Bmo) ^ (Bmu & Bma);
Amu = Bmu ^ (Bma | Bme);
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ase = (~Bse) ^ (Bsi | Bso);
Asi = Bsi ^ (Bso & Bsu);
Aso = Bso ^ (Bsu | Bsa);
Asu = Bsu ^ (Bsa & Bse);
stateAsLanes[0] = Aba;
stateAsLanes[1] = Abe;
stateAsLanes[2] = Abi;
stateAsLanes[3] = Abo;
stateAsLanes[4] = Abu;
stateAsLanes[5] = Aga;
stateAsLanes[6] = Age;
stateAsLanes[7] = Agi;
stateAsLanes[8] = Ago;
stateAsLanes[9] = Agu;
stateAsLanes[10] = Aka;
stateAsLanes[11] = Ake;
stateAsLanes[12] = Aki;
stateAsLanes[13] = Ako;
stateAsLanes[14] = Aku;
stateAsLanes[15] = Ama;
stateAsLanes[16] = Ame;
stateAsLanes[17] = Ami;
stateAsLanes[18] = Amo;
stateAsLanes[19] = Amu;
stateAsLanes[20] = Asa;
stateAsLanes[21] = Ase;
stateAsLanes[22] = Asi;
stateAsLanes[23] = Aso;
stateAsLanes[24] = Asu;
}
static void _PySHA3_KeccakP1600_Permute_12rounds(void *state) {
uint64_t Aba, Abe, Abi, Abo, Abu;
uint64_t Aga, Age, Agi, Ago, Agu;
uint64_t Aka, Ake, Aki, Ako, Aku;
uint64_t Ama, Ame, Ami, Amo, Amu;
uint64_t Asa, Ase, Asi, Aso, Asu;
uint64_t Bba, Bbe, Bbi, Bbo, Bbu;
uint64_t Bga, Bge, Bgi, Bgo, Bgu;
uint64_t Bka, Bke, Bki, Bko, Bku;
uint64_t Bma, Bme, Bmi, Bmo, Bmu;
uint64_t Bsa, Bse, Bsi, Bso, Bsu;
uint64_t Ca, Ce, Ci, Co, Cu;
uint64_t Da, De, Di, Do, Du;
uint64_t Eba, Ebe, Ebi, Ebo, Ebu;
uint64_t Ega, Ege, Egi, Ego, Egu;
uint64_t Eka, Eke, Eki, Eko, Eku;
uint64_t Ema, Eme, Emi, Emo, Emu;
uint64_t Esa, Ese, Esi, Eso, Esu;
uint64_t *stateAsLanes = (uint64_t *)state;
Aba = stateAsLanes[0];
Abe = stateAsLanes[1];
Abi = stateAsLanes[2];
Abo = stateAsLanes[3];
Abu = stateAsLanes[4];
Aga = stateAsLanes[5];
Age = stateAsLanes[6];
Agi = stateAsLanes[7];
Ago = stateAsLanes[8];
Agu = stateAsLanes[9];
Aka = stateAsLanes[10];
Ake = stateAsLanes[11];
Aki = stateAsLanes[12];
Ako = stateAsLanes[13];
Aku = stateAsLanes[14];
Ama = stateAsLanes[15];
Ame = stateAsLanes[16];
Ami = stateAsLanes[17];
Amo = stateAsLanes[18];
Amu = stateAsLanes[19];
Asa = stateAsLanes[20];
Ase = stateAsLanes[21];
Asi = stateAsLanes[22];
Aso = stateAsLanes[23];
Asu = stateAsLanes[24];
Ca = Aba ^ Aga ^ Aka ^ Ama ^ Asa;
Ce = Abe ^ Age ^ Ake ^ Ame ^ Ase;
Ci = Abi ^ Agi ^ Aki ^ Ami ^ Asi;
Co = Abo ^ Ago ^ Ako ^ Amo ^ Aso;
Cu = Abu ^ Agu ^ Aku ^ Amu ^ Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[12];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[13];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[14];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[15];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[16];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[17];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[18];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[19];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[20];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[21];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[22];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[23];
Abe = Bbe ^ ((~Bbi) | Bbo);
Abi = Bbi ^ (Bbo & Bbu);
Abo = Bbo ^ (Bbu | Bba);
Abu = Bbu ^ (Bba & Bbe);
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Age = Bge ^ (Bgi & Bgo);
Agi = Bgi ^ (Bgo | (~Bgu));
Ago = Bgo ^ (Bgu | Bga);
Agu = Bgu ^ (Bga & Bge);
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ake = Bke ^ (Bki & Bko);
Aki = Bki ^ ((~Bko) & Bku);
Ako = (~Bko) ^ (Bku | Bka);
Aku = Bku ^ (Bka & Bke);
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ame = Bme ^ (Bmi | Bmo);
Ami = Bmi ^ ((~Bmo) | Bmu);
Amo = (~Bmo) ^ (Bmu & Bma);
Amu = Bmu ^ (Bma | Bme);
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ase = (~Bse) ^ (Bsi | Bso);
Asi = Bsi ^ (Bso & Bsu);
Aso = Bso ^ (Bsu | Bsa);
Asu = Bsu ^ (Bsa & Bse);
stateAsLanes[0] = Aba;
stateAsLanes[1] = Abe;
stateAsLanes[2] = Abi;
stateAsLanes[3] = Abo;
stateAsLanes[4] = Abu;
stateAsLanes[5] = Aga;
stateAsLanes[6] = Age;
stateAsLanes[7] = Agi;
stateAsLanes[8] = Ago;
stateAsLanes[9] = Agu;
stateAsLanes[10] = Aka;
stateAsLanes[11] = Ake;
stateAsLanes[12] = Aki;
stateAsLanes[13] = Ako;
stateAsLanes[14] = Aku;
stateAsLanes[15] = Ama;
stateAsLanes[16] = Ame;
stateAsLanes[17] = Ami;
stateAsLanes[18] = Amo;
stateAsLanes[19] = Amu;
stateAsLanes[20] = Asa;
stateAsLanes[21] = Ase;
stateAsLanes[22] = Asi;
stateAsLanes[23] = Aso;
stateAsLanes[24] = Asu;
}
static void _PySHA3_KeccakP1600_ExtractBytesInLane(const void *state,
unsigned int lanePosition,
unsigned char *data,
unsigned int offset,
unsigned int length) {
uint64_t lane = ((uint64_t *)state)[lanePosition];
if ((lanePosition == 1) || (lanePosition == 2) || (lanePosition == 8) ||
(lanePosition == 12) || (lanePosition == 17) || (lanePosition == 20))
lane = ~lane;
{
uint64_t lane1[1];
lane1[0] = lane;
memcpy(data, (uint8_t *)lane1 + offset, length);
}
}
static void _PySHA3_KeccakP1600_ExtractLanes(const void *state,
unsigned char *data,
unsigned int laneCount) {
memcpy(data, state, laneCount * 8);
if (laneCount > 1) {
((uint64_t *)data)[1] = ~((uint64_t *)data)[1];
if (laneCount > 2) {
((uint64_t *)data)[2] = ~((uint64_t *)data)[2];
if (laneCount > 8) {
((uint64_t *)data)[8] = ~((uint64_t *)data)[8];
if (laneCount > 12) {
((uint64_t *)data)[12] = ~((uint64_t *)data)[12];
if (laneCount > 17) {
((uint64_t *)data)[17] = ~((uint64_t *)data)[17];
if (laneCount > 20) {
((uint64_t *)data)[20] = ~((uint64_t *)data)[20];
}
}
}
}
}
}
}
static void _PySHA3_KeccakP1600_ExtractBytes(const void *state,
unsigned char *data,
unsigned int offset,
unsigned int length) {
if ((offset) == 0) {
_PySHA3_KeccakP1600_ExtractLanes(state, data, (length) / 8);
_PySHA3_KeccakP1600_ExtractBytesInLane(
state, (length) / 8, (data) + ((length) / 8) * 8, 0, (length) % 8);
} else {
unsigned int _sizeLeft = (length);
unsigned int _lanePosition = (offset) / 8;
unsigned int _offsetInLane = (offset) % 8;
unsigned char *_curData = (data);
while (_sizeLeft > 0) {
unsigned int _bytesInLane = 8 - _offsetInLane;
if (_bytesInLane > _sizeLeft) _bytesInLane = _sizeLeft;
_PySHA3_KeccakP1600_ExtractBytesInLane(state, _lanePosition, _curData,
_offsetInLane, _bytesInLane);
_sizeLeft -= _bytesInLane;
_lanePosition++;
_offsetInLane = 0;
_curData += _bytesInLane;
}
}
}
static size_t _PySHA3_KeccakF1600_FastLoop_Absorb(void *state,
unsigned int laneCount,
const unsigned char *data,
size_t dataByteLen) {
size_t originalDataByteLen = dataByteLen;
uint64_t Aba, Abe, Abi, Abo, Abu;
uint64_t Aga, Age, Agi, Ago, Agu;
uint64_t Aka, Ake, Aki, Ako, Aku;
uint64_t Ama, Ame, Ami, Amo, Amu;
uint64_t Asa, Ase, Asi, Aso, Asu;
uint64_t Bba, Bbe, Bbi, Bbo, Bbu;
uint64_t Bga, Bge, Bgi, Bgo, Bgu;
uint64_t Bka, Bke, Bki, Bko, Bku;
uint64_t Bma, Bme, Bmi, Bmo, Bmu;
uint64_t Bsa, Bse, Bsi, Bso, Bsu;
uint64_t Ca, Ce, Ci, Co, Cu;
uint64_t Da, De, Di, Do, Du;
uint64_t Eba, Ebe, Ebi, Ebo, Ebu;
uint64_t Ega, Ege, Egi, Ego, Egu;
uint64_t Eka, Eke, Eki, Eko, Eku;
uint64_t Ema, Eme, Emi, Emo, Emu;
uint64_t Esa, Ese, Esi, Eso, Esu;
uint64_t *stateAsLanes = (uint64_t *)state;
uint64_t *inDataAsLanes = (uint64_t *)data;
Aba = stateAsLanes[0];
Abe = stateAsLanes[1];
Abi = stateAsLanes[2];
Abo = stateAsLanes[3];
Abu = stateAsLanes[4];
Aga = stateAsLanes[5];
Age = stateAsLanes[6];
Agi = stateAsLanes[7];
Ago = stateAsLanes[8];
Agu = stateAsLanes[9];
Aka = stateAsLanes[10];
Ake = stateAsLanes[11];
Aki = stateAsLanes[12];
Ako = stateAsLanes[13];
Aku = stateAsLanes[14];
Ama = stateAsLanes[15];
Ame = stateAsLanes[16];
Ami = stateAsLanes[17];
Amo = stateAsLanes[18];
Amu = stateAsLanes[19];
Asa = stateAsLanes[20];
Ase = stateAsLanes[21];
Asi = stateAsLanes[22];
Aso = stateAsLanes[23];
Asu = stateAsLanes[24];
while (dataByteLen >= laneCount * 8) {
if (laneCount == 21) {
Aba ^= inDataAsLanes[0];
Abe ^= inDataAsLanes[1];
Abi ^= inDataAsLanes[2];
Abo ^= inDataAsLanes[3];
Abu ^= inDataAsLanes[4];
Aga ^= inDataAsLanes[5];
Age ^= inDataAsLanes[6];
Agi ^= inDataAsLanes[7];
Ago ^= inDataAsLanes[8];
Agu ^= inDataAsLanes[9];
Aka ^= inDataAsLanes[10];
Ake ^= inDataAsLanes[11];
Aki ^= inDataAsLanes[12];
Ako ^= inDataAsLanes[13];
Aku ^= inDataAsLanes[14];
Ama ^= inDataAsLanes[15];
Ame ^= inDataAsLanes[16];
Ami ^= inDataAsLanes[17];
Amo ^= inDataAsLanes[18];
Amu ^= inDataAsLanes[19];
Asa ^= inDataAsLanes[20];
} else if (laneCount < 16) {
if (laneCount < 8) {
if (laneCount < 4) {
if (laneCount < 2) {
if (laneCount < 1) {
} else {
Aba ^= inDataAsLanes[0];
}
} else {
Aba ^= inDataAsLanes[0];
Abe ^= inDataAsLanes[1];
if (laneCount < 3) {
} else {
Abi ^= inDataAsLanes[2];
}
}
} else {
Aba ^= inDataAsLanes[0];
Abe ^= inDataAsLanes[1];
Abi ^= inDataAsLanes[2];
Abo ^= inDataAsLanes[3];
if (laneCount < 6) {
if (laneCount < 5) {
} else {
Abu ^= inDataAsLanes[4];
}
} else {
Abu ^= inDataAsLanes[4];
Aga ^= inDataAsLanes[5];
if (laneCount < 7) {
} else {
Age ^= inDataAsLanes[6];
}
}
}
} else {
Aba ^= inDataAsLanes[0];
Abe ^= inDataAsLanes[1];
Abi ^= inDataAsLanes[2];
Abo ^= inDataAsLanes[3];
Abu ^= inDataAsLanes[4];
Aga ^= inDataAsLanes[5];
Age ^= inDataAsLanes[6];
Agi ^= inDataAsLanes[7];
if (laneCount < 12) {
if (laneCount < 10) {
if (laneCount < 9) {
} else {
Ago ^= inDataAsLanes[8];
}
} else {
Ago ^= inDataAsLanes[8];
Agu ^= inDataAsLanes[9];
if (laneCount < 11) {
} else {
Aka ^= inDataAsLanes[10];
}
}
} else {
Ago ^= inDataAsLanes[8];
Agu ^= inDataAsLanes[9];
Aka ^= inDataAsLanes[10];
Ake ^= inDataAsLanes[11];
if (laneCount < 14) {
if (laneCount < 13) {
} else {
Aki ^= inDataAsLanes[12];
}
} else {
Aki ^= inDataAsLanes[12];
Ako ^= inDataAsLanes[13];
if (laneCount < 15) {
} else {
Aku ^= inDataAsLanes[14];
}
}
}
}
} else {
Aba ^= inDataAsLanes[0];
Abe ^= inDataAsLanes[1];
Abi ^= inDataAsLanes[2];
Abo ^= inDataAsLanes[3];
Abu ^= inDataAsLanes[4];
Aga ^= inDataAsLanes[5];
Age ^= inDataAsLanes[6];
Agi ^= inDataAsLanes[7];
Ago ^= inDataAsLanes[8];
Agu ^= inDataAsLanes[9];
Aka ^= inDataAsLanes[10];
Ake ^= inDataAsLanes[11];
Aki ^= inDataAsLanes[12];
Ako ^= inDataAsLanes[13];
Aku ^= inDataAsLanes[14];
Ama ^= inDataAsLanes[15];
if (laneCount < 24) {
if (laneCount < 20) {
if (laneCount < 18) {
if (laneCount < 17) {
} else {
Ame ^= inDataAsLanes[16];
}
} else {
Ame ^= inDataAsLanes[16];
Ami ^= inDataAsLanes[17];
if (laneCount < 19) {
} else {
Amo ^= inDataAsLanes[18];
}
}
} else {
Ame ^= inDataAsLanes[16];
Ami ^= inDataAsLanes[17];
Amo ^= inDataAsLanes[18];
Amu ^= inDataAsLanes[19];
if (laneCount < 22) {
if (laneCount < 21) {
} else {
Asa ^= inDataAsLanes[20];
}
} else {
Asa ^= inDataAsLanes[20];
Ase ^= inDataAsLanes[21];
if (laneCount < 23) {
} else {
Asi ^= inDataAsLanes[22];
}
}
}
} else {
Ame ^= inDataAsLanes[16];
Ami ^= inDataAsLanes[17];
Amo ^= inDataAsLanes[18];
Amu ^= inDataAsLanes[19];
Asa ^= inDataAsLanes[20];
Ase ^= inDataAsLanes[21];
Asi ^= inDataAsLanes[22];
Aso ^= inDataAsLanes[23];
if (laneCount < 25) {
} else {
Asu ^= inDataAsLanes[24];
}
}
}
Ca = Aba ^ Aga ^ Aka ^ Ama ^ Asa;
Ce = Abe ^ Age ^ Ake ^ Ame ^ Ase;
Ci = Abi ^ Agi ^ Aki ^ Ami ^ Asi;
Co = Abo ^ Ago ^ Ako ^ Amo ^ Aso;
Cu = Abu ^ Agu ^ Aku ^ Amu ^ Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[0];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[1];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[2];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[3];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[4];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[5];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[6];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[7];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[8];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[9];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[10];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[11];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[12];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[13];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[14];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[15];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[16];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[17];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[18];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[19];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[20];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[21];
Ca = Aba;
Abe = Bbe ^ ((~Bbi) | Bbo);
Ce = Abe;
Abi = Bbi ^ (Bbo & Bbu);
Ci = Abi;
Abo = Bbo ^ (Bbu | Bba);
Co = Abo;
Abu = Bbu ^ (Bba & Bbe);
Cu = Abu;
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Ca ^= Aga;
Age = Bge ^ (Bgi & Bgo);
Ce ^= Age;
Agi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Agi;
Ago = Bgo ^ (Bgu | Bga);
Co ^= Ago;
Agu = Bgu ^ (Bga & Bge);
Cu ^= Agu;
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ca ^= Aka;
Ake = Bke ^ (Bki & Bko);
Ce ^= Ake;
Aki = Bki ^ ((~Bko) & Bku);
Ci ^= Aki;
Ako = (~Bko) ^ (Bku | Bka);
Co ^= Ako;
Aku = Bku ^ (Bka & Bke);
Cu ^= Aku;
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ca ^= Ama;
Ame = Bme ^ (Bmi | Bmo);
Ce ^= Ame;
Ami = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Ami;
Amo = (~Bmo) ^ (Bmu & Bma);
Co ^= Amo;
Amu = Bmu ^ (Bma | Bme);
Cu ^= Amu;
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Asa;
Ase = (~Bse) ^ (Bsi | Bso);
Ce ^= Ase;
Asi = Bsi ^ (Bso & Bsu);
Ci ^= Asi;
Aso = Bso ^ (Bsu | Bsa);
Co ^= Aso;
Asu = Bsu ^ (Bsa & Bse);
Cu ^= Asu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Aba ^= Da;
Bba = Aba;
Age ^= De;
Bbe = ((((uint64_t)Age) << 44) ^ (((uint64_t)Age) >> (64 - 44)));
Aki ^= Di;
Bbi = ((((uint64_t)Aki) << 43) ^ (((uint64_t)Aki) >> (64 - 43)));
Amo ^= Do;
Bbo = ((((uint64_t)Amo) << 21) ^ (((uint64_t)Amo) >> (64 - 21)));
Asu ^= Du;
Bbu = ((((uint64_t)Asu) << 14) ^ (((uint64_t)Asu) >> (64 - 14)));
Eba = Bba ^ (Bbe | Bbi);
Eba ^= kKeccakf[22];
Ca = Eba;
Ebe = Bbe ^ ((~Bbi) | Bbo);
Ce = Ebe;
Ebi = Bbi ^ (Bbo & Bbu);
Ci = Ebi;
Ebo = Bbo ^ (Bbu | Bba);
Co = Ebo;
Ebu = Bbu ^ (Bba & Bbe);
Cu = Ebu;
Abo ^= Do;
Bga = ((((uint64_t)Abo) << 28) ^ (((uint64_t)Abo) >> (64 - 28)));
Agu ^= Du;
Bge = ((((uint64_t)Agu) << 20) ^ (((uint64_t)Agu) >> (64 - 20)));
Aka ^= Da;
Bgi = ((((uint64_t)Aka) << 3) ^ (((uint64_t)Aka) >> (64 - 3)));
Ame ^= De;
Bgo = ((((uint64_t)Ame) << 45) ^ (((uint64_t)Ame) >> (64 - 45)));
Asi ^= Di;
Bgu = ((((uint64_t)Asi) << 61) ^ (((uint64_t)Asi) >> (64 - 61)));
Ega = Bga ^ (Bge | Bgi);
Ca ^= Ega;
Ege = Bge ^ (Bgi & Bgo);
Ce ^= Ege;
Egi = Bgi ^ (Bgo | (~Bgu));
Ci ^= Egi;
Ego = Bgo ^ (Bgu | Bga);
Co ^= Ego;
Egu = Bgu ^ (Bga & Bge);
Cu ^= Egu;
Abe ^= De;
Bka = ((((uint64_t)Abe) << 1) ^ (((uint64_t)Abe) >> (64 - 1)));
Agi ^= Di;
Bke = ((((uint64_t)Agi) << 6) ^ (((uint64_t)Agi) >> (64 - 6)));
Ako ^= Do;
Bki = ((((uint64_t)Ako) << 25) ^ (((uint64_t)Ako) >> (64 - 25)));
Amu ^= Du;
Bko = ((((uint64_t)Amu) << 8) ^ (((uint64_t)Amu) >> (64 - 8)));
Asa ^= Da;
Bku = ((((uint64_t)Asa) << 18) ^ (((uint64_t)Asa) >> (64 - 18)));
Eka = Bka ^ (Bke | Bki);
Ca ^= Eka;
Eke = Bke ^ (Bki & Bko);
Ce ^= Eke;
Eki = Bki ^ ((~Bko) & Bku);
Ci ^= Eki;
Eko = (~Bko) ^ (Bku | Bka);
Co ^= Eko;
Eku = Bku ^ (Bka & Bke);
Cu ^= Eku;
Abu ^= Du;
Bma = ((((uint64_t)Abu) << 27) ^ (((uint64_t)Abu) >> (64 - 27)));
Aga ^= Da;
Bme = ((((uint64_t)Aga) << 36) ^ (((uint64_t)Aga) >> (64 - 36)));
Ake ^= De;
Bmi = ((((uint64_t)Ake) << 10) ^ (((uint64_t)Ake) >> (64 - 10)));
Ami ^= Di;
Bmo = ((((uint64_t)Ami) << 15) ^ (((uint64_t)Ami) >> (64 - 15)));
Aso ^= Do;
Bmu = ((((uint64_t)Aso) << 56) ^ (((uint64_t)Aso) >> (64 - 56)));
Ema = Bma ^ (Bme & Bmi);
Ca ^= Ema;
Eme = Bme ^ (Bmi | Bmo);
Ce ^= Eme;
Emi = Bmi ^ ((~Bmo) | Bmu);
Ci ^= Emi;
Emo = (~Bmo) ^ (Bmu & Bma);
Co ^= Emo;
Emu = Bmu ^ (Bma | Bme);
Cu ^= Emu;
Abi ^= Di;
Bsa = ((((uint64_t)Abi) << 62) ^ (((uint64_t)Abi) >> (64 - 62)));
Ago ^= Do;
Bse = ((((uint64_t)Ago) << 55) ^ (((uint64_t)Ago) >> (64 - 55)));
Aku ^= Du;
Bsi = ((((uint64_t)Aku) << 39) ^ (((uint64_t)Aku) >> (64 - 39)));
Ama ^= Da;
Bso = ((((uint64_t)Ama) << 41) ^ (((uint64_t)Ama) >> (64 - 41)));
Ase ^= De;
Bsu = ((((uint64_t)Ase) << 2) ^ (((uint64_t)Ase) >> (64 - 2)));
Esa = Bsa ^ ((~Bse) & Bsi);
Ca ^= Esa;
Ese = (~Bse) ^ (Bsi | Bso);
Ce ^= Ese;
Esi = Bsi ^ (Bso & Bsu);
Ci ^= Esi;
Eso = Bso ^ (Bsu | Bsa);
Co ^= Eso;
Esu = Bsu ^ (Bsa & Bse);
Cu ^= Esu;
Da = Cu ^ ((((uint64_t)Ce) << 1) ^ (((uint64_t)Ce) >> (64 - 1)));
De = Ca ^ ((((uint64_t)Ci) << 1) ^ (((uint64_t)Ci) >> (64 - 1)));
Di = Ce ^ ((((uint64_t)Co) << 1) ^ (((uint64_t)Co) >> (64 - 1)));
Do = Ci ^ ((((uint64_t)Cu) << 1) ^ (((uint64_t)Cu) >> (64 - 1)));
Du = Co ^ ((((uint64_t)Ca) << 1) ^ (((uint64_t)Ca) >> (64 - 1)));
Eba ^= Da;
Bba = Eba;
Ege ^= De;
Bbe = ((((uint64_t)Ege) << 44) ^ (((uint64_t)Ege) >> (64 - 44)));
Eki ^= Di;
Bbi = ((((uint64_t)Eki) << 43) ^ (((uint64_t)Eki) >> (64 - 43)));
Emo ^= Do;
Bbo = ((((uint64_t)Emo) << 21) ^ (((uint64_t)Emo) >> (64 - 21)));
Esu ^= Du;
Bbu = ((((uint64_t)Esu) << 14) ^ (((uint64_t)Esu) >> (64 - 14)));
Aba = Bba ^ (Bbe | Bbi);
Aba ^= kKeccakf[23];
Abe = Bbe ^ ((~Bbi) | Bbo);
Abi = Bbi ^ (Bbo & Bbu);
Abo = Bbo ^ (Bbu | Bba);
Abu = Bbu ^ (Bba & Bbe);
Ebo ^= Do;
Bga = ((((uint64_t)Ebo) << 28) ^ (((uint64_t)Ebo) >> (64 - 28)));
Egu ^= Du;
Bge = ((((uint64_t)Egu) << 20) ^ (((uint64_t)Egu) >> (64 - 20)));
Eka ^= Da;
Bgi = ((((uint64_t)Eka) << 3) ^ (((uint64_t)Eka) >> (64 - 3)));
Eme ^= De;
Bgo = ((((uint64_t)Eme) << 45) ^ (((uint64_t)Eme) >> (64 - 45)));
Esi ^= Di;
Bgu = ((((uint64_t)Esi) << 61) ^ (((uint64_t)Esi) >> (64 - 61)));
Aga = Bga ^ (Bge | Bgi);
Age = Bge ^ (Bgi & Bgo);
Agi = Bgi ^ (Bgo | (~Bgu));
Ago = Bgo ^ (Bgu | Bga);
Agu = Bgu ^ (Bga & Bge);
Ebe ^= De;
Bka = ((((uint64_t)Ebe) << 1) ^ (((uint64_t)Ebe) >> (64 - 1)));
Egi ^= Di;
Bke = ((((uint64_t)Egi) << 6) ^ (((uint64_t)Egi) >> (64 - 6)));
Eko ^= Do;
Bki = ((((uint64_t)Eko) << 25) ^ (((uint64_t)Eko) >> (64 - 25)));
Emu ^= Du;
Bko = ((((uint64_t)Emu) << 8) ^ (((uint64_t)Emu) >> (64 - 8)));
Esa ^= Da;
Bku = ((((uint64_t)Esa) << 18) ^ (((uint64_t)Esa) >> (64 - 18)));
Aka = Bka ^ (Bke | Bki);
Ake = Bke ^ (Bki & Bko);
Aki = Bki ^ ((~Bko) & Bku);
Ako = (~Bko) ^ (Bku | Bka);
Aku = Bku ^ (Bka & Bke);
Ebu ^= Du;
Bma = ((((uint64_t)Ebu) << 27) ^ (((uint64_t)Ebu) >> (64 - 27)));
Ega ^= Da;
Bme = ((((uint64_t)Ega) << 36) ^ (((uint64_t)Ega) >> (64 - 36)));
Eke ^= De;
Bmi = ((((uint64_t)Eke) << 10) ^ (((uint64_t)Eke) >> (64 - 10)));
Emi ^= Di;
Bmo = ((((uint64_t)Emi) << 15) ^ (((uint64_t)Emi) >> (64 - 15)));
Eso ^= Do;
Bmu = ((((uint64_t)Eso) << 56) ^ (((uint64_t)Eso) >> (64 - 56)));
Ama = Bma ^ (Bme & Bmi);
Ame = Bme ^ (Bmi | Bmo);
Ami = Bmi ^ ((~Bmo) | Bmu);
Amo = (~Bmo) ^ (Bmu & Bma);
Amu = Bmu ^ (Bma | Bme);
Ebi ^= Di;
Bsa = ((((uint64_t)Ebi) << 62) ^ (((uint64_t)Ebi) >> (64 - 62)));
Ego ^= Do;
Bse = ((((uint64_t)Ego) << 55) ^ (((uint64_t)Ego) >> (64 - 55)));
Eku ^= Du;
Bsi = ((((uint64_t)Eku) << 39) ^ (((uint64_t)Eku) >> (64 - 39)));
Ema ^= Da;
Bso = ((((uint64_t)Ema) << 41) ^ (((uint64_t)Ema) >> (64 - 41)));
Ese ^= De;
Bsu = ((((uint64_t)Ese) << 2) ^ (((uint64_t)Ese) >> (64 - 2)));
Asa = Bsa ^ ((~Bse) & Bsi);
Ase = (~Bse) ^ (Bsi | Bso);
Asi = Bsi ^ (Bso & Bsu);
Aso = Bso ^ (Bsu | Bsa);
Asu = Bsu ^ (Bsa & Bse);
inDataAsLanes += laneCount;
dataByteLen -= laneCount * 8;
}
stateAsLanes[0] = Aba;
stateAsLanes[1] = Abe;
stateAsLanes[2] = Abi;
stateAsLanes[3] = Abo;
stateAsLanes[4] = Abu;
stateAsLanes[5] = Aga;
stateAsLanes[6] = Age;
stateAsLanes[7] = Agi;
stateAsLanes[8] = Ago;
stateAsLanes[9] = Agu;
stateAsLanes[10] = Aka;
stateAsLanes[11] = Ake;
stateAsLanes[12] = Aki;
stateAsLanes[13] = Ako;
stateAsLanes[14] = Aku;
stateAsLanes[15] = Ama;
stateAsLanes[16] = Ame;
stateAsLanes[17] = Ami;
stateAsLanes[18] = Amo;
stateAsLanes[19] = Amu;
stateAsLanes[20] = Asa;
stateAsLanes[21] = Ase;
stateAsLanes[22] = Asi;
stateAsLanes[23] = Aso;
stateAsLanes[24] = Asu;
return originalDataByteLen - dataByteLen;
}
static int _PySHA3_KeccakWidth1600_Sponge(
unsigned int rate, unsigned int capacity, const unsigned char *input,
size_t inputByteLen, unsigned char suffix, unsigned char *output,
size_t outputByteLen) {
forcealign(8) unsigned char state[200];
unsigned int partialBlock;
const unsigned char *curInput = input;
unsigned char *curOutput = output;
unsigned int rateInBytes = rate / 8;
if (rate + capacity != 1600) return 1;
if ((rate <= 0) || (rate > 1600) || ((rate % 8) != 0)) return 1;
if (suffix == 0) return 1;
_PySHA3_KeccakP1600_Initialize(state);
if (((rateInBytes % (1600 / 200)) == 0) && (inputByteLen >= rateInBytes)) {
size_t j;
j = _PySHA3_KeccakF1600_FastLoop_Absorb(state, rateInBytes / (1600 / 200),
curInput, inputByteLen);
curInput += j;
inputByteLen -= j;
}
while (inputByteLen >= (size_t)rateInBytes) {
_PySHA3_KeccakP1600_AddBytes(state, curInput, 0, rateInBytes);
_PySHA3_KeccakP1600_Permute_24rounds(state);
curInput += rateInBytes;
inputByteLen -= rateInBytes;
}
partialBlock = (unsigned int)inputByteLen;
_PySHA3_KeccakP1600_AddBytes(state, curInput, 0, partialBlock);
((unsigned char *)(state))[(partialBlock)] ^= (suffix);
if ((suffix >= 0x80) && (partialBlock == (rateInBytes - 1)))
_PySHA3_KeccakP1600_Permute_24rounds(state);
((unsigned char *)(state))[(rateInBytes - 1)] ^= (0x80);
_PySHA3_KeccakP1600_Permute_24rounds(state);
while (outputByteLen > (size_t)rateInBytes) {
_PySHA3_KeccakP1600_ExtractBytes(state, curOutput, 0, rateInBytes);
_PySHA3_KeccakP1600_Permute_24rounds(state);
curOutput += rateInBytes;
outputByteLen -= rateInBytes;
}
partialBlock = (unsigned int)outputByteLen;
_PySHA3_KeccakP1600_ExtractBytes(state, curOutput, 0, partialBlock);
return 0;
}
static int _PySHA3_KeccakWidth1600_SpongeAbsorb(
KeccakWidth1600_SpongeInstance *instance, const unsigned char *data,
size_t dataByteLen) {
size_t i, j;
unsigned int partialBlock;
const unsigned char *curData;
unsigned int rateInBytes = instance->rate / 8;
if (instance->squeezing) return 1;
i = 0;
curData = data;
while (i < dataByteLen) {
if ((instance->byteIOIndex == 0) && (dataByteLen >= (i + rateInBytes))) {
if ((rateInBytes % (1600 / 200)) == 0) {
j = _PySHA3_KeccakF1600_FastLoop_Absorb(instance->state,
rateInBytes / (1600 / 200),
curData, dataByteLen - i);
i += j;
curData += j;
} else {
for (j = dataByteLen - i; j >= rateInBytes; j -= rateInBytes) {
_PySHA3_KeccakP1600_AddBytes(instance->state, curData, 0,
rateInBytes);
_PySHA3_KeccakP1600_Permute_24rounds(instance->state);
curData += rateInBytes;
}
i = dataByteLen - j;
}
} else {
partialBlock = (unsigned int)(dataByteLen - i);
if (partialBlock + instance->byteIOIndex > rateInBytes)
partialBlock = rateInBytes - instance->byteIOIndex;
i += partialBlock;
_PySHA3_KeccakP1600_AddBytes(instance->state, curData,
instance->byteIOIndex, partialBlock);
curData += partialBlock;
instance->byteIOIndex += partialBlock;
if (instance->byteIOIndex == rateInBytes) {
_PySHA3_KeccakP1600_Permute_24rounds(instance->state);
instance->byteIOIndex = 0;
}
}
}
return 0;
}
static int _PySHA3_KeccakWidth1600_SpongeAbsorbLastFewBits(
KeccakWidth1600_SpongeInstance *instance, unsigned char delimitedData) {
unsigned int rateInBytes = instance->rate / 8;
if (delimitedData == 0) return 1;
if (instance->squeezing) return 1;
((unsigned char *)(instance->state))[(instance->byteIOIndex)] ^=
(delimitedData);
if ((delimitedData >= 0x80) && (instance->byteIOIndex == (rateInBytes - 1)))
_PySHA3_KeccakP1600_Permute_24rounds(instance->state);
((unsigned char *)(instance->state))[(rateInBytes - 1)] ^= (0x80);
_PySHA3_KeccakP1600_Permute_24rounds(instance->state);
instance->byteIOIndex = 0;
instance->squeezing = 1;
return 0;
}
static int _PySHA3_KeccakWidth1600_SpongeSqueeze(
KeccakWidth1600_SpongeInstance *instance, unsigned char *data,
size_t dataByteLen) {
size_t i, j;
unsigned int partialBlock;
unsigned int rateInBytes = instance->rate / 8;
unsigned char *curData;
if (!instance->squeezing)
_PySHA3_KeccakWidth1600_SpongeAbsorbLastFewBits(instance, 0x01);
i = 0;
curData = data;
while (i < dataByteLen) {
if ((instance->byteIOIndex == rateInBytes) &&
(dataByteLen >= (i + rateInBytes))) {
for (j = dataByteLen - i; j >= rateInBytes; j -= rateInBytes) {
_PySHA3_KeccakP1600_Permute_24rounds(instance->state);
_PySHA3_KeccakP1600_ExtractBytes(instance->state, curData, 0,
rateInBytes);
curData += rateInBytes;
}
i = dataByteLen - j;
} else {
if (instance->byteIOIndex == rateInBytes) {
_PySHA3_KeccakP1600_Permute_24rounds(instance->state);
instance->byteIOIndex = 0;
}
partialBlock = (unsigned int)(dataByteLen - i);
if (partialBlock + instance->byteIOIndex > rateInBytes)
partialBlock = rateInBytes - instance->byteIOIndex;
i += partialBlock;
_PySHA3_KeccakP1600_ExtractBytes(instance->state, curData,
instance->byteIOIndex, partialBlock);
curData += partialBlock;
instance->byteIOIndex += partialBlock;
}
}
return 0;
}
static int _PySHA3_KeccakWidth1600_SpongeInitialize(
KeccakWidth1600_SpongeInstance *instance, unsigned int rate,
unsigned int capacity) {
if (rate + capacity != 1600) return 1;
if ((rate <= 0) || (rate > 1600) || ((rate % 8) != 0)) return 1;
_PySHA3_KeccakP1600_Initialize(instance->state);
instance->rate = rate;
instance->byteIOIndex = 0;
instance->squeezing = 0;
return 0;
}
static HashReturn _PySHA3_Keccak_HashInitialize(Keccak_HashInstance *instance,
unsigned int rate,
unsigned int capacity,
unsigned int hashbitlen,
unsigned char delimitedSuffix) {
HashReturn result;
if (delimitedSuffix == 0) return FAIL;
result = (HashReturn)_PySHA3_KeccakWidth1600_SpongeInitialize(
&instance->sponge, rate, capacity);
if (result != SUCCESS) return result;
instance->fixedOutputLength = hashbitlen;
instance->delimitedSuffix = delimitedSuffix;
return SUCCESS;
}
static HashReturn _PySHA3_Keccak_HashUpdate(Keccak_HashInstance *instance,
const unsigned char *data,
size_t databitlen) {
if ((databitlen % 8) == 0)
return (HashReturn)_PySHA3_KeccakWidth1600_SpongeAbsorb(
&instance->sponge, data, databitlen / 8);
else {
HashReturn ret = (HashReturn)_PySHA3_KeccakWidth1600_SpongeAbsorb(
&instance->sponge, data, databitlen / 8);
if (ret == SUCCESS) {
unsigned char lastByte = data[databitlen / 8];
unsigned short delimitedLastBytes =
(unsigned short)((unsigned short)lastByte |
((unsigned short)instance->delimitedSuffix
<< (databitlen % 8)));
if ((delimitedLastBytes & 0xFF00) == 0x0000) {
instance->delimitedSuffix = delimitedLastBytes & 0xFF;
} else {
unsigned char oneByte[1];
oneByte[0] = delimitedLastBytes & 0xFF;
ret = (HashReturn)_PySHA3_KeccakWidth1600_SpongeAbsorb(
&instance->sponge, oneByte, 1);
instance->delimitedSuffix = (delimitedLastBytes >> 8) & 0xFF;
}
}
return ret;
}
}
static HashReturn _PySHA3_Keccak_HashFinal(Keccak_HashInstance *instance,
unsigned char *hashval) {
HashReturn ret = (HashReturn)_PySHA3_KeccakWidth1600_SpongeAbsorbLastFewBits(
&instance->sponge, instance->delimitedSuffix);
if (ret == SUCCESS)
return (HashReturn)_PySHA3_KeccakWidth1600_SpongeSqueeze(
&instance->sponge, hashval, instance->fixedOutputLength / 8);
else
return ret;
}
static HashReturn _PySHA3_Keccak_HashSqueeze(Keccak_HashInstance *instance,
unsigned char *data,
size_t databitlen) {
if ((databitlen % 8) != 0) return FAIL;
return (HashReturn)_PySHA3_KeccakWidth1600_SpongeSqueeze(
&instance->sponge, data, databitlen / 8);
}
static void _PySHA3_KeccakP1600_ExtractAndAddBytesInLane(
const void *state, unsigned int lanePosition, const unsigned char *input,
unsigned char *output, unsigned int offset, unsigned int length) {
uint64_t lane = ((uint64_t *)state)[lanePosition];
if ((lanePosition == 1) || (lanePosition == 2) || (lanePosition == 8) ||
(lanePosition == 12) || (lanePosition == 17) || (lanePosition == 20))
lane = ~lane;
{
unsigned int i;
uint64_t lane1[1];
lane1[0] = lane;
for (i = 0; i < length; i++)
output[i] = input[i] ^ ((uint8_t *)lane1)[offset + i];
}
}
static void _PySHA3_KeccakP1600_ExtractAndAddLanes(const void *state,
const unsigned char *input,
unsigned char *output,
unsigned int laneCount) {
unsigned int i;
for (i = 0; i < laneCount; i++) {
((uint64_t *)output)[i] =
((uint64_t *)input)[i] ^ ((const uint64_t *)state)[i];
}
if (laneCount > 1) {
((uint64_t *)output)[1] = ~((uint64_t *)output)[1];
if (laneCount > 2) {
((uint64_t *)output)[2] = ~((uint64_t *)output)[2];
if (laneCount > 8) {
((uint64_t *)output)[8] = ~((uint64_t *)output)[8];
if (laneCount > 12) {
((uint64_t *)output)[12] = ~((uint64_t *)output)[12];
if (laneCount > 17) {
((uint64_t *)output)[17] = ~((uint64_t *)output)[17];
if (laneCount > 20) {
((uint64_t *)output)[20] = ~((uint64_t *)output)[20];
}
}
}
}
}
}
}
static void _PySHA3_KeccakP1600_ExtractAndAddBytes(const void *state,
const unsigned char *input,
unsigned char *output,
unsigned int offset,
unsigned int length) {
if ((offset) == 0) {
_PySHA3_KeccakP1600_ExtractAndAddLanes(state, input, output, (length) / 8);
_PySHA3_KeccakP1600_ExtractAndAddBytesInLane(
state, (length) / 8, (input) + ((length) / 8) * 8,
(output) + ((length) / 8) * 8, 0, (length) % 8);
} else {
unsigned int _sizeLeft = (length);
unsigned int _lanePosition = (offset) / 8;
unsigned int _offsetInLane = (offset) % 8;
const unsigned char *_curInput = (input);
unsigned char *_curOutput = (output);
while (_sizeLeft > 0) {
unsigned int _bytesInLane = 8 - _offsetInLane;
if (_bytesInLane > _sizeLeft) _bytesInLane = _sizeLeft;
_PySHA3_KeccakP1600_ExtractAndAddBytesInLane(state, _lanePosition,
_curInput, _curOutput,
_offsetInLane, _bytesInLane);
_sizeLeft -= _bytesInLane;
_lanePosition++;
_offsetInLane = 0;
_curInput += _bytesInLane;
_curOutput += _bytesInLane;
}
}
}
typedef struct {
PyObject ob_base;
Keccak_HashInstance hash_state;
} SHA3object;
static PyTypeObject SHA3_224type;
static PyTypeObject SHA3_256type;
static PyTypeObject SHA3_384type;
static PyTypeObject SHA3_512type;
static PyTypeObject SHAKE128type;
static PyTypeObject SHAKE256type;
static char _sha3_sha3_224_copy__doc__[] = "copy($self, /)\n"
"--\n"
"\n"
"Return a copy of the hash object.";
static PyObject *_sha3_sha3_224_copy_impl(SHA3object *);
static PyObject *_sha3_sha3_224_copy(SHA3object *self, PyObject *_unused_ignored
__attribute__((unused))) {
return _sha3_sha3_224_copy_impl(self);
}
static char _sha3_sha3_224_digest__doc__[] =
"digest($self, /)\n"
"--\n"
"\n"
"Return the digest value as a bytes object.";
static PyObject *_sha3_sha3_224_digest_impl(SHA3object *);
static PyObject *_sha3_sha3_224_digest(SHA3object *self,
PyObject *_unused_ignored
__attribute__((unused))) {
return _sha3_sha3_224_digest_impl(self);
}
static char _sha3_sha3_224_hexdigest__doc__[] =
"hexdigest($self, /)\n"
"--\n"
"\n"
"Return the digest value as a string of hexadecimal digits.";
static PyObject *_sha3_sha3_224_hexdigest_impl(SHA3object *);
static PyObject *_sha3_sha3_224_hexdigest(SHA3object *self,
PyObject *_unused_ignored
__attribute__((unused))) {
return _sha3_sha3_224_hexdigest_impl(self);
}
static char _sha3_sha3_224_update__doc__[] =
"update($self, data, /)\n"
"--\n"
"\n"
"Update this hash object\'s state with the provided bytes-like object.";
static char _sha3_shake_128_digest__doc__[] =
"digest($self, length, /)\n"
"--\n"
"\n"
"Return the digest value as a bytes object.";
static char _sha3_shake_128_hexdigest__doc__[] =
"hexdigest($self, length, /)\n"
"--\n"
"\n"
"Return the digest value as a string of hexadecimal digits.";
static SHA3object *newSHA3object(PyTypeObject *type) {
SHA3object *newobj;
newobj = PyObject_New(SHA3object, type);
if (!newobj) return 0;
return newobj;
}
static PyObject *py_sha3_new(PyTypeObject *type, PyObject *args,
PyObject *kwargs) {
SHA3object *self = 0;
Py_buffer buf = {0, 0};
HashReturn res;
PyObject *data = 0;
if (!_PyArg_NoKeywords(type->tp_name, kwargs)) {
return 0;
}
if (!PyArg_UnpackTuple(args, type->tp_name, 0, 1, &data)) {
return 0;
}
self = newSHA3object(type);
if (self == 0) {
goto error;
}
if (type == &SHA3_224type) {
res =
_PySHA3_Keccak_HashInitialize(&self->hash_state, 1152, 448, 224, 0x06);
} else if (type == &SHA3_256type) {
res =
_PySHA3_Keccak_HashInitialize(&self->hash_state, 1088, 512, 256, 0x06);
} else if (type == &SHA3_384type) {
res = _PySHA3_Keccak_HashInitialize(&self->hash_state, 832, 768, 384, 0x06);
} else if (type == &SHA3_512type) {
res =
_PySHA3_Keccak_HashInitialize(&self->hash_state, 576, 1024, 512, 0x06);
} else if (type == &SHAKE128type) {
res = _PySHA3_Keccak_HashInitialize(&self->hash_state, 1344, 256, 0, 0x1F);
} else if (type == &SHAKE256type) {
res = _PySHA3_Keccak_HashInitialize(&self->hash_state, 1088, 512, 0, 0x1F);
} else {
PyErr_BadInternalCall();
goto error;
}
if (data) {
do {
if (((((((PyObject *)((data)))->ob_type))->tp_flags & ((1UL << 28))) !=
0)) {
PyErr_SetString(PyExc_TypeError,
"Unicode-objects must be encoded before hashing");
goto error;
}
if (!((((data))->ob_type->tp_as_buffer != 0) &&
(((data))->ob_type->tp_as_buffer->bf_getbuffer != 0))) {
PyErr_SetString(PyExc_TypeError,
"object supporting the buffer API required");
goto error;
}
if (PyObject_GetBuffer((data), (&buf), 0) == -1) {
goto error;
}
if ((&buf)->ndim > 1) {
PyErr_SetString(PyExc_BufferError, "Buffer must be single dimension");
PyBuffer_Release((&buf));
goto error;
}
} while (0);
res = _PySHA3_Keccak_HashUpdate(&self->hash_state, buf.buf, buf.len * 8);
if (res != SUCCESS) {
PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 Update()");
goto error;
}
PyBuffer_Release(&buf);
}
return (PyObject *)self;
error:
if (self) {
do {
PyObject *_py_decref_tmp = (PyObject *)(self);
if (--(_py_decref_tmp)->ob_refcnt != 0)
;
else
((*(((PyObject *)(_py_decref_tmp))->ob_type)->tp_dealloc)(
(PyObject *)(_py_decref_tmp)));
} while (0);
}
if (data && buf.obj) {
PyBuffer_Release(&buf);
}
return 0;
}
static void SHA3_dealloc(SHA3object *self) {
PyObject_Free(self);
}
static PyObject *_sha3_sha3_224_copy_impl(SHA3object *self) {
SHA3object *newobj;
if ((newobj = newSHA3object((((PyObject *)(self))->ob_type))) == 0) {
return 0;
}
memcpy(&(newobj->hash_state), &(self->hash_state),
sizeof(Keccak_HashInstance));
return (PyObject *)newobj;
}
static PyObject *_sha3_sha3_224_digest_impl(SHA3object *self) {
unsigned char digest[64 + (20 * 8)];
Keccak_HashInstance temp;
HashReturn res;
memcpy(&(temp), &(self->hash_state), sizeof(Keccak_HashInstance));
res = _PySHA3_Keccak_HashFinal(&temp, digest);
if (res != SUCCESS) {
PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 Final()");
return 0;
}
return PyBytes_FromStringAndSize((const char *)digest,
self->hash_state.fixedOutputLength / 8);
}
static PyObject *_sha3_sha3_224_hexdigest_impl(SHA3object *self) {
unsigned char digest[64 + (20 * 8)];
Keccak_HashInstance temp;
HashReturn res;
memcpy(&(temp), &(self->hash_state), sizeof(Keccak_HashInstance));
res = _PySHA3_Keccak_HashFinal(&temp, digest);
if (res != SUCCESS) {
PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 Final()");
return 0;
}
return _Py_strhex((const char *)digest,
self->hash_state.fixedOutputLength / 8);
}
static PyObject *_sha3_sha3_224_update(SHA3object *self, PyObject *data) {
Py_buffer buf;
HashReturn res;
do {
if (((((((PyObject *)((data)))->ob_type))->tp_flags & ((1UL << 28))) !=
0)) {
PyErr_SetString(PyExc_TypeError,
"Unicode-objects must be encoded before hashing");
return 0;
}
if (!((((data))->ob_type->tp_as_buffer != 0) &&
(((data))->ob_type->tp_as_buffer->bf_getbuffer != 0))) {
PyErr_SetString(PyExc_TypeError,
"object supporting the buffer API required");
return 0;
}
if (PyObject_GetBuffer((data), (&buf), 0) == -1) {
return 0;
}
if ((&buf)->ndim > 1) {
PyErr_SetString(PyExc_BufferError, "Buffer must be single dimension");
PyBuffer_Release((&buf));
return 0;
}
} while (0);
res = _PySHA3_Keccak_HashUpdate(&self->hash_state, buf.buf, buf.len * 8);
if (res != SUCCESS) {
PyBuffer_Release(&buf);
PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 Update()");
return 0;
}
PyBuffer_Release(&buf);
(((PyObject *)((&_Py_NoneStruct)))->ob_refcnt++);
return (&_Py_NoneStruct);
}
static PyMethodDef SHA3_methods[] = {
{"copy", (PyCFunction)_sha3_sha3_224_copy, 0x0004,
_sha3_sha3_224_copy__doc__},
{"digest", (PyCFunction)_sha3_sha3_224_digest, 0x0004,
_sha3_sha3_224_digest__doc__},
{"hexdigest", (PyCFunction)_sha3_sha3_224_hexdigest, 0x0004,
_sha3_sha3_224_hexdigest__doc__},
{"update", (PyCFunction)_sha3_sha3_224_update, 0x0008,
_sha3_sha3_224_update__doc__},
{0},
};
static PyObject *SHA3_get_block_size(SHA3object *self, void *closure) {
int rate = self->hash_state.sponge.rate;
return PyLong_FromLong(rate / 8);
}
static PyObject *SHA3_get_name(SHA3object *self, void *closure) {
PyTypeObject *type = (((PyObject *)(self))->ob_type);
if (type == &SHA3_224type) {
return PyUnicode_FromString("sha3_224");
} else if (type == &SHA3_256type) {
return PyUnicode_FromString("sha3_256");
} else if (type == &SHA3_384type) {
return PyUnicode_FromString("sha3_384");
} else if (type == &SHA3_512type) {
return PyUnicode_FromString("sha3_512");
} else if (type == &SHAKE128type) {
return PyUnicode_FromString("shake_128");
} else if (type == &SHAKE256type) {
return PyUnicode_FromString("shake_256");
} else {
PyErr_BadInternalCall();
return 0;
}
}
static PyObject *SHA3_get_digest_size(SHA3object *self, void *closure) {
return PyLong_FromLong(self->hash_state.fixedOutputLength / 8);
}
static PyObject *SHA3_get_capacity_bits(SHA3object *self, void *closure) {
int capacity = 1600 - self->hash_state.sponge.rate;
return PyLong_FromLong(capacity);
}
static PyObject *SHA3_get_rate_bits(SHA3object *self, void *closure) {
unsigned int rate = self->hash_state.sponge.rate;
return PyLong_FromLong(rate);
}
static PyObject *SHA3_get_suffix(SHA3object *self, void *closure) {
unsigned char suffix[2];
suffix[0] = self->hash_state.delimitedSuffix;
suffix[1] = 0;
return PyBytes_FromStringAndSize((const char *)suffix, 1);
}
static PyGetSetDef SHA3_getseters[] = {
{"block_size", (getter)SHA3_get_block_size},
{"name", (getter)SHA3_get_name},
{"digest_size", (getter)SHA3_get_digest_size},
{"_capacity_bits", (getter)SHA3_get_capacity_bits},
{"_rate_bits", (getter)SHA3_get_rate_bits},
{"_suffix", (getter)SHA3_get_suffix},
{0},
};
static char sha3_224__doc__[] =
"sha3_224([data]) -> SHA3 object\n\nReturn a new SHA3 hash object with a "
"hashbit length of 28 bytes.";
static char sha3_256__doc__[] =
"sha3_256([data]) -> SHA3 object\n\nReturn a new SHA3 hash object with a "
"hashbit length of 32 bytes.";
static char sha3_384__doc__[] =
"sha3_384([data]) -> SHA3 object\n\nReturn a new SHA3 hash object with a "
"hashbit length of 48 bytes.";
static char sha3_512__doc__[] =
"sha3_512([data]) -> SHA3 object\n\nReturn a new SHA3 hash object with a "
"hashbit length of 64 bytes.";
static PyTypeObject SHA3_224type = {
PyVarObject_HEAD_INIT(NULL, 0) "_sha3.sha3_224",
sizeof(SHA3object),
0,
(destructor)SHA3_dealloc,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
(0 | (1UL << 18) | 0),
sha3_224__doc__,
0,
0,
0,
0,
0,
0,
SHA3_methods,
0,
SHA3_getseters,
0,
0,
0,
0,
0,
0,
0,
py_sha3_new,
};
static PyTypeObject SHA3_256type = {
PyVarObject_HEAD_INIT(NULL, 0) "_sha3.sha3_256",
sizeof(SHA3object),
0,
(destructor)SHA3_dealloc,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
(0 | (1UL << 18) | 0),
sha3_256__doc__,
0,
0,
0,
0,
0,
0,
SHA3_methods,
0,
SHA3_getseters,
0,
0,
0,
0,
0,
0,
0,
py_sha3_new,
};
static PyTypeObject SHA3_384type = {
PyVarObject_HEAD_INIT(NULL, 0) "_sha3.sha3_384",
sizeof(SHA3object),
0,
(destructor)SHA3_dealloc,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
(0 | (1UL << 18) | 0),
sha3_384__doc__,
0,
0,
0,
0,
0,
0,
SHA3_methods,
0,
SHA3_getseters,
0,
0,
0,
0,
0,
0,
0,
py_sha3_new,
};
static PyTypeObject SHA3_512type = {
PyVarObject_HEAD_INIT(NULL, 0) "_sha3.sha3_512",
sizeof(SHA3object),
0,
(destructor)SHA3_dealloc,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
(0 | (1UL << 18) | 0),
sha3_512__doc__,
0,
0,
0,
0,
0,
0,
SHA3_methods,
0,
SHA3_getseters,
0,
0,
0,
0,
0,
0,
0,
py_sha3_new,
};
static PyObject *_SHAKE_digest(SHA3object *self, PyObject *digestlen_obj,
int hex) {
unsigned long digestlen;
unsigned char *digest = 0;
Keccak_HashInstance temp;
int res;
PyObject *result = 0;
digestlen = PyLong_AsUnsignedLong(digestlen_obj);
if (digestlen == (unsigned long)-1 && PyErr_Occurred()) {
return 0;
}
if (digestlen >= (1 << 29)) {
PyErr_SetString(PyExc_ValueError, "length is too large");
return 0;
}
digest = (unsigned char *)PyMem_Malloc(digestlen + (20 * 8));
if (digest == 0) {
return PyErr_NoMemory();
}
memcpy(&(temp), &(self->hash_state), sizeof(Keccak_HashInstance));
res = _PySHA3_Keccak_HashFinal(&temp, 0);
if (res != SUCCESS) {
PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 done()");
goto error;
}
res = _PySHA3_Keccak_HashSqueeze(&temp, digest, digestlen * 8);
if (res != SUCCESS) {
PyErr_SetString(PyExc_RuntimeError, "internal error in SHA3 Squeeze()");
return 0;
}
if (hex) {
result = _Py_strhex((const char *)digest, digestlen);
} else {
result = PyBytes_FromStringAndSize((const char *)digest, digestlen);
}
error:
if (digest != 0) {
PyMem_Free(digest);
}
return result;
}
static PyObject *_sha3_shake_128_digest(SHA3object *self, PyObject *length) {
return _SHAKE_digest(self, length, 0);
}
static PyObject *_sha3_shake_128_hexdigest(SHA3object *self, PyObject *length) {
return _SHAKE_digest(self, length, 1);
}
static PyMethodDef SHAKE_methods[] = {
{"copy", (PyCFunction)_sha3_sha3_224_copy, 0x0004,
_sha3_sha3_224_copy__doc__},
{"digest", (PyCFunction)_sha3_shake_128_digest, 0x0008,
_sha3_shake_128_digest__doc__},
{"hexdigest", (PyCFunction)_sha3_shake_128_hexdigest, 0x0008,
_sha3_shake_128_hexdigest__doc__},
{"update", (PyCFunction)_sha3_sha3_224_update, 0x0008,
_sha3_sha3_224_update__doc__},
{0, 0}};
static char shake_128__doc__[] =
"shake_128([data]) -> SHAKE object\n\nReturn a new SHAKE hash object.";
static char shake_256__doc__[] =
"shake_256([data]) -> SHAKE object\n\nReturn a new SHAKE hash object.";
static PyTypeObject SHAKE128type = {
PyVarObject_HEAD_INIT(NULL, 0) "_sha3.shake_128",
sizeof(SHA3object),
0,
(destructor)SHA3_dealloc,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
(0 | (1UL << 18) | 0),
shake_128__doc__,
0,
0,
0,
0,
0,
0,
SHAKE_methods,
0,
SHA3_getseters,
0,
0,
0,
0,
0,
0,
0,
py_sha3_new,
};
static PyTypeObject SHAKE256type = {
PyVarObject_HEAD_INIT(NULL, 0) "_sha3.shake_256",
sizeof(SHA3object),
0,
(destructor)SHA3_dealloc,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
(0 | (1UL << 18) | 0),
shake_256__doc__,
0,
0,
0,
0,
0,
0,
SHAKE_methods,
0,
SHA3_getseters,
0,
0,
0,
0,
0,
0,
0,
py_sha3_new,
};
static struct PyModuleDef _SHA3module = {PyModuleDef_HEAD_INIT, "_sha3", 0, -1};
PyObject *PyInit__sha3(void) {
PyObject *m = 0;
if ((m = PyModule_Create2(&_SHA3module, 1013)) == 0) {
return 0;
}
do {
(((PyObject *)(&SHA3_224type))->ob_type) = &PyType_Type;
if (PyType_Ready(&SHA3_224type) < 0) {
goto error;
}
(((PyObject *)((PyObject *)&SHA3_224type))->ob_refcnt++);
if (PyModule_AddObject(m, "sha3_224", (PyObject *)&SHA3_224type) < 0) {
goto error;
}
} while (0);
do {
(((PyObject *)(&SHA3_256type))->ob_type) = &PyType_Type;
if (PyType_Ready(&SHA3_256type) < 0) {
goto error;
}
(((PyObject *)((PyObject *)&SHA3_256type))->ob_refcnt++);
if (PyModule_AddObject(m, "sha3_256", (PyObject *)&SHA3_256type) < 0) {
goto error;
}
} while (0);
do {
(((PyObject *)(&SHA3_384type))->ob_type) = &PyType_Type;
if (PyType_Ready(&SHA3_384type) < 0) {
goto error;
}
(((PyObject *)((PyObject *)&SHA3_384type))->ob_refcnt++);
if (PyModule_AddObject(m, "sha3_384", (PyObject *)&SHA3_384type) < 0) {
goto error;
}
} while (0);
do {
(((PyObject *)(&SHA3_512type))->ob_type) = &PyType_Type;
if (PyType_Ready(&SHA3_512type) < 0) {
goto error;
}
(((PyObject *)((PyObject *)&SHA3_512type))->ob_refcnt++);
if (PyModule_AddObject(m, "sha3_512", (PyObject *)&SHA3_512type) < 0) {
goto error;
}
} while (0);
do {
(((PyObject *)(&SHAKE128type))->ob_type) = &PyType_Type;
if (PyType_Ready(&SHAKE128type) < 0) {
goto error;
}
(((PyObject *)((PyObject *)&SHAKE128type))->ob_refcnt++);
if (PyModule_AddObject(m, "shake_128", (PyObject *)&SHAKE128type) < 0) {
goto error;
}
} while (0);
do {
(((PyObject *)(&SHAKE256type))->ob_type) = &PyType_Type;
if (PyType_Ready(&SHAKE256type) < 0) {
goto error;
}
(((PyObject *)((PyObject *)&SHAKE256type))->ob_refcnt++);
if (PyModule_AddObject(m, "shake_256", (PyObject *)&SHAKE256type) < 0) {
goto error;
}
} while (0);
if (PyModule_AddIntConstant(m, "keccakopt", 64) < 0) {
goto error;
}
if (PyModule_AddStringConstant(m, "implementation",
"generic 64-bit optimized implementation ("
"lane complementing, all rounds unrolled"
")") < 0) {
goto error;
}
return m;
error:
do {
PyObject *_py_decref_tmp = (PyObject *)(m);
if (--(_py_decref_tmp)->ob_refcnt != 0)
;
else
((*(((PyObject *)(_py_decref_tmp))->ob_type)->tp_dealloc)(
(PyObject *)(_py_decref_tmp)));
} while (0);
return 0;
}
_Section(".rodata.pytab.1") const struct _inittab _PyImport_Inittab__sha3 = {
"_sha3",
PyInit__sha3,
};