-
Notifications
You must be signed in to change notification settings - Fork 2
/
Poseidon_S45b.h
102 lines (102 loc) · 27.1 KB
/
Poseidon_S45b.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
const int CONST_N1 = 36;
const int CONST_N2 = 11;
const F CONST[36][11] = {
{
(e32 * e32 * 0x328f06dull + 0xb5f544aad1040e58ull) , (e32 * e32 * 0x394df3cull + 0xd5c48683db8359d2ull) , (e32 * e32 * 0x3bce0c3ull + 0x7c3991b63f526454ull) , (e32 * e32 * 0x277aa08ull + 0x977c80e0a7b5217ull) , (e32 * e32 * 0x61a17a1ull + 0x2092b8db4c0f8d98ull) , (e32 * e32 * 0x34f96d4ull + 0x4fee90e9975a58e8ull) , (e32 * e32 * 0x50e5b27ull + 0xcc4fb2a75a00772aull) , (e32 * e32 * 0x425850cull + 0xfe329811fc13be5cull) , (e32 * e32 * 0x4e31023ull + 0x9c6adeb452025dfdull) , (e32 * e32 * 0x5d8c088ull + 0x2fe1eb9285a5666cull) , (e32 * e32 * 0x2be7710ull + 0x37f29bca17c96f93ull) , },
{
(e32 * e32 * 0x1bf9108ull + 0xd0c835d9731f4ccaull) , (e32 * e32 * 0x351971eull + 0xd98dbdec508968ebull) , (e32 * e32 * 0x3ae918bull + 0x7ba62003f09236bcull) , (e32 * e32 * 0x5cac6f1ull + 0x107f8c2a3602a635ull) , (e32 * e32 * 0x3467f85ull + 0xf6e6098331dadc5dull) , (e32 * e32 * 0x2b91b8bull + 0xd429f511bd60ba82ull) , (e32 * e32 * 0x6269307ull + 0x85cdc18c088ac0bull) , (e32 * e32 * 0x6ed7270ull + 0x63fc40d5efb86d39ull) , (e32 * e32 * 0x7884905ull + 0x63a80a6c37b37a70ull) , (e32 * e32 * 0x77823a7ull + 0xb577d54e59e08af6ull) , (e32 * e32 * 0x3777aa9ull + 0x3f615309a565bc37ull) , },
{
(e32 * e32 * 0x12d0964ull + 0x5b55816cb513eee8ull) , (e32 * e32 * 0x1001fbull + 0x837d8a8e17ec659cull) , (e32 * e32 * 0x1d1f36bull + 0x4d81fcf20479d22dull) , (e32 * e32 * 0x6164139ull + 0x3606ebc78447b167ull) , (e32 * e32 * 0x5c7afddull + 0x6c0ea236ac3b642full) , (e32 * e32 * 0x245e8a4ull + 0x7479add69ceabdf1ull) , (e32 * e32 * 0x610d921ull + 0x243564ccb81f3525ull) , (e32 * e32 * 0x5617b61ull + 0xf40cdd7b965d067aull) , (e32 * e32 * 0x3235f48ull + 0x842d1d9a319126b9ull) , (e32 * e32 * 0xc5a0dfull + 0x36fe8a70737b4e78ull) , (e32 * e32 * 0x3ba8804ull + 0x306c30adf9766aa4ull) , },
{
(e32 * e32 * 0x12e64bdull + 0xf07c510705204d1bull) , (e32 * e32 * 0x50a8deull + 0x49e443318f5390eull) , (e32 * e32 * 0x672f969ull + 0x3e1c381bf5a7aff8ull) , (e32 * e32 * 0x3f8e2caull + 0xf78f8c8dedc56ce1ull) , (e32 * e32 * 0x1dbb934ull + 0xc0c683f43a225540ull) , (e32 * e32 * 0x279fb67ull + 0xcef4aee5f878aea6ull) , (e32 * e32 * 0x59f9a2eull + 0xdb4d62180804530full) , (e32 * e32 * 0x5860e73ull + 0x1143b68b4af3e660ull) , (e32 * e32 * 0x6d5a0b7ull + 0x49bd0cf2db6eb8a9ull) , (e32 * e32 * 0x54fd3b8ull + 0x389c063fe9487bb5ull) , (e32 * e32 * 0x5378175ull + 0x783a5f56eb7feb07ull) , },
{
(e32 * e32 * 0x3c719daull + 0xe77a2e738da57158ull) , (e32 * e32 * 0x1c78b42ull + 0x120b3f7115f2cbd9ull) , (e32 * e32 * 0x1476a84ull + 0xe4aa1cf483bf9725ull) , (e32 * e32 * 0x1d81558ull + 0x53175e0a95a36264ull) , (e32 * e32 * 0x25293d5ull + 0xd3c38317d1c75e56ull) , (e32 * e32 * 0x103fee0ull + 0xe58bc51d3277db04ull) , (e32 * e32 * 0x517d46cull + 0x8f218904c229def2ull) , (e32 * e32 * 0x755142dull + 0x1280d651aeb5ffb3ull) , (e32 * e32 * 0x2ff9a9eull + 0xea4623bcaba4aaaaull) , (e32 * e32 * 0x1c12a9cull + 0x456c57e8c9493e4aull) , (e32 * e32 * 0x315843aull + 0x65b63416445340b0ull) , },
{
(e32 * e32 * 0x2ae6c1ull + 0x302a6aa88eb782dcull) , (e32 * e32 * 0xd843ecull + 0xede4f5bbf0002ca4ull) , (e32 * e32 * 0x1946c6ull + 0x9acf5951ca709fb2ull) , (e32 * e32 * 0x5cc5c33ull + 0x3a8234b0d93f4c12ull) , (e32 * e32 * 0x4df084full + 0x7c13632b0c4ea97aull) , (e32 * e32 * 0x47e9ac9ull + 0xd595aefad37aad08ull) , (e32 * e32 * 0x62170f5ull + 0x11e552db65c3ea5bull) , (e32 * e32 * 0x79c7de8ull + 0x4a0525c7ff3f2c58ull) , (e32 * e32 * 0xdf694eull + 0xd8f988f37935a930ull) , (e32 * e32 * 0x25cfc7eull + 0x3979736bc32d82b2ull) , (e32 * e32 * 0x14ac1d4ull + 0x915e0edb809cecc7ull) , },
{
(e32 * e32 * 0x1d0dacdull + 0x71657ccc00af0b18ull) , (e32 * e32 * 0xb67ddeull + 0xbe28b9c03018fc19ull) , (e32 * e32 * 0x7ea7200ull + 0x70e3bc41e882db84ull) , (e32 * e32 * 0x518d094ull + 0xd1bdb674002d1be4ull) , (e32 * e32 * 0x60fd0b4ull + 0x1a95f9f759bd2ab3ull) , (e32 * e32 * 0x406857eull + 0x93409c5615c1aef1ull) , (e32 * e32 * 0x208b5e7ull + 0xe9f20ce58b36c273ull) , (e32 * e32 * 0x63a9233ull + 0x153f7b7adaa71259ull) , (e32 * e32 * 0x5152094ull + 0xde496839963b944bull) , (e32 * e32 * 0x116c565ull + 0x1253832772fee5a8ull) , (e32 * e32 * 0x16265dbull + 0xa3deb21498b6c3dcull) , },
{
(e32 * e32 * 0x6c96f10ull + 0xcde7efb9fc110fb4ull) , (e32 * e32 * 0xc763cull + 0xc9f3686df2ea8959ull) , (e32 * e32 * 0x2181e9ull + 0x9ce04c80cf956dfcull) , (e32 * e32 * 0x531a926ull + 0x415606c90754102aull) , (e32 * e32 * 0x50006c9ull + 0x5542a16704e81f1eull) , (e32 * e32 * 0x4657e0aull + 0xbd21544fe06d7348ull) , (e32 * e32 * 0x19f1d1ull + 0x4a4a3e8dd7a3cccdull) , (e32 * e32 * 0x7438c86ull + 0xe337b543be13d86eull) , (e32 * e32 * 0x1467bf1ull + 0x8bc9f705d3ab40a3ull) , (e32 * e32 * 0x2d040d7ull + 0xf1dce3ef98d83ab6ull) , (e32 * e32 * 0x7e93a14ull + 0xfa0e1d73f35a4dacull) , },
{
(e32 * e32 * 0x4e9b0faull + 0xdd040e8e7c5d5a67ull) , (e32 * e32 * 0x56c15e1ull + 0x76cc7975e44dd0b9ull) , (e32 * e32 * 0x1f7da15ull + 0x410cec458bc13b5eull) , (e32 * e32 * 0xf460a1ull + 0xa5e9e7f71d55c103ull) , (e32 * e32 * 0x538f452ull + 0xa4d7006081e47df8ull) , (e32 * e32 * 0x21e4e14ull + 0xdb3a194d86c2677eull) , (e32 * e32 * 0x1e52ea8ull + 0xd0e58f6348876be1ull) , (e32 * e32 * 0x770c0c8ull + 0xbb1b5350e7f1c6e2ull) , (e32 * e32 * 0x4fb47d1ull + 0x6fb1d95fc9a4665cull) , (e32 * e32 * 0x576c049ull + 0x53c576fd956deecfull) , (e32 * e32 * 0x5bc12a9ull + 0x90ff9c1fd61dca7dull) , },
{
(e32 * e32 * 0x4a900cbull + 0x2a7900bb042ce468ull) , (e32 * e32 * 0x6b4cd43ull + 0x7383fc8ca153a64aull) , (e32 * e32 * 0x53c5c0cull + 0x5aed71618d61f8ccull) , (e32 * e32 * 0x392c7adull + 0x952f4e6afc5a0378ull) , (e32 * e32 * 0x4f85611ull + 0x4c5e4e95490606caull) , (e32 * e32 * 0x78eba9aull + 0x8d8e5f211a17ab90ull) , (e32 * e32 * 0x7152017ull + 0x1d8a5191748ceb6bull) , (e32 * e32 * 0x3581389ull + 0x5115bbbeda3ce6c2ull) , (e32 * e32 * 0x424bf7bull + 0xb56ac69b7f252a93ull) , (e32 * e32 * 0x158a02ull + 0x9c49a5059e1bffe2ull) , (e32 * e32 * 0x65d1bdfull + 0x1688ec90aa1a2bb6ull) , },
{
(e32 * e32 * 0x4d4c050ull + 0xa0a31af4e18a994aull) , (e32 * e32 * 0x2bb3366ull + 0xdc57f549548e0b85ull) , (e32 * e32 * 0x76a5e9eull + 0xcdaf387ce86efee9ull) , (e32 * e32 * 0x27c0d2eull + 0xf9b33e7955a79fc9ull) , (e32 * e32 * 0x6013f0dull + 0xe7b85851bb6ab5e8ull) , (e32 * e32 * 0x68b8e67ull + 0xb05c0fbbba6014f7ull) , (e32 * e32 * 0x3fb1e85ull + 0x941a51205bf996b0ull) , (e32 * e32 * 0x6785ea6ull + 0xa5e08ec0ee6c59bfull) , (e32 * e32 * 0x93538aull + 0xf421e9070c2ae03bull) , (e32 * e32 * 0x54f2193ull + 0xb5ebc59928321b20ull) , (e32 * e32 * 0x431dd01ull + 0x36782bb2023b68faull) , },
{
(e32 * e32 * 0x2b4be9cull + 0x411aa30dbca91194ull) , (e32 * e32 * 0x16a21dbull + 0x5169e983e8f6b901ull) , (e32 * e32 * 0x1858c51ull + 0xee0cb09d545c0238ull) , (e32 * e32 * 0x7e568efull + 0x947c73f24f0b5e5cull) , (e32 * e32 * 0x671745ull + 0x3188cbe6c618655eull) , (e32 * e32 * 0x6582fb6ull + 0x60effba8d76d1320ull) , (e32 * e32 * 0x61911ebull + 0x3e4bd6a056af252cull) , (e32 * e32 * 0x2b20abbull + 0x6b16ac56246390bull) , (e32 * e32 * 0x6ea3889ull + 0xc741e2ccf4684f32ull) , (e32 * e32 * 0x15c6446ull + 0xa2815ca4d7568848ull) , (e32 * e32 * 0x141cbfull + 0xd12393b22a7f587bull) , },
{
(e32 * e32 * 0x64dc613ull + 0xd77308595d1b852aull) , (e32 * e32 * 0x77fa5a6ull + 0x31f25e06104e8aa8ull) , (e32 * e32 * 0x3bde377ull + 0x43cc1dfacf748302ull) , (e32 * e32 * 0x1735527ull + 0x502090038b3e422aull) , (e32 * e32 * 0x3d849cdull + 0x4777e0fc11a7cca7ull) , (e32 * e32 * 0x31382b0ull + 0x45e7b5c3d9119fc1ull) , (e32 * e32 * 0x59f5b58ull + 0xb81f933bc5b29553ull) , (e32 * e32 * 0x5e8ba5eull + 0x879a25d6172c8463ull) , (e32 * e32 * 0x5f60357ull + 0x38fc7c397947bf11ull) , (e32 * e32 * 0xd4cb7ull + 0x56a4913da53f1c29ull) , (e32 * e32 * 0x60dd8f5ull + 0x7bdf6e063937a9b4ull) , },
{
(e32 * e32 * 0x4ecc164ull + 0x28cd82c476607bc3ull) , (e32 * e32 * 0x3d77aabull + 0x95f7f328676a1368ull) , (e32 * e32 * 0x2a26c5full + 0x59c18fb09d8d47d8ull) , (e32 * e32 * 0x651ae19ull + 0xd23d91fd780e3efeull) , (e32 * e32 * 0x4212b1full + 0xfb8180a8947afb5full) , (e32 * e32 * 0x1e49684ull + 0x45248662f6dda7f0ull) , (e32 * e32 * 0x7bc8af6ull + 0x7370137fa59e5614ull) , (e32 * e32 * 0x18ee2aull + 0x929d6585fdc92fc3ull) , (e32 * e32 * 0x78a8e1dull + 0x76f537610a3d9a7dull) , (e32 * e32 * 0x1b9ef8full + 0xcb373050dc9b3af2ull) , (e32 * e32 * 0x6e7393dull + 0x6d9e446b04525c1aull) , },
{
(e32 * e32 * 0x57604e6ull + 0x425a11f1c710e19dull) , (e32 * e32 * 0x1250f6eull + 0x79624872c67356f7ull) , (e32 * e32 * 0x780dfc0ull + 0x23315ed25da14481ull) , (e32 * e32 * 0x10c9e91ull + 0x83237d77226ff7b4ull) , (e32 * e32 * 0x29d7ab6ull + 0x4834227b7ba97a83ull) , (e32 * e32 * 0x2971a3aull + 0x62fa418a3893ae45ull) , (e32 * e32 * 0x3f5d62aull + 0x1ef6554ba03c9431ull) , (e32 * e32 * 0x6a62844ull + 0x668c73d7278514a7ull) , (e32 * e32 * 0x3a93022ull + 0x47cd0e9d693fbbe6ull) , (e32 * e32 * 0x2f7ff55ull + 0xfe0528923742d087ull) , (e32 * e32 * 0x73173faull + 0x3b1186dad9a8b762ull) , },
{
(e32 * e32 * 0x8a511full + 0xacdc6d99b60c496bull) , (e32 * e32 * 0x287bb83ull + 0x11bf9f0a88bfea51ull) , (e32 * e32 * 0x5abe89cull + 0x415debfa6d84943aull) , (e32 * e32 * 0x2ce14aeull + 0xccd063f8474f41acull) , (e32 * e32 * 0x5f644a1ull + 0xcb028d3d074f3b08ull) , (e32 * e32 * 0x4a1bdull + 0xb543e1d87466f5acull) , (e32 * e32 * 0x6a59a31ull + 0x312c684cc1c4040full) , (e32 * e32 * 0x1421e58ull + 0x511a30e96b239ad0ull) , (e32 * e32 * 0x656a1dull + 0x809750ffc0500a9ull) , (e32 * e32 * 0x6701ffeull + 0xda6ef4430fd09616ull) , (e32 * e32 * 0x2fb0799ull + 0xc1d944cf8e56733bull) , },
{
(e32 * e32 * 0x56c57e7ull + 0x98b564ed05db1daeull) , (e32 * e32 * 0x3f0cd30ull + 0xbfb388889f1aea98ull) , (e32 * e32 * 0x1e5941eull + 0xa64c98e9fe4fd9d6ull) , (e32 * e32 * 0x5f91e06ull + 0x54abd668d86a64acull) , (e32 * e32 * 0x5ecc1a1ull + 0x3f2e406524a5b7c1ull) , (e32 * e32 * 0x29037ccull + 0xd7de487d24ed5d72ull) , (e32 * e32 * 0x3a9adf4ull + 0x5af14fa779e9b7b2ull) , (e32 * e32 * 0x78b2f09ull + 0x2ed45de575403104ull) , (e32 * e32 * 0x72f127ull + 0xa24adf0d008a54c9ull) , (e32 * e32 * 0x4c7cda3ull + 0x43b49783730cbc06ull) , (e32 * e32 * 0x4208a81ull + 0x3d33936c5ccbc392ull) , },
{
(e32 * e32 * 0x3eb102full + 0x7979dac62a7381cull) , (e32 * e32 * 0x213de37ull + 0xacf876227588c422ull) , (e32 * e32 * 0x4d66af0ull + 0xc97f5106fd9a7c34ull) , (e32 * e32 * 0x541e38aull + 0x9a8df414c97d732ull) , (e32 * e32 * 0x2d09953ull + 0xb30e7dfb4c5eea7cull) , (e32 * e32 * 0x76f2aa2ull + 0xc7932495b67544c8ull) , (e32 * e32 * 0x3ca953full + 0x5c49efe749496b45ull) , (e32 * e32 * 0x26134a5ull + 0xec861c9dbae6c6aeull) , (e32 * e32 * 0x7e2577dull + 0x60277137d2d9eccbull) , (e32 * e32 * 0x4e78e0eull + 0xf754497e828c2eb5ull) , (e32 * e32 * 0x43aa81aull + 0xd5a81c6f21a7462eull) , },
{
(e32 * e32 * 0x14d7d78ull + 0x53defdc532b13b9ull) , (e32 * e32 * 0x24590e4ull + 0x789e1ed1592a6eb6ull) , (e32 * e32 * 0x64e7d2full + 0xe3ab9e0998c7e69full) , (e32 * e32 * 0x1b59f67ull + 0xd024ad4e6965a57dull) , (e32 * e32 * 0x123c46eull + 0x932840d3f8a474d6ull) , (e32 * e32 * 0x34c6148ull + 0x660334f5d8aaa8adull) , (e32 * e32 * 0x783eb0full + 0x9a90d0473e56e4cfull) , (e32 * e32 * 0x4feda13ull + 0x21a9aa37a75e952ull) , (e32 * e32 * 0x16e180ull + 0x30293cd95debd8e2ull) , (e32 * e32 * 0x5422261ull + 0x341cc98a9bcf3170ull) , (e32 * e32 * 0xd4cb06ull + 0x5e4cbaa29995d4aeull) , },
{
(e32 * e32 * 0xc87d1bull + 0xbf94ab9537b020f4ull) , (e32 * e32 * 0x779b0b4ull + 0x5f039479eb852c33ull) , (e32 * e32 * 0x172cdcaull + 0xf589124d8766abb9ull) , (e32 * e32 * 0x2e2cbabull + 0x1de357bf9bb9dc01ull) , (e32 * e32 * 0x6f70f3ull + 0xcc50135ca60ed20full) , (e32 * e32 * 0x52882deull + 0x22cfd2d41d1e1b7bull) , (e32 * e32 * 0x36a800full + 0x21c1db691dadcd7bull) , (e32 * e32 * 0x6661dbcull + 0x27ce7c12be35285aull) , (e32 * e32 * 0x31d954aull + 0x7883251a4607db97ull) , (e32 * e32 * 0x1a542c4ull + 0x6cdb358b12a179e4ull) , (e32 * e32 * 0x58df2ull + 0x7d72ac5ebe51883cull) , },
{
(e32 * e32 * 0x7c7e65eull + 0xb8b9018f9f003decull) , (e32 * e32 * 0x25d2f57ull + 0x798908b4768ec5cbull) , (e32 * e32 * 0x22864fcull + 0x887f6c70c766b8e1ull) , (e32 * e32 * 0x424aac4ull + 0x3b63251c0573e4eaull) , (e32 * e32 * 0xa13c35ull + 0xc0eb32b375a3c7d8ull) , (e32 * e32 * 0x3eff5d1ull + 0xb867294ff92fa48aull) , (e32 * e32 * 0x60b464eull + 0x1e31c3a16950e91full) , (e32 * e32 * 0x3d95207ull + 0xcb9157e21c9a525dull) , (e32 * e32 * 0x774bf5aull + 0x1b027451c5664dc3ull) , (e32 * e32 * 0x26e988cull + 0x4552be9e99ed3f6aull) , (e32 * e32 * 0x7a411a7ull + 0xcbb2e1bc0f99e42cull) , },
{
(e32 * e32 * 0x65ec4a3ull + 0xaf1a31505f22e191ull) , (e32 * e32 * 0x50c5c9cull + 0x35609e3a71761c07ull) , (e32 * e32 * 0x1060a55ull + 0xaadd71af70b6f77ull) , (e32 * e32 * 0x6383ab2ull + 0xe5bfaaf69651d1b5ull) , (e32 * e32 * 0x1c608e2ull + 0xc65ef53adc7985edull) , (e32 * e32 * 0x79eed3cull + 0xadc7c4e381685a67ull) , (e32 * e32 * 0x63b4777ull + 0xd597e6fac2f15b87ull) , (e32 * e32 * 0xaf724bull + 0x140b7994009fd00dull) , (e32 * e32 * 0x303c0f0ull + 0xe6bce4b2b73ef70cull) , (e32 * e32 * 0x3ecb562ull + 0x424ef6beb84dc9adull) , (e32 * e32 * 0x7eb43ceull + 0xd30ea4ce5416d425ull) , },
{
(e32 * e32 * 0x46b1d66ull + 0x83e7392313d1b4f1ull) , (e32 * e32 * 0x5764be5ull + 0x6c045df321ab3fe4ull) , (e32 * e32 * 0x15c0967ull + 0xd0080a6593d6897eull) , (e32 * e32 * 0x1bcd28eull + 0x9709c41f986f3afull) , (e32 * e32 * 0xcb3bf7ull + 0xeffe6fb4876c58a2ull) , (e32 * e32 * 0x1a7bb96ull + 0xb464b0186e818b28ull) , (e32 * e32 * 0x4c45a3aull + 0xc6170b51188547a9ull) , (e32 * e32 * 0x7be0a9full + 0x829fd621af402b56ull) , (e32 * e32 * 0x7394b9dull + 0x9415838d44876ef8ull) , (e32 * e32 * 0x6099966ull + 0x1ee32161d7d3f68ull) , (e32 * e32 * 0x76b765full + 0x6c63ea9f2b8c146full) , },
{
(e32 * e32 * 0x3bc34e9ull + 0x43bb157b2ed8b9feull) , (e32 * e32 * 0x11d7b4dull + 0x81d78c6aa0662fb7ull) , (e32 * e32 * 0x109632cull + 0x371ca69d987234ull) , (e32 * e32 * 0x49502cbull + 0x4914aa79d9446d10ull) , (e32 * e32 * 0x52707cbull + 0xf4033b342cb761d1ull) , (e32 * e32 * 0x41822c3ull + 0xcf5c6b46cbadfbbfull) , (e32 * e32 * 0x63d51f9ull + 0x8b8ee46ff8487d50ull) , (e32 * e32 * 0xbc3c55ull + 0x51a8afab46fe71c9ull) , (e32 * e32 * 0x3c77d0eull + 0xe334444ae83c059bull) , (e32 * e32 * 0x4d0239full + 0xebb7f4f9b14bbe10ull) , (e32 * e32 * 0x7001b76ull + 0x6dbedbc55528b4dfull) , },
{
(e32 * e32 * 0x2975378ull + 0xb9439ef6de2fba86ull) , (e32 * e32 * 0x3a783b9ull + 0x2fe0baf2c854247bull) , (e32 * e32 * 0x5ff7a67ull + 0xbccee44ca89794b0ull) , (e32 * e32 * 0x32b9d85ull + 0xd856196f5a3b837full) , (e32 * e32 * 0x2b69a3dull + 0x8e0a5b3f4735193eull) , (e32 * e32 * 0x7eca231ull + 0xb938fbaa53b75c8cull) , (e32 * e32 * 0x1c5ad42ull + 0x5b409aced4ac4d53ull) , (e32 * e32 * 0x4fec33bull + 0xae2f1c7bfa95f7a4ull) , (e32 * e32 * 0x1caa4e5ull + 0x502342e839567523ull) , (e32 * e32 * 0x4a74028ull + 0xff2f127e1210a373ull) , (e32 * e32 * 0x32280a0ull + 0x84bffdd60a74aaabull) , },
{
(e32 * e32 * 0x4fc5598ull + 0xd21eb85e11aca50eull) , (e32 * e32 * 0x5f24064ull + 0x936d986aef85f687ull) , (e32 * e32 * 0x281df55ull + 0xf75b513dad268138ull) , (e32 * e32 * 0x2107ea3ull + 0x11a63689b88a4390ull) , (e32 * e32 * 0x3edb358ull + 0x47824f43c762119bull) , (e32 * e32 * 0x602b3b0ull + 0x9d8187c3d4751aceull) , (e32 * e32 * 0x3e06ffcull + 0xe30e8bf606fa9780ull) , (e32 * e32 * 0x470d1bbull + 0xfedb7df4e157e64dull) , (e32 * e32 * 0x67c0f91ull + 0x7738197e12ded032ull) , (e32 * e32 * 0x176ffb0ull + 0xc0d7f2d91bd73a2cull) , (e32 * e32 * 0x5b02ea7ull + 0x943ec1297d3ff9e9ull) , },
{
(e32 * e32 * 0x279e33bull + 0x38aba52baa5165eaull) , (e32 * e32 * 0x2448b00ull + 0xb385e207d2627110ull) , (e32 * e32 * 0x538c5bcull + 0x66bef45fda1839bfull) , (e32 * e32 * 0x3c4d23ull + 0x173ab1d23ac631ceull) , (e32 * e32 * 0x53ab9e3ull + 0x97b0e060dda2f439ull) , (e32 * e32 * 0x1df05d3ull + 0x2acaf24f7f9b8954ull) , (e32 * e32 * 0x3907326ull + 0x27d88d35eadb819ull) , (e32 * e32 * 0x1039978ull + 0xd595e4e42c5b05a1ull) , (e32 * e32 * 0x22fe8dfull + 0xecd038bf68ba9615ull) , (e32 * e32 * 0x49e5164ull + 0xda05dcf0bd90136ull) , (e32 * e32 * 0x504a450ull + 0xc4f527e5d04123eull) , },
{
(e32 * e32 * 0x39177b9ull + 0x96d37d3cf83e6e3aull) , (e32 * e32 * 0x2c9206eull + 0xab56976f98b9b86bull) , (e32 * e32 * 0x2cf3348ull + 0xc7d4ccec7bef3648ull) , (e32 * e32 * 0x218beebull + 0x371e5a91f4703158ull) , (e32 * e32 * 0x7f63b9eull + 0xc49551db55aaf216ull) , (e32 * e32 * 0x3fd278aull + 0xace1808f313f666cull) , (e32 * e32 * 0x4b71a6ull + 0xec256b13bcfa6d8eull) , (e32 * e32 * 0x4634518ull + 0xda2f53a7df2de56eull) , (e32 * e32 * 0x34e5262ull + 0xcacbe9bb9876c100ull) , (e32 * e32 * 0xc0ac67ull + 0x7f74265e55cc14abull) , (e32 * e32 * 0x288f0b6ull + 0xf10aed0cc984d862ull) , },
{
(e32 * e32 * 0x44aada7ull + 0x148827c242a2c3f5ull) , (e32 * e32 * 0x597c86full + 0x56cea9a5b15d8f58ull) , (e32 * e32 * 0xa9eef5ull + 0x98bcbfa24a4045fbull) , (e32 * e32 * 0x46ea952ull + 0x3801ff92ddf43701ull) , (e32 * e32 * 0x57a99ceull + 0x92abc1da83521c9bull) , (e32 * e32 * 0x7df8434ull + 0xf4a4d07ae670cc44ull) , (e32 * e32 * 0x2b82f30ull + 0x3bef889c86d1fff1ull) , (e32 * e32 * 0x3a360c8ull + 0x9e1931e227f6881bull) , (e32 * e32 * 0x51d3644ull + 0x7156fa64e6362b38ull) , (e32 * e32 * 0x5233415ull + 0xe0813e74a151db2cull) , (e32 * e32 * 0x288082dull + 0x7fcf89af7243e693ull) , },
{
(e32 * e32 * 0x5cd9383ull + 0x7698d51b4a73731cull) , (e32 * e32 * 0x6ab46bcull + 0x237352bf971ff5b0ull) , (e32 * e32 * 0x7494e2ull + 0xe3345074f57eb430ull) , (e32 * e32 * 0x3491497ull + 0xa81f739ac0ba34c3ull) , (e32 * e32 * 0x5bcaa2cull + 0x8b2c727f4f9cfbd6ull) , (e32 * e32 * 0x1f95222ull + 0xef09703a0da270f9ull) , (e32 * e32 * 0x16d7b6ull + 0xcfe4ff3238ddefc2ull) , (e32 * e32 * 0x4f8ac9ull + 0x3bd24fe815d46e3bull) , (e32 * e32 * 0x3b91e24ull + 0xc99a0a1c85384958ull) , (e32 * e32 * 0x143dfdcull + 0x6253df5da5de248bull) , (e32 * e32 * 0xad3207ull + 0x79b4688710791ecfull) , },
{
(e32 * e32 * 0x7fd72e5ull + 0x8ed40872eb0df157ull) , (e32 * e32 * 0x366973dull + 0xb89648d00e3776e3ull) , (e32 * e32 * 0x40c2183ull + 0x36aa5312031b6aa6ull) , (e32 * e32 * 0x1548733ull + 0x47c6fab9c676e32bull) , (e32 * e32 * 0x15a813aull + 0xe03205dc7d2b704bull) , (e32 * e32 * 0x2807168ull + 0x398886607890f861ull) , (e32 * e32 * 0x1454f2dull + 0x1b0f82b6052252cbull) , (e32 * e32 * 0x2419e64ull + 0xc5413bbd656bba4bull) , (e32 * e32 * 0x3a56952ull + 0x8be306b48aaa9dc8ull) , (e32 * e32 * 0x2cffae3ull + 0x3a8c5571e75c293eull) , (e32 * e32 * 0x5340fecull + 0x4725a81546beb7ecull) , },
{
(e32 * e32 * 0x5f8a0f9ull + 0x597b742255b91f5eull) , (e32 * e32 * 0x36a578dull + 0x1db52d34138b6939ull) , (e32 * e32 * 0x15b2603ull + 0x8ed907d0effada4cull) , (e32 * e32 * 0x177c00bull + 0x1a099b0dbbd218abull) , (e32 * e32 * 0x6689238ull + 0x865c2ace6bfb26eaull) , (e32 * e32 * 0xff7464ull + 0xef2ca9d6a15acc6dull) , (e32 * e32 * 0x58fd72eull + 0xcfa658df30257e3aull) , (e32 * e32 * 0x12d086eull + 0x32986510f889cd63ull) , (e32 * e32 * 0x21521d8ull + 0x37ac6cbe7709295dull) , (e32 * e32 * 0x722365aull + 0x979b8983b79a4c12ull) , (e32 * e32 * 0x6bd25acull + 0x132ffa73301ec0f3ull) , },
{
(e32 * e32 * 0x685a5dfull + 0xca05f1c8d7426d62ull) , (e32 * e32 * 0x7996063ull + 0xaacdc7b6f4bffd9dull) , (e32 * e32 * 0x38d4fb7ull + 0x6948880059d7dc6eull) , (e32 * e32 * 0x20e21aaull + 0x83273f3f24d0b997ull) , (e32 * e32 * 0x687b563ull + 0xdd92236ecd3d8bbaull) , (e32 * e32 * 0xdb8538ull + 0x749d3ebbcb147634ull) , (e32 * e32 * 0x12083b9ull + 0x5c025ddf85543648ull) , (e32 * e32 * 0x6c9d2a8ull + 0xa3d7351e3a3018b8ull) , (e32 * e32 * 0x7e56b4ull + 0xa0e054f5396d0559ull) , (e32 * e32 * 0x710ecb8ull + 0xebe9abcb80f946e3ull) , (e32 * e32 * 0x6e2552full + 0x81f07d4f65f50edfull) , },
{
(e32 * e32 * 0x4695a12ull + 0xca3e6fa11d4ab557ull) , (e32 * e32 * 0x5a58741ull + 0xead51873681af134ull) , (e32 * e32 * 0x46b5ca2ull + 0x46e5df533debdf79ull) , (e32 * e32 * 0x3c86e4eull + 0x8e050491a711c048ull) , (e32 * e32 * 0x278adfdull + 0x889bc134219c007bull) , (e32 * e32 * 0x5d34d99ull + 0xbdf1bce7e5c7161dull) , (e32 * e32 * 0x410aaf2ull + 0xd9b29a1adc63fdbeull) , (e32 * e32 * 0x1374c4aull + 0x12eb9ceca614d4e4ull) , (e32 * e32 * 0x3a5e4ceull + 0x9e7cfff3a6afe964ull) , (e32 * e32 * 0xb241eeull + 0x765bd234bf5ab4acull) , (e32 * e32 * 0x165045eull + 0x517b8b112c3cb3b2ull) , },
{
(e32 * e32 * 0x3c26440ull + 0x4dfc90275a34ce3aull) , (e32 * e32 * 0x270a7ecull + 0xf24bf24817385f15ull) , (e32 * e32 * 0x4a4a7b7ull + 0x1affe12f3ec51e9dull) , (e32 * e32 * 0x283fb1cull + 0x8be00f02a1140921ull) , (e32 * e32 * 0x6327561ull + 0x91f621fa89a25850ull) , (e32 * e32 * 0x1c45708ull + 0xf319109c186cde70ull) , (e32 * e32 * 0x64cc259ull + 0x7841ae63665b7525ull) , (e32 * e32 * 0x3e397caull + 0xb7817469b4596247ull) , (e32 * e32 * 0x15d1786ull + 0xaa6b60bfeef50f11ull) , (e32 * e32 * 0x3b2107aull + 0xaf72fa1dea660fa7ull) , (e32 * e32 * 0x3cd796ull + 0xb6746ae7cef73255ull) , },
{
(e32 * e32 * 0x77e9193ull + 0x81839e0d0fe53d83ull) , (e32 * e32 * 0x6421e5ull + 0xe93675fd6f9aa842ull) , (e32 * e32 * 0x4a49224ull + 0xc215685fa1a78e47ull) , (e32 * e32 * 0x1f3c221ull + 0xccc8ac34522f77ddull) , (e32 * e32 * 0x1ccac14ull + 0xffe638498b05b945ull) , (e32 * e32 * 0x7b9cbcdull + 0x58b2e33124fe6628ull) , (e32 * e32 * 0x60ceb03ull + 0x6945325ac6772d92ull) , (e32 * e32 * 0x768d611ull + 0x1b34e7b681606e4bull) , (e32 * e32 * 0x6cfc2b9ull + 0x68ae52283409f195ull) , (e32 * e32 * 0x48f1abull + 0xdb39be556471edd4ull) , (e32 * e32 * 0x7c9b189ull + 0xec93a40f8dfd2fb2ull) , },
};
const int MDS_N1 = 11;
const int MDS_N2 = 11;
const F MDS[11][11] = {
{
(e32 * e32 * 0x772ea9eull + 0x6ac0f8f87c7d1660ull) , (e32 * e32 * 0x1bae99bull + 0xde9359886349d207ull) , (e32 * e32 * 0x21434eull + 0xa1e17645fdc61413ull) , (e32 * e32 * 0xf4e54full + 0x8179cc408e51f9afull) , (e32 * e32 * 0x5a30f8ull + 0x2bd962913d508972ull) , (e32 * e32 * 0x65b3dull + 0x904a78926fe79ae3ull) , (e32 * e32 * 0x547870bull + 0x1d7a33a9a6428293ull) , (e32 * e32 * 0x34d532cull + 0x6aed79c750222244ull) , (e32 * e32 * 0x274a22full + 0x956e84a7be7b53acull) , (e32 * e32 * 0x1dbf3c2ull + 0xb8e7fc30d3fe634cull) , (e32 * e32 * 0x4ebfcbeull + 0xda91953f37cef4baull) , },
{
(e32 * e32 * 0x5999226ull + 0x968167e7b7123ac3ull) , (e32 * e32 * 0x12c775bull + 0xc6b8e8ff48f48667ull) , (e32 * e32 * 0x385c625ull + 0xd65d66b3b415e1a0ull) , (e32 * e32 * 0xe2dbacull + 0xd3d8a2d175e840a8ull) , (e32 * e32 * 0x593350cull + 0xf8ff1f92a062ac19ull) , (e32 * e32 * 0x645a8bdull + 0xe7030a5f0336a69eull) , (e32 * e32 * 0x71a814full + 0xe5af9560ac750a6bull) , (e32 * e32 * 0x61be489ull + 0xa408ee686a604359ull) , (e32 * e32 * 0x6562129ull + 0x7bcfd0b9c5be4f3cull) , (e32 * e32 * 0x1bade1full + 0x51e4b21b07bd3b2aull) , (e32 * e32 * 0x5f40eb3ull + 0x99657fd15fd68c9aull) , },
{
(e32 * e32 * 0x742086aull + 0xed3ca1f181695608ull) , (e32 * e32 * 0x23aff02ull + 0xf33b0bf462050e4bull) , (e32 * e32 * 0x7c66faaull + 0xca310836c26ab83bull) , (e32 * e32 * 0x7fe0c89ull + 0xf2f870e4e54d1ba3ull) , (e32 * e32 * 0x24e5631ull + 0xd84cc3daf42b19a7ull) , (e32 * e32 * 0x1d880fcull + 0x82791e37a6ac0686ull) , (e32 * e32 * 0x57161cdull + 0x22bf41494628eafdull) , (e32 * e32 * 0xad641eull + 0x1a918bec4fa508feull) , (e32 * e32 * 0x3cf5302ull + 0xc0269fa93dd4b75dull) , (e32 * e32 * 0x65c6067ull + 0x789110a3dd7acacfull) , (e32 * e32 * 0x196d6f8ull + 0x32f8a80153bf015eull) , },
{
(e32 * e32 * 0x4894d2cull + 0x8ce5dc7533b09342ull) , (e32 * e32 * 0x253432cull + 0x736060472051a1aaull) , (e32 * e32 * 0x3cb16f3ull + 0xdc747d469496f28cull) , (e32 * e32 * 0x2d6b115ull + 0x281d74a6deab18c8ull) , (e32 * e32 * 0x738001dull + 0x5f7d3f9667f5831bull) , (e32 * e32 * 0x4526c17ull + 0x1f41a970dfccdda0ull) , (e32 * e32 * 0x5cce1d9ull + 0x6639c4f93bd2cbedull) , (e32 * e32 * 0x699994eull + 0x6afd34442ab1728ull) , (e32 * e32 * 0x3a94f07ull + 0xd35470b6d2005b74ull) , (e32 * e32 * 0x6ec1936ull + 0x78ddcb88cef77bd9ull) , (e32 * e32 * 0x76f15c3ull + 0xa16e94d2aca8a615ull) , },
{
(e32 * e32 * 0x1aaa327ull + 0x4be3ac2964992e02ull) , (e32 * e32 * 0x1256f2cull + 0x8b7476baffce3c1full) , (e32 * e32 * 0x1e684a6ull + 0xa2d55d5c584cb71ull) , (e32 * e32 * 0x20bd97eull + 0xadd4a5ef6009a219ull) , (e32 * e32 * 0x7d01092ull + 0xbef3aab837b9819dull) , (e32 * e32 * 0x24a0e75ull + 0x92ebc38e3d6d79e5ull) , (e32 * e32 * 0x2a78a6ull + 0x5d0c117aa1b818c7ull) , (e32 * e32 * 0x1bfbe95ull + 0x39b30f7bc1a86344ull) , (e32 * e32 * 0x3a4c8e5ull + 0x1b613b135d307c4dull) , (e32 * e32 * 0x1f74e5ull + 0xb77a2fcb046d3f12ull) , (e32 * e32 * 0x9428ecull + 0x87f4193b8fe1fc82ull) , },
{
(e32 * e32 * 0x585e7b9ull + 0x77fac18125ecf1efull) , (e32 * e32 * 0x640ed7aull + 0xa5e245eb36e9c026ull) , (e32 * e32 * 0x439ad82ull + 0x73e007de2c0f839dull) , (e32 * e32 * 0x66e4e20ull + 0xd0ac1363e73f340bull) , (e32 * e32 * 0x16c5790ull + 0x5653315b6641a0dcull) , (e32 * e32 * 0x4154c94ull + 0xfd9b33ecb6da76eaull) , (e32 * e32 * 0x36dfaa4ull + 0x9c18a8519a3b0860ull) , (e32 * e32 * 0x6858961ull + 0xbb5c037d33871818ull) , (e32 * e32 * 0x103c62cull + 0xfc9391bec80cddffull) , (e32 * e32 * 0x4ead927ull + 0xe64681ec354187aull) , (e32 * e32 * 0x36518abull + 0xd718b63b69dd1869ull) , },
{
(e32 * e32 * 0x537192full + 0x9009e7820dfef437ull) , (e32 * e32 * 0x2b07183ull + 0xbad7637867b07bf2ull) , (e32 * e32 * 0x1047851ull + 0xdf38f2be195db6bdull) , (e32 * e32 * 0x53d08full + 0xf280a80262457c45ull) , (e32 * e32 * 0x1c17bddull + 0x4b2fb372a8eea064ull) , (e32 * e32 * 0xbd9539ull + 0x9d4701d5ed005c4ull) , (e32 * e32 * 0x23432e6ull + 0xba899f13f154b05ull) , (e32 * e32 * 0x685f359ull + 0x1adf8c962f2d96c2ull) , (e32 * e32 * 0x432db01ull + 0xa91ac86fb27c9eb4ull) , (e32 * e32 * 0x20f26cfull + 0x1fc58279fc0f6c0eull) , (e32 * e32 * 0x2b65abeull + 0x31fa481acc24767eull) , },
{
(e32 * e32 * 0x7e86e22ull + 0x6636955139a23074ull) , (e32 * e32 * 0x14bc78full + 0x52b8b9e4474e7e63ull) , (e32 * e32 * 0x73d378full + 0x67c78aa74e7e5dbaull) , (e32 * e32 * 0x1aa4b10ull + 0xf4cde82103866ac1ull) , (e32 * e32 * 0x786fab5ull + 0x8105898103b744d3ull) , (e32 * e32 * 0x5d0cdbcull + 0x158d1f3017810b97ull) , (e32 * e32 * 0x5d6617bull + 0xa3db70090668dfe5ull) , (e32 * e32 * 0x3e1de3dull + 0x2bbb57eb5035bfd8ull) , (e32 * e32 * 0x3f136bbull + 0xa60ff03fef994c93ull) , (e32 * e32 * 0x4a60615ull + 0x169f1fd65c3d7e86ull) , (e32 * e32 * 0x12927fdull + 0x1a0f37f6f6216308ull) , },
{
(e32 * e32 * 0x27947a4ull + 0xd5e58cdd34bf4446ull) , (e32 * e32 * 0x28235f9ull + 0xe58347ca8ca695bfull) , (e32 * e32 * 0x4d86d18ull + 0x76c33ca85cad3b6cull) , (e32 * e32 * 0x77328ecull + 0xb74cd9aea77403a7ull) , (e32 * e32 * 0x7b96471ull + 0xbbb758e81b6b7019ull) , (e32 * e32 * 0x6f795c7ull + 0x5b0a165eead6637aull) , (e32 * e32 * 0x580d2a6ull + 0x504aa40cb39d9547ull) , (e32 * e32 * 0x66ace2eull + 0x9ff3672ff5305852ull) , (e32 * e32 * 0x13caabeull + 0x4bbd2d8b887f0778ull) , (e32 * e32 * 0x62bea09ull + 0x6f9f816e62cf4064ull) , (e32 * e32 * 0x411d9f3ull + 0x5f4077265d51b547ull) , },
{
(e32 * e32 * 0x2d47bc9ull + 0xe040a92c1977cdabull) , (e32 * e32 * 0x1b633daull + 0x9c1062cebaf1fb0aull) , (e32 * e32 * 0x66d649full + 0xd743c1473faf6560ull) , (e32 * e32 * 0x1250829ull + 0x970e30b5c9b9ef2cull) , (e32 * e32 * 0x58a0981ull + 0x1d24c0b9e86d6ad3ull) , (e32 * e32 * 0x40798aull + 0x4bb26a667ca0ad26ull) , (e32 * e32 * 0x50d715ull + 0x7208d91f224c8e3dull) , (e32 * e32 * 0x78768ddull + 0x889a7422290dcdbdull) , (e32 * e32 * 0x276ff0cull + 0x9b4bb0ebf77f984ull) , (e32 * e32 * 0x207581full + 0x9b929079106034b0ull) , (e32 * e32 * 0x52a64b5ull + 0x7f1904d3e10253e9ull) , },
{
(e32 * e32 * 0x438f9f9ull + 0x58d3ec0771e783e4ull) , (e32 * e32 * 0x5fc64aeull + 0x9ec4a63b697f880bull) , (e32 * e32 * 0x37c7c42ull + 0x821a60a136be8bd6ull) , (e32 * e32 * 0x55846eeull + 0x63cc7c2ec647712full) , (e32 * e32 * 0x33ab6cbull + 0x5d97c5d3332e044eull) , (e32 * e32 * 0x7008737ull + 0x71f6f61b00434b77ull) , (e32 * e32 * 0x5270a1ull + 0x9a5a1b09068db82dull) , (e32 * e32 * 0x6810ef2ull + 0xd49e948a62a71277ull) , (e32 * e32 * 0x77420f4ull + 0x8ddedd15ae14905aull) , (e32 * e32 * 0x1c06465ull + 0xcce2e9e52cb7fbbcull) , (e32 * e32 * 0x4c922cfull + 0x63116729b68f4063ull) , },
};