arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
gnark-plonky2-verifier/poseidon/constants.go
poseidon/constants.goRaw
   1package poseidon
   2
   3var ALL_ROUND_CONSTANTS = []uint64{
   4	0xb585f766f2144405,
   5	0x7746a55f43921ad7,
   6	0xb2fb0d31cee799b4,
   7	0x0f6760a4803427d7,
   8	0xe10d666650f4e012,
   9	0x8cae14cb07d09bf1,
  10	0xd438539c95f63e9f,
  11	0xef781c7ce35b4c3d,
  12	0xcdc4a239b0c44426,
  13	0x277fa208bf337bff,
  14	0xe17653a29da578a1,
  15	0xc54302f225db2c76,
  16	0x86287821f722c881,
  17	0x59cd1a8a41c18e55,
  18	0xc3b919ad495dc574,
  19	0xa484c4c5ef6a0781,
  20	0x308bbd23dc5416cc,
  21	0x6e4a40c18f30c09c,
  22	0x9a2eedb70d8f8cfa,
  23	0xe360c6e0ae486f38,
  24	0xd5c7718fbfc647fb,
  25	0xc35eae071903ff0b,
  26	0x849c2656969c4be7,
  27	0xc0572c8c08cbbbad,
  28	0xe9fa634a21de0082,
  29	0xf56f6d48959a600d,
  30	0xf7d713e806391165,
  31	0x8297132b32825daf,
  32	0xad6805e0e30b2c8a,
  33	0xac51d9f5fcf8535e,
  34	0x502ad7dc18c2ad87,
  35	0x57a1550c110b3041,
  36	0x66bbd30e6ce0e583,
  37	0x0da2abef589d644e,
  38	0xf061274fdb150d61,
  39	0x28b8ec3ae9c29633,
  40	0x92a756e67e2b9413,
  41	0x70e741ebfee96586,
  42	0x019d5ee2af82ec1c,
  43	0x6f6f2ed772466352,
  44	0x7cf416cfe7e14ca1,
  45	0x61df517b86a46439,
  46	0x85dc499b11d77b75,
  47	0x4b959b48b9c10733,
  48	0xe8be3e5da8043e57,
  49	0xf5c0bc1de6da8699,
  50	0x40b12cbf09ef74bf,
  51	0xa637093ecb2ad631,
  52	0x3cc3f892184df408,
  53	0x2e479dc157bf31bb,
  54	0x6f49de07a6234346,
  55	0x213ce7bede378d7b,
  56	0x5b0431345d4dea83,
  57	0xa2de45780344d6a1,
  58	0x7103aaf94a7bf308,
  59	0x5326fc0d97279301,
  60	0xa9ceb74fec024747,
  61	0x27f8ec88bb21b1a3,
  62	0xfceb4fda1ded0893,
  63	0xfac6ff1346a41675,
  64	0x7131aa45268d7d8c,
  65	0x9351036095630f9f,
  66	0xad535b24afc26bfb,
  67	0x4627f5c6993e44be,
  68	0x645cf794b8f1cc58,
  69	0x241c70ed0af61617,
  70	0xacb8e076647905f1,
  71	0x3737e9db4c4f474d,
  72	0xe7ea5e33e75fffb6,
  73	0x90dee49fc9bfc23a,
  74	0xd1b1edf76bc09c92,
  75	0x0b65481ba645c602,
  76	0x99ad1aab0814283b,
  77	0x438a7c91d416ca4d,
  78	0xb60de3bcc5ea751c,
  79	0xc99cab6aef6f58bc,
  80	0x69a5ed92a72ee4ff,
  81	0x5e7b329c1ed4ad71,
  82	0x5fc0ac0800144885,
  83	0x32db829239774eca,
  84	0x0ade699c5830f310,
  85	0x7cc5583b10415f21,
  86	0x85df9ed2e166d64f,
  87	0x6604df4fee32bcb1,
  88	0xeb84f608da56ef48,
  89	0xda608834c40e603d,
  90	0x8f97fe408061f183,
  91	0xa93f485c96f37b89,
  92	0x6704e8ee8f18d563,
  93	0xcee3e9ac1e072119,
  94	0x510d0e65e2b470c1,
  95	0xf6323f486b9038f0,
  96	0x0b508cdeffa5ceef,
  97	0xf2417089e4fb3cbd,
  98	0x60e75c2890d15730,
  99	0xa6217d8bf660f29c,
 100	0x7159cd30c3ac118e,
 101	0x839b4e8fafead540,
 102	0x0d3f3e5e82920adc,
 103	0x8f7d83bddee7bba8,
 104	0x780f2243ea071d06,
 105	0xeb915845f3de1634,
 106	0xd19e120d26b6f386,
 107	0x016ee53a7e5fecc6,
 108	0xcb5fd54e7933e477,
 109	0xacb8417879fd449f,
 110	0x9c22190be7f74732,
 111	0x5d693c1ba3ba3621,
 112	0xdcef0797c2b69ec7,
 113	0x3d639263da827b13,
 114	0xe273fd971bc8d0e7,
 115	0x418f02702d227ed5,
 116	0x8c25fda3b503038c,
 117	0x2cbaed4daec8c07c,
 118	0x5f58e6afcdd6ddc2,
 119	0x284650ac5e1b0eba,
 120	0x635b337ee819dab5,
 121	0x9f9a036ed4f2d49f,
 122	0xb93e260cae5c170e,
 123	0xb0a7eae879ddb76d,
 124	0xd0762cbc8ca6570c,
 125	0x34c6efb812b04bf5,
 126	0x40bf0ab5fa14c112,
 127	0xb6b570fc7c5740d3,
 128	0x5a27b9002de33454,
 129	0xb1a5b165b6d2b2d2,
 130	0x8722e0ace9d1be22,
 131	0x788ee3b37e5680fb,
 132	0x14a726661551e284,
 133	0x98b7672f9ef3b419,
 134	0xbb93ae776bb30e3a,
 135	0x28fd3b046380f850,
 136	0x30a4680593258387,
 137	0x337dc00c61bd9ce1,
 138	0xd5eca244c7a4ff1d,
 139	0x7762638264d279bd,
 140	0xc1e434bedeefd767,
 141	0x0299351a53b8ec22,
 142	0xb2d456e4ad251b80,
 143	0x3e9ed1fda49cea0b,
 144	0x2972a92ba450bed8,
 145	0x20216dd77be493de,
 146	0xadffe8cf28449ec6,
 147	0x1c4dbb1c4c27d243,
 148	0x15a16a8a8322d458,
 149	0x388a128b7fd9a609,
 150	0x2300e5d6baedf0fb,
 151	0x2f63aa8647e15104,
 152	0xf1c36ce86ecec269,
 153	0x27181125183970c9,
 154	0xe584029370dca96d,
 155	0x4d9bbc3e02f1cfb2,
 156	0xea35bc29692af6f8,
 157	0x18e21b4beabb4137,
 158	0x1e3b9fc625b554f4,
 159	0x25d64362697828fd,
 160	0x5a3f1bb1c53a9645,
 161	0xdb7f023869fb8d38,
 162	0xb462065911d4e1fc,
 163	0x49c24ae4437d8030,
 164	0xd793862c112b0566,
 165	0xaadd1106730d8feb,
 166	0xc43b6e0e97b0d568,
 167	0xe29024c18ee6fca2,
 168	0x5e50c27535b88c66,
 169	0x10383f20a4ff9a87,
 170	0x38e8ee9d71a45af8,
 171	0xdd5118375bf1a9b9,
 172	0x775005982d74d7f7,
 173	0x86ab99b4dde6c8b0,
 174	0xb1204f603f51c080,
 175	0xef61ac8470250ecf,
 176	0x1bbcd90f132c603f,
 177	0x0cd1dabd964db557,
 178	0x11a3ae5beb9d1ec9,
 179	0xf755bfeea585d11d,
 180	0xa3b83250268ea4d7,
 181	0x516306f4927c93af,
 182	0xddb4ac49c9efa1da,
 183	0x64bb6dec369d4418,
 184	0xf9cc95c22b4c1fcc,
 185	0x08d37f755f4ae9f6,
 186	0xeec49b613478675b,
 187	0xf143933aed25e0b0,
 188	0xe4c5dd8255dfc622,
 189	0xe7ad7756f193198e,
 190	0x92c2318b87fff9cb,
 191	0x739c25f8fd73596d,
 192	0x5636cac9f16dfed0,
 193	0xdd8f909a938e0172,
 194	0xc6401fe115063f5b,
 195	0x8ad97b33f1ac1455,
 196	0x0c49366bb25e8513,
 197	0x0784d3d2f1698309,
 198	0x530fb67ea1809a81,
 199	0x410492299bb01f49,
 200	0x139542347424b9ac,
 201	0x9cb0bd5ea1a1115e,
 202	0x02e3f615c38f49a1,
 203	0x985d4f4a9c5291ef,
 204	0x775b9feafdcd26e7,
 205	0x304265a6384f0f2d,
 206	0x593664c39773012c,
 207	0x4f0a2e5fb028f2ce,
 208	0xdd611f1000c17442,
 209	0xd8185f9adfea4fd0,
 210	0xef87139ca9a3ab1e,
 211	0x3ba71336c34ee133,
 212	0x7d3a455d56b70238,
 213	0x660d32e130182684,
 214	0x297a863f48cd1f43,
 215	0x90e0a736a751ebb7,
 216	0x549f80ce550c4fd3,
 217	0x0f73b2922f38bd64,
 218	0x16bf1f73fb7a9c3f,
 219	0x6d1f5a59005bec17,
 220	0x02ff876fa5ef97c4,
 221	0xc5cb72a2a51159b0,
 222	0x8470f39d2d5c900e,
 223	0x25abb3f1d39fcb76,
 224	0x23eb8cc9b372442f,
 225	0xd687ba55c64f6364,
 226	0xda8d9e90fd8ff158,
 227	0xe3cbdc7d2fe45ea7,
 228	0xb9a8c9b3aee52297,
 229	0xc0d28a5c10960bd3,
 230	0x45d7ac9b68f71a34,
 231	0xeeb76e397069e804,
 232	0x3d06c8bd1514e2d9,
 233	0x9c9c98207cb10767,
 234	0x65700b51aedfb5ef,
 235	0x911f451539869408,
 236	0x7ae6849fbc3a0ec6,
 237	0x3bb340eba06afe7e,
 238	0xb46e9d8b682ea65e,
 239	0x8dcf22f9a3b34356,
 240	0x77bdaeda586257a7,
 241	0xf19e400a5104d20d,
 242	0xc368a348e46d950f,
 243	0x9ef1cd60e679f284,
 244	0xe89cd854d5d01d33,
 245	0x5cd377dc8bb882a2,
 246	0xa7b0fb7883eee860,
 247	0x7684403ec392950d,
 248	0x5fa3f06f4fed3b52,
 249	0x8df57ac11bc04831,
 250	0x2db01efa1e1e1897,
 251	0x54846de4aadb9ca2,
 252	0xba6745385893c784,
 253	0x541d496344d2c75b,
 254	0xe909678474e687fe,
 255	0xdfe89923f6c9c2ff,
 256	0xece5a71e0cfedc75,
 257	0x5ff98fd5d51fe610,
 258	0x83e8941918964615,
 259	0x5922040b47f150c1,
 260	0xf97d750e3dd94521,
 261	0x5080d4c2b86f56d7,
 262	0xa7de115b56c78d70,
 263	0x6a9242ac87538194,
 264	0xf7856ef7f9173e44,
 265	0x2265fc92feb0dc09,
 266	0x17dfc8e4f7ba8a57,
 267	0x9001a64209f21db8,
 268	0x90004c1371b893c5,
 269	0xb932b7cf752e5545,
 270	0xa0b1df81b6fe59fc,
 271	0x8ef1dd26770af2c2,
 272	0x0541a4f9cfbeed35,
 273	0x9e61106178bfc530,
 274	0xb3767e80935d8af2,
 275	0x0098d5782065af06,
 276	0x31d191cd5c1466c7,
 277	0x410fefafa319ac9d,
 278	0xbdf8f242e316c4ab,
 279	0x9e8cd55b57637ed0,
 280	0xde122bebe9a39368,
 281	0x4d001fd58f002526,
 282	0xca6637000eb4a9f8,
 283	0x2f2339d624f91f78,
 284	0x6d1a7918c80df518,
 285	0xdf9a4939342308e9,
 286	0xebc2151ee6c8398c,
 287	0x03cc2ba8a1116515,
 288	0xd341d037e840cf83,
 289	0x387cb5d25af4afcc,
 290	0xbba2515f22909e87,
 291	0x7248fe7705f38e47,
 292	0x4d61e56a525d225a,
 293	0x262e963c8da05d3d,
 294	0x59e89b094d220ec2,
 295	0x055d5b52b78b9c5e,
 296	0x82b27eb33514ef99,
 297	0xd30094ca96b7ce7b,
 298	0xcf5cb381cd0a1535,
 299	0xfeed4db6919e5a7c,
 300	0x41703f53753be59f,
 301	0x5eeea940fcde8b6f,
 302	0x4cd1f1b175100206,
 303	0x4a20358574454ec0,
 304	0x1478d361dbbf9fac,
 305	0x6f02dc07d141875c,
 306	0x296a202ed8e556a2,
 307	0x2afd67999bf32ee5,
 308	0x7acfd96efa95491d,
 309	0x6798ba0c0abb2c6d,
 310	0x34c6f57b26c92122,
 311	0x5736e1bad206b5de,
 312	0x20057d2a0056521b,
 313	0x3dea5bd5d0578bd7,
 314	0x16e50d897d4634ac,
 315	0x29bff3ecb9b7a6e3,
 316	0x475cd3205a3bdcde,
 317	0x18a42105c31b7e88,
 318	0x023e7414af663068,
 319	0x15147108121967d7,
 320	0xe4a3dff1d7d6fef9,
 321	0x01a8d1a588085737,
 322	0x11b4c74eda62beef,
 323	0xe587cc0d69a73346,
 324	0x1ff7327017aa2a6e,
 325	0x594e29c42473d06b,
 326	0xf6f31db1899b12d5,
 327	0xc02ac5e47312d3ca,
 328	0xe70201e960cb78b8,
 329	0x6f90ff3b6a65f108,
 330	0x42747a7245e7fa84,
 331	0xd1f507e43ab749b2,
 332	0x1c86d265f15750cd,
 333	0x3996ce73dd832c1c,
 334	0x8e7fba02983224bd,
 335	0xba0dec7103255dd4,
 336	0x9e9cbd781628fc5b,
 337	0xdae8645996edd6a5,
 338	0xdebe0853b1a1d378,
 339	0xa49229d24d014343,
 340	0x7be5b9ffda905e1c,
 341	0xa3c95eaec244aa30,
 342	0x0230bca8f4df0544,
 343	0x4135c2bebfe148c6,
 344	0x166fc0cc438a3c72,
 345	0x3762b59a8ae83efa,
 346	0xe8928a4c89114750,
 347	0x2a440b51a4945ee5,
 348	0x80cefd2b7d99ff83,
 349	0xbb9879c6e61fd62a,
 350	0x6e7c8f1a84265034,
 351	0x164bb2de1bbeddc8,
 352	0xf3c12fe54d5c653b,
 353	0x40b9e922ed9771e2,
 354	0x551f5b0fbe7b1840,
 355	0x25032aa7c4cb1811,
 356	0xaaed34074b164346,
 357	0x8ffd96bbf9c9c81d,
 358	0x70fc91eb5937085c,
 359	0x7f795e2a5f915440,
 360	0x4543d9df5476d3cb,
 361	0xf172d73e004fc90d,
 362	0xdfd1c4febcc81238,
 363	0xbc8dfb627fe558fc,
 364}
 365
 366var MDS_MATRIX_CIRC = []uint64{17, 15, 41, 16, 2, 28, 13, 13, 39, 18, 34, 20}
 367var MDS_MATRIX_DIAG = []uint64{8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
 368
 369var FAST_PARTIAL_FIRST_ROUND_CONSTANT = []uint64{
 370	0x3cc3f892184df408,
 371	0xe993fd841e7e97f1,
 372	0xf2831d3575f0f3af,
 373	0xd2500e0a350994ca,
 374	0xc5571f35d7288633,
 375	0x91d89c5184109a02,
 376	0xf37f925d04e5667b,
 377	0x2d6e448371955a69,
 378	0x740ef19ce01398a1,
 379	0x694d24c0752fdf45,
 380	0x60936af96ee2f148,
 381	0xc33448feadc78f0c,
 382}
 383
 384var FAST_PARTIAL_ROUND_CONSTANTS = []uint64{
 385	0x74cb2e819ae421ab,
 386	0xd2559d2370e7f663,
 387	0x62bf78acf843d17c,
 388	0xd5ab7b67e14d1fb4,
 389	0xb9fe2ae6e0969bdc,
 390	0xe33fdf79f92a10e8,
 391	0x0ea2bb4c2b25989b,
 392	0xca9121fbf9d38f06,
 393	0xbdd9b0aa81f58fa4,
 394	0x83079fa4ecf20d7e,
 395	0x650b838edfcc4ad3,
 396	0x77180c88583c76ac,
 397	0xaf8c20753143a180,
 398	0xb8ccfe9989a39175,
 399	0x954a1729f60cc9c5,
 400	0xdeb5b550c4dca53b,
 401	0xf01bb0b00f77011e,
 402	0xa1ebb404b676afd9,
 403	0x860b6e1597a0173e,
 404	0x308bb65a036acbce,
 405	0x1aca78f31c97c876,
 406	0x0,
 407}
 408
 409var FAST_PARTIAL_ROUND_VS = [N_PARTIAL_ROUNDS][11]uint64{
 410	{
 411		0x94877900674181c3,
 412		0xc6c67cc37a2a2bbd,
 413		0xd667c2055387940f,
 414		0x0ba63a63e94b5ff0,
 415		0x99460cc41b8f079f,
 416		0x7ff02375ed524bb3,
 417		0xea0870b47a8caf0e,
 418		0xabcad82633b7bc9d,
 419		0x3b8d135261052241,
 420		0xfb4515f5e5b0d539,
 421		0x3ee8011c2b37f77c,
 422	},
 423	{
 424		0x0adef3740e71c726,
 425		0xa37bf67c6f986559,
 426		0xc6b16f7ed4fa1b00,
 427		0x6a065da88d8bfc3c,
 428		0x4cabc0916844b46f,
 429		0x407faac0f02e78d1,
 430		0x07a786d9cf0852cf,
 431		0x42433fb6949a629a,
 432		0x891682a147ce43b0,
 433		0x26cfd58e7b003b55,
 434		0x2bbf0ed7b657acb3,
 435	},
 436	{
 437		0x481ac7746b159c67,
 438		0xe367de32f108e278,
 439		0x73f260087ad28bec,
 440		0x5cfc82216bc1bdca,
 441		0xcaccc870a2663a0e,
 442		0xdb69cd7b4298c45d,
 443		0x7bc9e0c57243e62d,
 444		0x3cc51c5d368693ae,
 445		0x366b4e8cc068895b,
 446		0x2bd18715cdabbca4,
 447		0xa752061c4f33b8cf,
 448	},
 449	{
 450		0xb22d2432b72d5098,
 451		0x9e18a487f44d2fe4,
 452		0x4b39e14ce22abd3c,
 453		0x9e77fde2eb315e0d,
 454		0xca5e0385fe67014d,
 455		0x0c2cb99bf1b6bddb,
 456		0x99ec1cd2a4460bfe,
 457		0x8577a815a2ff843f,
 458		0x7d80a6b4fd6518a5,
 459		0xeb6c67123eab62cb,
 460		0x8f7851650eca21a5,
 461	},
 462	{
 463		0x11ba9a1b81718c2a,
 464		0x9f7d798a3323410c,
 465		0xa821855c8c1cf5e5,
 466		0x535e8d6fac0031b2,
 467		0x404e7c751b634320,
 468		0xa729353f6e55d354,
 469		0x4db97d92e58bb831,
 470		0xb53926c27897bf7d,
 471		0x965040d52fe115c5,
 472		0x9565fa41ebd31fd7,
 473		0xaae4438c877ea8f4,
 474	},
 475	{
 476		0x37f4e36af6073c6e,
 477		0x4edc0918210800e9,
 478		0xc44998e99eae4188,
 479		0x9f4310d05d068338,
 480		0x9ec7fe4350680f29,
 481		0xc5b2c1fdc0b50874,
 482		0xa01920c5ef8b2ebe,
 483		0x59fa6f8bd91d58ba,
 484		0x8bfc9eb89b515a82,
 485		0xbe86a7a2555ae775,
 486		0xcbb8bbaa3810babf,
 487	},
 488	{
 489		0x577f9a9e7ee3f9c2,
 490		0x88c522b949ace7b1,
 491		0x82f07007c8b72106,
 492		0x8283d37c6675b50e,
 493		0x98b074d9bbac1123,
 494		0x75c56fb7758317c1,
 495		0xfed24e206052bc72,
 496		0x26d7c3d1bc07dae5,
 497		0xf88c5e441e28dbb4,
 498		0x4fe27f9f96615270,
 499		0x514d4ba49c2b14fe,
 500	},
 501	{
 502		0xf02a3ac068ee110b,
 503		0x0a3630dafb8ae2d7,
 504		0xce0dc874eaf9b55c,
 505		0x9a95f6cff5b55c7e,
 506		0x626d76abfed00c7b,
 507		0xa0c1cf1251c204ad,
 508		0xdaebd3006321052c,
 509		0x3d4bd48b625a8065,
 510		0x7f1e584e071f6ed2,
 511		0x720574f0501caed3,
 512		0xe3260ba93d23540a,
 513	},
 514	{
 515		0xab1cbd41d8c1e335,
 516		0x9322ed4c0bc2df01,
 517		0x51c3c0983d4284e5,
 518		0x94178e291145c231,
 519		0xfd0f1a973d6b2085,
 520		0xd427ad96e2b39719,
 521		0x8a52437fecaac06b,
 522		0xdc20ee4b8c4c9a80,
 523		0xa2c98e9549da2100,
 524		0x1603fe12613db5b6,
 525		0x0e174929433c5505,
 526	},
 527	{
 528		0x3d4eab2b8ef5f796,
 529		0xcfff421583896e22,
 530		0x4143cb32d39ac3d9,
 531		0x22365051b78a5b65,
 532		0x6f7fd010d027c9b6,
 533		0xd9dd36fba77522ab,
 534		0xa44cf1cb33e37165,
 535		0x3fc83d3038c86417,
 536		0xc4588d418e88d270,
 537		0xce1320f10ab80fe2,
 538		0xdb5eadbbec18de5d,
 539	},
 540	{
 541		0x1183dfce7c454afd,
 542		0x21cea4aa3d3ed949,
 543		0x0fce6f70303f2304,
 544		0x19557d34b55551be,
 545		0x4c56f689afc5bbc9,
 546		0xa1e920844334f944,
 547		0xbad66d423d2ec861,
 548		0xf318c785dc9e0479,
 549		0x99e2032e765ddd81,
 550		0x400ccc9906d66f45,
 551		0xe1197454db2e0dd9,
 552	},
 553	{
 554		0x84d1ecc4d53d2ff1,
 555		0xd8af8b9ceb4e11b6,
 556		0x335856bb527b52f4,
 557		0xc756f17fb59be595,
 558		0xc0654e4ea5553a78,
 559		0x9e9a46b61f2ea942,
 560		0x14fc8b5b3b809127,
 561		0xd7009f0f103be413,
 562		0x3e0ee7b7a9fb4601,
 563		0xa74e888922085ed7,
 564		0xe80a7cde3d4ac526,
 565	},
 566	{
 567		0x238aa6daa612186d,
 568		0x9137a5c630bad4b4,
 569		0xc7db3817870c5eda,
 570		0x217e4f04e5718dc9,
 571		0xcae814e2817bd99d,
 572		0xe3292e7ab770a8ba,
 573		0x7bb36ef70b6b9482,
 574		0x3c7835fb85bca2d3,
 575		0xfe2cdf8ee3c25e86,
 576		0x61b3915ad7274b20,
 577		0xeab75ca7c918e4ef,
 578	},
 579	{
 580		0xd6e15ffc055e154e,
 581		0xec67881f381a32bf,
 582		0xfbb1196092bf409c,
 583		0xdc9d2e07830ba226,
 584		0x0698ef3245ff7988,
 585		0x194fae2974f8b576,
 586		0x7a5d9bea6ca4910e,
 587		0x7aebfea95ccdd1c9,
 588		0xf9bd38a67d5f0e86,
 589		0xfa65539de65492d8,
 590		0xf0dfcbe7653ff787,
 591	},
 592	{
 593		0x0bd87ad390420258,
 594		0x0ad8617bca9e33c8,
 595		0x0c00ad377a1e2666,
 596		0x0ac6fc58b3f0518f,
 597		0x0c0cc8a892cc4173,
 598		0x0c210accb117bc21,
 599		0x0b73630dbb46ca18,
 600		0x0c8be4920cbd4a54,
 601		0x0bfe877a21be1690,
 602		0x0ae790559b0ded81,
 603		0x0bf50db2f8d6ce31,
 604	},
 605	{
 606		0x000cf29427ff7c58,
 607		0x000bd9b3cf49eec8,
 608		0x000d1dc8aa81fb26,
 609		0x000bc792d5c394ef,
 610		0x000d2ae0b2266453,
 611		0x000d413f12c496c1,
 612		0x000c84128cfed618,
 613		0x000db5ebd48fc0d4,
 614		0x000d1b77326dcb90,
 615		0x000beb0ccc145421,
 616		0x000d10e5b22b11d1,
 617	},
 618	{
 619		0x00000e24c99adad8,
 620		0x00000cf389ed4bc8,
 621		0x00000e580cbf6966,
 622		0x00000cde5fd7e04f,
 623		0x00000e63628041b3,
 624		0x00000e7e81a87361,
 625		0x00000dabe78f6d98,
 626		0x00000efb14cac554,
 627		0x00000e5574743b10,
 628		0x00000d05709f42c1,
 629		0x00000e4690c96af1,
 630	},
 631	{
 632		0x0000000f7157bc98,
 633		0x0000000e3006d948,
 634		0x0000000fa65811e6,
 635		0x0000000e0d127e2f,
 636		0x0000000fc18bfe53,
 637		0x0000000fd002d901,
 638		0x0000000eed6461d8,
 639		0x0000001068562754,
 640		0x0000000fa0236f50,
 641		0x0000000e3af13ee1,
 642		0x0000000fa460f6d1,
 643	},
 644	{
 645		0x0000000011131738,
 646		0x000000000f56d588,
 647		0x0000000011050f86,
 648		0x000000000f848f4f,
 649		0x00000000111527d3,
 650		0x00000000114369a1,
 651		0x00000000106f2f38,
 652		0x0000000011e2ca94,
 653		0x00000000110a29f0,
 654		0x000000000fa9f5c1,
 655		0x0000000010f625d1,
 656	},
 657	{
 658		0x000000000011f718,
 659		0x000000000010b6c8,
 660		0x0000000000134a96,
 661		0x000000000010cf7f,
 662		0x0000000000124d03,
 663		0x000000000013f8a1,
 664		0x0000000000117c58,
 665		0x0000000000132c94,
 666		0x0000000000134fc0,
 667		0x000000000010a091,
 668		0x0000000000128961,
 669	},
 670	{
 671		0x0000000000001300,
 672		0x0000000000001750,
 673		0x000000000000114e,
 674		0x000000000000131f,
 675		0x000000000000167b,
 676		0x0000000000001371,
 677		0x0000000000001230,
 678		0x000000000000182c,
 679		0x0000000000001368,
 680		0x0000000000000f31,
 681		0x00000000000015c9,
 682	},
 683	{
 684		0x0000000000000014,
 685		0x0000000000000022,
 686		0x0000000000000012,
 687		0x0000000000000027,
 688		0x000000000000000d,
 689		0x000000000000000d,
 690		0x000000000000001c,
 691		0x0000000000000002,
 692		0x0000000000000010,
 693		0x0000000000000029,
 694		0x000000000000000f,
 695	},
 696}
 697
 698var FAST_PARTIAL_ROUND_W_HATS = [N_PARTIAL_ROUNDS][11]uint64{
 699	{
 700		0x3d999c961b7c63b0,
 701		0x814e82efcd172529,
 702		0x2421e5d236704588,
 703		0x887af7d4dd482328,
 704		0xa5e9c291f6119b27,
 705		0xbdc52b2676a4b4aa,
 706		0x64832009d29bcf57,
 707		0x09c4155174a552cc,
 708		0x463f9ee03d290810,
 709		0xc810936e64982542,
 710		0x043b1c289f7bc3ac,
 711	},
 712	{
 713		0x673655aae8be5a8b,
 714		0xd510fe714f39fa10,
 715		0x2c68a099b51c9e73,
 716		0xa667bfa9aa96999d,
 717		0x4d67e72f063e2108,
 718		0xf84dde3e6acda179,
 719		0x40f9cc8c08f80981,
 720		0x5ead032050097142,
 721		0x6591b02092d671bb,
 722		0x00e18c71963dd1b7,
 723		0x8a21bcd24a14218a,
 724	},
 725	{
 726		0x202800f4addbdc87,
 727		0xe4b5bdb1cc3504ff,
 728		0xbe32b32a825596e7,
 729		0x8e0f68c5dc223b9a,
 730		0x58022d9e1c256ce3,
 731		0x584d29227aa073ac,
 732		0x8b9352ad04bef9e7,
 733		0xaead42a3f445ecbf,
 734		0x3c667a1d833a3cca,
 735		0xda6f61838efa1ffe,
 736		0xe8f749470bd7c446,
 737	},
 738	{
 739		0xc5b85bab9e5b3869,
 740		0x45245258aec51cf7,
 741		0x16e6b8e68b931830,
 742		0xe2ae0f051418112c,
 743		0x0470e26a0093a65b,
 744		0x6bef71973a8146ed,
 745		0x119265be51812daf,
 746		0xb0be7356254bea2e,
 747		0x8584defff7589bd7,
 748		0x3c5fe4aeb1fb52ba,
 749		0x9e7cd88acf543a5e,
 750	},
 751	{
 752		0x179be4bba87f0a8c,
 753		0xacf63d95d8887355,
 754		0x6696670196b0074f,
 755		0xd99ddf1fe75085f9,
 756		0xc2597881fef0283b,
 757		0xcf48395ee6c54f14,
 758		0x15226a8e4cd8d3b6,
 759		0xc053297389af5d3b,
 760		0x2c08893f0d1580e2,
 761		0x0ed3cbcff6fcc5ba,
 762		0xc82f510ecf81f6d0,
 763	},
 764	{
 765		0x94b06183acb715cc,
 766		0x500392ed0d431137,
 767		0x861cc95ad5c86323,
 768		0x05830a443f86c4ac,
 769		0x3b68225874a20a7c,
 770		0x10b3309838e236fb,
 771		0x9b77fc8bcd559e2c,
 772		0xbdecf5e0cb9cb213,
 773		0x30276f1221ace5fa,
 774		0x7935dd342764a144,
 775		0xeac6db520bb03708,
 776	},
 777	{
 778		0x7186a80551025f8f,
 779		0x622247557e9b5371,
 780		0xc4cbe326d1ad9742,
 781		0x55f1523ac6a23ea2,
 782		0xa13dfe77a3d52f53,
 783		0xe30750b6301c0452,
 784		0x08bd488070a3a32b,
 785		0xcd800caef5b72ae3,
 786		0x83329c90f04233ce,
 787		0xb5b99e6664a0a3ee,
 788		0x6b0731849e200a7f,
 789	},
 790	{
 791		0xec3fabc192b01799,
 792		0x382b38cee8ee5375,
 793		0x3bfb6c3f0e616572,
 794		0x514abd0cf6c7bc86,
 795		0x47521b1361dcc546,
 796		0x178093843f863d14,
 797		0xad1003c5d28918e7,
 798		0x738450e42495bc81,
 799		0xaf947c59af5e4047,
 800		0x4653fb0685084ef2,
 801		0x057fde2062ae35bf,
 802	},
 803	{
 804		0xe376678d843ce55e,
 805		0x66f3860d7514e7fc,
 806		0x7817f3dfff8b4ffa,
 807		0x3929624a9def725b,
 808		0x0126ca37f215a80a,
 809		0xfce2f5d02762a303,
 810		0x1bc927375febbad7,
 811		0x85b481e5243f60bf,
 812		0x2d3c5f42a39c91a0,
 813		0x0811719919351ae8,
 814		0xf669de0add993131,
 815	},
 816	{
 817		0x7de38bae084da92d,
 818		0x5b848442237e8a9b,
 819		0xf6c705da84d57310,
 820		0x31e6a4bdb6a49017,
 821		0x889489706e5c5c0f,
 822		0x0e4a205459692a1b,
 823		0xbac3fa75ee26f299,
 824		0x5f5894f4057d755e,
 825		0xb0dc3ecd724bb076,
 826		0x5e34d8554a6452ba,
 827		0x04f78fd8c1fdcc5f,
 828	},
 829	{
 830		0x4dd19c38779512ea,
 831		0xdb79ba02704620e9,
 832		0x92a29a3675a5d2be,
 833		0xd5177029fe495166,
 834		0xd32b3298a13330c1,
 835		0x251c4a3eb2c5f8fd,
 836		0xe1c48b26e0d98825,
 837		0x3301d3362a4ffccb,
 838		0x09bb6c88de8cd178,
 839		0xdc05b676564f538a,
 840		0x60192d883e473fee,
 841	},
 842	{
 843		0x16b9774801ac44a0,
 844		0x3cb8411e786d3c8e,
 845		0xa86e9cf505072491,
 846		0x0178928152e109ae,
 847		0x5317b905a6e1ab7b,
 848		0xda20b3be7f53d59f,
 849		0xcb97dedecebee9ad,
 850		0x4bd545218c59f58d,
 851		0x77dc8d856c05a44a,
 852		0x87948589e4f243fd,
 853		0x7e5217af969952c2,
 854	},
 855	{
 856		0xbc58987d06a84e4d,
 857		0x0b5d420244c9cae3,
 858		0xa3c4711b938c02c0,
 859		0x3aace640a3e03990,
 860		0x865a0f3249aacd8a,
 861		0x8d00b2a7dbed06c7,
 862		0x6eacb905beb7e2f8,
 863		0x045322b216ec3ec7,
 864		0xeb9de00d594828e6,
 865		0x088c5f20df9e5c26,
 866		0xf555f4112b19781f,
 867	},
 868	{
 869		0xa8cedbff1813d3a7,
 870		0x50dcaee0fd27d164,
 871		0xf1cb02417e23bd82,
 872		0xfaf322786e2abe8b,
 873		0x937a4315beb5d9b6,
 874		0x1b18992921a11d85,
 875		0x7d66c4368b3c497b,
 876		0x0e7946317a6b4e99,
 877		0xbe4430134182978b,
 878		0x3771e82493ab262d,
 879		0xa671690d8095ce82,
 880	},
 881	{
 882		0xb035585f6e929d9d,
 883		0xba1579c7e219b954,
 884		0xcb201cf846db4ba3,
 885		0x287bf9177372cf45,
 886		0xa350e4f61147d0a6,
 887		0xd5d0ecfb50bcff99,
 888		0x2e166aa6c776ed21,
 889		0xe1e66c991990e282,
 890		0x662b329b01e7bb38,
 891		0x8aa674b36144d9a9,
 892		0xcbabf78f97f95e65,
 893	},
 894	{
 895		0xeec24b15a06b53fe,
 896		0xc8a7aa07c5633533,
 897		0xefe9c6fa4311ad51,
 898		0xb9173f13977109a1,
 899		0x69ce43c9cc94aedc,
 900		0xecf623c9cd118815,
 901		0x28625def198c33c7,
 902		0xccfc5f7de5c3636a,
 903		0xf5e6c40f1621c299,
 904		0xcec0e58c34cb64b1,
 905		0xa868ea113387939f,
 906	},
 907	{
 908		0xd8dddbdc5ce4ef45,
 909		0xacfc51de8131458c,
 910		0x146bb3c0fe499ac0,
 911		0x9e65309f15943903,
 912		0x80d0ad980773aa70,
 913		0xf97817d4ddbf0607,
 914		0xe4626620a75ba276,
 915		0x0dfdc7fd6fc74f66,
 916		0xf464864ad6f2bb93,
 917		0x02d55e52a5d44414,
 918		0xdd8de62487c40925,
 919	},
 920	{
 921		0xc15acf44759545a3,
 922		0xcbfdcf39869719d4,
 923		0x33f62042e2f80225,
 924		0x2599c5ead81d8fa3,
 925		0x0b306cb6c1d7c8d0,
 926		0x658c80d3df3729b1,
 927		0xe8d1b2b21b41429c,
 928		0xa1b67f09d4b3ccb8,
 929		0x0e1adf8b84437180,
 930		0x0d593a5e584af47b,
 931		0xa023d94c56e151c7,
 932	},
 933	{
 934		0x49026cc3a4afc5a6,
 935		0xe06dff00ab25b91b,
 936		0x0ab38c561e8850ff,
 937		0x92c3c8275e105eeb,
 938		0xb65256e546889bd0,
 939		0x3c0468236ea142f6,
 940		0xee61766b889e18f2,
 941		0xa206f41b12c30415,
 942		0x02fe9d756c9f12d1,
 943		0xe9633210630cbf12,
 944		0x1ffea9fe85a0b0b1,
 945	},
 946	{
 947		0x81d1ae8cc50240f3,
 948		0xf4c77a079a4607d7,
 949		0xed446b2315e3efc1,
 950		0x0b0a6b70915178c3,
 951		0xb11ff3e089f15d9a,
 952		0x1d4dba0b7ae9cc18,
 953		0x65d74e2f43b48d05,
 954		0xa2df8c6b8ae0804a,
 955		0xa4e6f0a8c33348a6,
 956		0xc0a26efc7be5669b,
 957		0xa6b6582c547d0d60,
 958	},
 959	{
 960		0x84afc741f1c13213,
 961		0x2f8f43734fc906f3,
 962		0xde682d72da0a02d9,
 963		0x0bb005236adb9ef2,
 964		0x5bdf35c10a8b5624,
 965		0x0739a8a343950010,
 966		0x52f515f44785cfbc,
 967		0xcbaf4e5d82856c60,
 968		0xac9ea09074e3e150,
 969		0x8f0fa011a2035fb0,
 970		0x1a37905d8450904a,
 971	},
 972	{
 973		0x3abeb80def61cc85,
 974		0x9d19c9dd4eac4133,
 975		0x075a652d9641a985,
 976		0x9daf69ae1b67e667,
 977		0x364f71da77920a18,
 978		0x50bd769f745c95b1,
 979		0xf223d1180dbbf3fc,
 980		0x2f885e584e04aa99,
 981		0xb69a0fa70aea684a,
 982		0x09584acaa6e062a0,
 983		0x0bc051640145b19b,
 984	},
 985}
 986
 987var FAST_PARTIAL_ROUND_INITIAL_MATRIX = [N_PARTIAL_ROUNDS][11]uint64{
 988	{
 989		0x80772dc2645b280b,
 990		0xdc927721da922cf8,
 991		0xc1978156516879ad,
 992		0x90e80c591f48b603,
 993		0x3a2432625475e3ae,
 994		0x00a2d4321cca94fe,
 995		0x77736f524010c932,
 996		0x904d3f2804a36c54,
 997		0xbf9b39e28a16f354,
 998		0x3a1ded54a6cd058b,
 999		0x42392870da5737cf,
1000	},
1001	{
1002		0xe796d293a47a64cb,
1003		0xb124c33152a2421a,
1004		0x0ee5dc0ce131268a,
1005		0xa9032a52f930fae6,
1006		0x7e33ca8c814280de,
1007		0xad11180f69a8c29e,
1008		0xc75ac6d5b5a10ff3,
1009		0xf0674a8dc5a387ec,
1010		0xb36d43120eaa5e2b,
1011		0x6f232aab4b533a25,
1012		0x3a1ded54a6cd058b,
1013	},
1014	{
1015		0xdcedab70f40718ba,
1016		0x14a4a64da0b2668f,
1017		0x4715b8e5ab34653b,
1018		0x1e8916a99c93a88e,
1019		0xbba4b5d86b9a3b2c,
1020		0xe76649f9bd5d5c2e,
1021		0xaf8e2518a1ece54d,
1022		0xdcda1344cdca873f,
1023		0xcd080204256088e5,
1024		0xb36d43120eaa5e2b,
1025		0xbf9b39e28a16f354,
1026	},
1027	{
1028		0xf4a437f2888ae909,
1029		0xc537d44dc2875403,
1030		0x7f68007619fd8ba9,
1031		0xa4911db6a32612da,
1032		0x2f7e9aade3fdaec1,
1033		0xe7ffd578da4ea43d,
1034		0x43a608e7afa6b5c2,
1035		0xca46546aa99e1575,
1036		0xdcda1344cdca873f,
1037		0xf0674a8dc5a387ec,
1038		0x904d3f2804a36c54,
1039	},
1040	{
1041		0xf97abba0dffb6c50,
1042		0x5e40f0c9bb82aab5,
1043		0x5996a80497e24a6b,
1044		0x07084430a7307c9a,
1045		0xad2f570a5b8545aa,
1046		0xab7f81fef4274770,
1047		0xcb81f535cf98c9e9,
1048		0x43a608e7afa6b5c2,
1049		0xaf8e2518a1ece54d,
1050		0xc75ac6d5b5a10ff3,
1051		0x77736f524010c932,
1052	},
1053	{
1054		0x7f8e41e0b0a6cdff,
1055		0x4b1ba8d40afca97d,
1056		0x623708f28fca70e8,
1057		0xbf150dc4914d380f,
1058		0xc26a083554767106,
1059		0x753b8b1126665c22,
1060		0xab7f81fef4274770,
1061		0xe7ffd578da4ea43d,
1062		0xe76649f9bd5d5c2e,
1063		0xad11180f69a8c29e,
1064		0x00a2d4321cca94fe,
1065	},
1066	{
1067		0x726af914971c1374,
1068		0x1d7f8a2cce1a9d00,
1069		0x18737784700c75cd,
1070		0x7fb45d605dd82838,
1071		0x862361aeab0f9b6e,
1072		0xc26a083554767106,
1073		0xad2f570a5b8545aa,
1074		0x2f7e9aade3fdaec1,
1075		0xbba4b5d86b9a3b2c,
1076		0x7e33ca8c814280de,
1077		0x3a2432625475e3ae,
1078	},
1079	{
1080		0x64dd936da878404d,
1081		0x4db9a2ead2bd7262,
1082		0xbe2e19f6d07f1a83,
1083		0x02290fe23c20351a,
1084		0x7fb45d605dd82838,
1085		0xbf150dc4914d380f,
1086		0x07084430a7307c9a,
1087		0xa4911db6a32612da,
1088		0x1e8916a99c93a88e,
1089		0xa9032a52f930fae6,
1090		0x90e80c591f48b603,
1091	},
1092	{
1093		0x85418a9fef8a9890,
1094		0xd8a2eb7ef5e707ad,
1095		0xbfe85ababed2d882,
1096		0xbe2e19f6d07f1a83,
1097		0x18737784700c75cd,
1098		0x623708f28fca70e8,
1099		0x5996a80497e24a6b,
1100		0x7f68007619fd8ba9,
1101		0x4715b8e5ab34653b,
1102		0x0ee5dc0ce131268a,
1103		0xc1978156516879ad,
1104	},
1105	{
1106		0x156048ee7a738154,
1107		0x91f7562377e81df5,
1108		0xd8a2eb7ef5e707ad,
1109		0x4db9a2ead2bd7262,
1110		0x1d7f8a2cce1a9d00,
1111		0x4b1ba8d40afca97d,
1112		0x5e40f0c9bb82aab5,
1113		0xc537d44dc2875403,
1114		0x14a4a64da0b2668f,
1115		0xb124c33152a2421a,
1116		0xdc927721da922cf8,
1117	},
1118	{
1119		0xd841e8ef9dde8ba0,
1120		0x156048ee7a738154,
1121		0x85418a9fef8a9890,
1122		0x64dd936da878404d,
1123		0x726af914971c1374,
1124		0x7f8e41e0b0a6cdff,
1125		0xf97abba0dffb6c50,
1126		0xf4a437f2888ae909,
1127		0xdcedab70f40718ba,
1128		0xe796d293a47a64cb,
1129		0x80772dc2645b280b,
1130	},
1131}