corrade-nucleus-nucleons – Blame information for rev 4

Subversion Repositories:
Rev:
Rev Author Line No. Line
2 office 1 /*
2 CryptoJS v3.1.2
3 code.google.com/p/crypto-js
4 (c) 2009-2013 by Jeff Mott. All rights reserved.
5 code.google.com/p/crypto-js/wiki/License
6 */
7 (function (Math) {
8 // Shortcuts
9 var C = CryptoJS;
10 var C_lib = C.lib;
11 var WordArray = C_lib.WordArray;
12 var Hasher = C_lib.Hasher;
13 var C_x64 = C.x64;
14 var X64Word = C_x64.Word;
15 var C_algo = C.algo;
16  
17 // Constants tables
18 var RHO_OFFSETS = [];
19 var PI_INDEXES = [];
20 var ROUND_CONSTANTS = [];
21  
22 // Compute Constants
23 (function () {
24 // Compute rho offset constants
25 var x = 1, y = 0;
26 for (var t = 0; t < 24; t++) {
27 RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
28  
29 var newX = y % 5;
30 var newY = (2 * x + 3 * y) % 5;
31 x = newX;
32 y = newY;
33 }
34  
35 // Compute pi index constants
36 for (var x = 0; x < 5; x++) {
37 < 5; x++) { for (var y = 0; y < 5; y++) {
38 < 5; x++) {< 5; y++) { PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
39 < 5; x++) {< 5; y++) { }
40 < 5; x++) {< 5; y++) { }
41  
42 < 5; x++) {< 5; y++) { // Compute round constants
43 < 5; x++) {< 5; y++) { var LFSR = 0x01;
44 < 5; x++) {< 5; y++) { for (var i = 0; i < 24; i++) {
45 < 5; x++) {< 5; y++) {< 24; i++) { var roundConstantMsw = 0;
46 < 5; x++) {< 5; y++) {< 24; i++) { var roundConstantLsw = 0;
47  
48 < 5; x++) {< 5; y++) {< 24; i++) { for (var j = 0; j < 7; j++) {
49 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) { if (LFSR & 0x01) {
50 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) { var bitPosition = (1 << j) - 1;
51 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1; if (bitPosition < 32) {
52 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) { roundConstantLsw ^= 1 << bitPosition;
53 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition; } else /* if (bitPosition >= 32) */ {
54 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition; roundConstantMsw ^= 1 << (bitPosition - 32);
55 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); }
56 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); }
57  
58 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); // Compute next LFSR
59 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); if (LFSR & 0x80) {
60 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
61 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32); LFSR = (LFSR << 1) ^ 0x71;
62 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71; } else {
63 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71; LFSR <<= 1;
64 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }
65 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }
66  
67 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
68 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }
69 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; }());
70  
71 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; // Reusable objects for temporary values
72 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; var T = [];
73 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; (function () {
74 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1; for (var i = 0; i < 25; i++) {
75 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { T[i] = X64Word.create();
76 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { }
77 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { }());
78  
79 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { /**
80 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * SHA-3 hash algorithm.
81 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { */
82 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { var SHA3 = C_algo.SHA3 = Hasher.extend({
83 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { /**
84 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * Configuration options.
85 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { *
86 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * @property {number} outputLength
87 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * The desired number of bits in the output hash.
88 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * Only values permitted are: 224, 256, 384, 512.
89 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { * Default: 512
90 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { */
91 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { cfg: Hasher.cfg.extend({
92 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { outputLength: 512
93 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { }),
94  
95 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { _doReset: function () {
96 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { var state = this._state = []
97 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) { for (var i = 0; i < 25; i++) {
98 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { state[i] = new X64Word.init();
99 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { }
100  
101 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
102 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { },
103  
104 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { _doProcessBlock: function (M, offset) {
105 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { // Shortcuts
106 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { var state = this._state;
107 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { var nBlockSizeLanes = this.blockSize / 2;
108  
109 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { // Absorb
110 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) { for (var i = 0; i < nBlockSizeLanes; i++) {
111 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { // Shortcuts
112 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { var M2i = M[offset + 2 * i];
113 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { var M2i1 = M[offset + 2 * i + 1];
114  
115 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { // Swap endian
116 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { M2i = (
117 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) { (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
118 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i > (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)
119 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i > );
120 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i > M2i1 = (
121 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i > (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
122 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 > (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)
123 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > );
124  
125 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > // Absorb message into state
126 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > var lane = state[i];
127 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > lane.high ^= M2i1;
128 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > lane.low ^= M2i;
129 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > }
130  
131 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > // Rounds
132 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 > for (var round = 0; round < 24; round++) {
133 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) { // Theta
134 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) { for (var x = 0; x < 5; x++) {
135 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) { // Mix column lanes
136 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) { var tMsw = 0, tLsw = 0;
137 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) { for (var y = 0; y < 5; y++) {
138 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { var lane = state[x + 5 * y];
139 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { tMsw ^= lane.high;
140 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { tLsw ^= lane.low;
141 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { }
142  
143 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { // Temporary values
144 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { var Tx = T[x];
145 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { Tx.high = tMsw;
146 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { Tx.low = tLsw;
147 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { }
148 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) { for (var x = 0; x < 5; x++) {
149 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { // Shortcuts
150 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx4 = T[(x + 4) % 5];
151 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx1 = T[(x + 1) % 5];
152 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx1Msw = Tx1.high;
153 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var Tx1Lsw = Tx1.low;
154  
155 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { // Mix surrounding columns
156 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) { var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
157 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw > var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
158 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw > for (var y = 0; y < 5; y++) {
159 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { var lane = state[x + 5 * y];
160 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { lane.high ^= tMsw;
161 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { lane.low ^= tLsw;
162 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { }
163 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { }
164  
165 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { // Rho Pi
166 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) { for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
167 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { // Shortcuts
168 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var lane = state[laneIndex];
169 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var laneMsw = lane.high;
170 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var laneLsw = lane.low;
171 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { var rhoOffset = RHO_OFFSETS[laneIndex];
172  
173 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { // Rotate lanes
174 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) { if (rhoOffset < 32) {
175 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) { var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
176 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw > var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
177 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw > } else /* if (rhoOffset >= 32) */ {
178 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw > var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
179 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw > var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
180 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > }
181  
182 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > // Transpose lanes
183 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > var TPiLane = T[PI_INDEXES[laneIndex]];
184 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > TPiLane.high = tMsw;
185 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > TPiLane.low = tLsw;
186 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > }
187  
188 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > // Rho pi at x = y = 0
189 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > var T0 = T[0];
190 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > var state0 = state[0];
191 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > T0.high = state0.high;
192 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > T0.low = state0.low;
193  
194 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > // Chi
195 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw > for (var x = 0; x < 5; x++) {
196 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) { for (var y = 0; y < 5; y++) {
197 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Shortcuts
198 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var laneIndex = x + 5 * y;
199 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var lane = state[laneIndex];
200 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var TLane = T[laneIndex];
201 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var Tx1Lane = T[((x + 1) % 5) + 5 * y];
202 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var Tx2Lane = T[((x + 2) % 5) + 5 * y];
203  
204 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Mix rows
205 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
206 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
207 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { }
208 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { }
209  
210 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Iota
211 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var lane = state[0];
212 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var roundConstant = ROUND_CONSTANTS[round];
213 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.high ^= roundConstant.high;
214 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { lane.low ^= roundConstant.low;;
215 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { }
216 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { },
217  
218 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { _doFinalize: function () {
219 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Shortcuts
220 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var data = this._data;
221 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var dataWords = data.words;
222 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var nBitsTotal = this._nDataBytes * 8;
223 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var nBitsLeft = data.sigBytes * 8;
224 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { var blockSizeBits = this.blockSize * 32;
225  
226 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { // Add padding
227 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) { dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
228 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
229 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); data.sigBytes = dataWords.length * 4;
230  
231 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Hash final blocks
232 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); this._process();
233  
234 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Shortcuts
235 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var state = this._state;
236 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var outputLengthBytes = this.cfg.outputLength / 8;
237 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var outputLengthLanes = outputLengthBytes / 8;
238  
239 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Squeeze
240 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var hashWords = [];
241 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); for (var i = 0; i < outputLengthLanes; i++) {
242 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Shortcuts
243 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var lane = state[i];
244 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var laneMsw = lane.high;
245 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var laneLsw = lane.low;
246  
247 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Swap endian
248 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); laneMsw = (
249 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
250 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)
251 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); );
252 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); laneLsw = (
253 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
254 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)
255 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); );
256  
257 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Squeeze state to retrieve hash
258 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); hashWords.push(laneLsw);
259 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); hashWords.push(laneMsw);
260 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); }
261  
262 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); // Return final computed hash
263 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); return new WordArray.init(hashWords, outputLengthBytes);
264 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); },
265  
266 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); clone: function () {
267 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var clone = Hasher.clone.call(this);
268  
269 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); var state = clone._state = this._state.slice(0);
270 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); for (var i = 0; i < 25; i++) {
271 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); state[i] = state[i].clone();
272 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); }
273  
274 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); return clone;
275 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); }
276 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); });
277  
278 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); /**
279 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * Shortcut function to the hasher's object interface.
280 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
281 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @param {WordArray|string} message The message to hash.
282 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
283 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @return {WordArray} The hash.
284 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
285 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @static
286 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
287 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @example
288 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
289 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * var hash = CryptoJS.SHA3('message');
290 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * var hash = CryptoJS.SHA3(wordArray);
291 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); */
292 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); C.SHA3 = Hasher._createHelper(SHA3);
293  
294 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); /**
295 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * Shortcut function to the HMAC's object interface.
296 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
297 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @param {WordArray|string} message The message to hash.
298 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @param {WordArray|string} key The secret key.
299 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
300 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @return {WordArray} The HMAC.
301 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
302 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @static
303 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
304 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * @example
305 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); *
306 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); * var hmac = CryptoJS.HmacSHA3(message, key);
307 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); */
308 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32); C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
309 < 5; x++) {< 5; y++) {< 24; i++) {< 7; j++) {<< j) - 1;< j) - 1;< 32) {<< bitPosition;< bitPosition;<< (bitPosition - 32);< (bitPosition - 32);<< 1) ^ 0x71;< 1) ^ 0x71;<<= 1;<= 1;< 25; i++) {< 25; i++) {< nBlockSizeLanes; i++) {<< 8) | (M2i >< 8) | (M2i ><< 24) | (M2i >< 24) | (M2i ><< 8) | (M2i1 >< 8) | (M2i1 ><< 24) | (M2i1 >< 24) | (M2i1 >< 24; round++) {< 5; x++) {< 5; y++) {< 5; x++) {<< 1) | (Tx1Lsw >< 1) | (Tx1Lsw ><< 1) | (Tx1Msw >< 1) | (Tx1Msw >< 5; y++) {< 25; laneIndex++) {< 32) {<< rhoOffset) | (laneLsw >< rhoOffset) | (laneLsw ><< rhoOffset) | (laneMsw >< rhoOffset) | (laneMsw ><< (rhoOffset - 32)) | (laneMsw >< (rhoOffset - 32)) | (laneMsw ><< (rhoOffset - 32)) | (laneLsw >< (rhoOffset - 32)) | (laneLsw >< 5; x++) {< 5; y++) {<< (24 - nBitsLeft % 32);< (24 - nBitsLeft % 32);}(Math));