From e66c8a9b5aade1c6b19c58e5366f777fde3f373f Mon Sep 17 00:00:00 2001 From: Ian Coleman Date: Mon, 29 Sep 2014 16:11:09 +1000 Subject: [PATCH] jsbip39 updated and asmcrypto replaced with sjcl --- src/index.html | 2 +- src/js/asmcrypto.js | 7491 ------------------------------------------ src/js/jsbip39.js | 79 +- src/js/sjcl-bip39.js | 1059 ++++++ 4 files changed, 1116 insertions(+), 7515 deletions(-) delete mode 100644 src/js/asmcrypto.js create mode 100644 src/js/sjcl-bip39.js diff --git a/src/index.html b/src/index.html index 468a1c0..d09a71a 100644 --- a/src/index.html +++ b/src/index.html @@ -345,7 +345,7 @@ - + diff --git a/src/js/asmcrypto.js b/src/js/asmcrypto.js deleted file mode 100644 index c056f56..0000000 --- a/src/js/asmcrypto.js +++ /dev/null @@ -1,7491 +0,0 @@ -// https://rawgit.com/tresorit/asmcrypto.js/598a1098504f1b2d0e615bc51dd8404afd2d338b/asmcrypto.js -// Provides PBKDF2 functionality -// It's faster than CryptoJS -// Couldn't get SJCL working as desired - - -(function(exports, global) { - global["asmCrypto"] = exports; - "use strict"; - function string_to_bytes(str) { - var i, len = str.length, arr = new Uint8Array(len); - for (i = 0; i < len; i += 1) { - arr[i] = str.charCodeAt(i); - } - return arr; - } - function hex_to_bytes(str) { - var arr = [], len = str.length, i; - if (len & 1) { - str = "0" + str; - len++; - } - for (i = 0; i < len; i += 2) { - arr.push(parseInt(str.substr(i, 2), 16)); - } - return new Uint8Array(arr); - } - function base64_to_bytes(str) { - return string_to_bytes(atob(str)); - } - function bytes_to_string(arr) { - var str = ""; - for (var i = 0; i < arr.length; i++) str += String.fromCharCode(arr[i]); - return str; - } - function bytes_to_hex(arr) { - var sz = (arr.byteLength || arr.length) / arr.length, str = ""; - for (var i = 0; i < arr.length; i++) { - var h = arr[i].toString(16); - if (h.length < 2 * sz) str += "00000000000000".substr(0, 2 * sz - h.length); - str += h; - } - return str; - } - function bytes_to_base64(arr) { - return btoa(bytes_to_string(arr)); - } - function pow2_ceil(a) { - a -= 1; - a |= a >>> 1; - a |= a >>> 2; - a |= a >>> 4; - a |= a >>> 8; - a |= a >>> 16; - a += 1; - return a; - } - function is_number(a) { - return typeof a === "number"; - } - function is_string(a) { - return typeof a === "string"; - } - function is_buffer(a) { - return a instanceof ArrayBuffer; - } - function is_bytes(a) { - return a instanceof Uint8Array; - } - function is_typed_array(a) { - return a instanceof Int8Array || a instanceof Uint8Array || a instanceof Int16Array || a instanceof Uint16Array || a instanceof Int32Array || a instanceof Uint32Array || a instanceof Float32Array || a instanceof Float64Array; - } - function IllegalStateError() { - Error.apply(this, arguments); - } - IllegalStateError.prototype = new Error(); - function IllegalArgumentError() { - Error.apply(this, arguments); - } - IllegalArgumentError.prototype = new Error(); - function SecurityError() { - Error.apply(this, arguments); - } - IllegalArgumentError.prototype = new Error(); - var _aes_tables = [ 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22, 82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125, 198, 248, 238, 246, 255, 214, 222, 145, 96, 2, 206, 86, 231, 181, 77, 236, 143, 31, 137, 250, 239, 178, 142, 251, 65, 179, 95, 69, 35, 83, 228, 155, 117, 225, 61, 76, 108, 126, 245, 131, 104, 81, 209, 249, 226, 171, 98, 42, 8, 149, 70, 157, 48, 55, 10, 47, 14, 36, 27, 223, 205, 78, 127, 234, 18, 29, 88, 52, 54, 220, 180, 91, 164, 118, 183, 125, 82, 221, 94, 19, 166, 185, 0, 193, 64, 227, 121, 182, 212, 141, 103, 114, 148, 152, 176, 133, 187, 197, 79, 237, 134, 154, 102, 17, 138, 233, 4, 254, 160, 120, 37, 75, 162, 93, 128, 5, 63, 33, 112, 241, 99, 119, 175, 66, 32, 229, 253, 191, 129, 24, 38, 195, 190, 53, 136, 46, 147, 85, 252, 122, 200, 186, 50, 230, 192, 25, 158, 163, 68, 84, 59, 11, 140, 199, 107, 40, 167, 188, 22, 173, 219, 100, 116, 20, 146, 12, 72, 184, 159, 189, 67, 196, 57, 49, 211, 242, 213, 139, 110, 218, 1, 177, 156, 73, 216, 172, 243, 207, 202, 244, 71, 16, 111, 240, 74, 92, 56, 87, 115, 151, 203, 161, 232, 62, 150, 97, 13, 15, 224, 124, 113, 204, 144, 6, 247, 28, 194, 106, 174, 105, 23, 153, 58, 39, 217, 235, 43, 34, 210, 169, 7, 51, 45, 60, 21, 201, 135, 170, 80, 165, 3, 89, 9, 26, 101, 215, 132, 208, 130, 41, 90, 30, 123, 168, 109, 44, 165, 132, 153, 141, 13, 189, 177, 84, 80, 3, 169, 125, 25, 98, 230, 154, 69, 157, 64, 135, 21, 235, 201, 11, 236, 103, 253, 234, 191, 247, 150, 91, 194, 28, 174, 106, 90, 65, 2, 79, 92, 244, 52, 8, 147, 115, 83, 63, 12, 82, 101, 94, 40, 161, 15, 181, 9, 54, 155, 61, 38, 105, 205, 159, 27, 158, 116, 46, 45, 178, 238, 251, 246, 77, 97, 206, 123, 62, 113, 151, 245, 104, 0, 44, 96, 31, 200, 237, 190, 70, 217, 75, 222, 212, 232, 74, 107, 42, 229, 22, 197, 215, 85, 148, 207, 16, 6, 129, 240, 68, 186, 227, 243, 254, 192, 138, 173, 188, 72, 4, 223, 193, 117, 99, 48, 26, 14, 109, 76, 20, 53, 47, 225, 162, 204, 57, 87, 242, 130, 71, 172, 231, 43, 149, 160, 152, 209, 127, 102, 126, 171, 131, 202, 41, 211, 60, 121, 226, 29, 118, 59, 86, 78, 30, 219, 10, 108, 228, 93, 110, 239, 166, 168, 164, 55, 139, 50, 67, 89, 183, 140, 100, 210, 224, 180, 250, 7, 37, 175, 142, 233, 24, 213, 136, 111, 114, 36, 241, 199, 81, 35, 124, 156, 33, 221, 220, 134, 133, 144, 66, 196, 170, 216, 5, 1, 18, 163, 95, 249, 208, 145, 88, 39, 185, 56, 19, 179, 51, 187, 112, 137, 167, 182, 34, 146, 32, 73, 255, 120, 122, 143, 248, 128, 23, 218, 49, 198, 184, 195, 176, 119, 17, 203, 252, 214, 58, 0, 9, 18, 27, 36, 45, 54, 63, 72, 65, 90, 83, 108, 101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209, 202, 195, 252, 245, 238, 231, 59, 50, 41, 32, 31, 22, 13, 4, 115, 122, 97, 104, 87, 94, 69, 76, 171, 162, 185, 176, 143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118, 127, 100, 109, 82, 91, 64, 73, 62, 55, 44, 37, 26, 19, 8, 1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188, 181, 138, 131, 152, 145, 77, 68, 95, 86, 105, 96, 123, 114, 5, 12, 23, 30, 33, 40, 51, 58, 221, 212, 207, 198, 249, 240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229, 254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146, 155, 124, 117, 110, 103, 88, 81, 74, 67, 52, 61, 38, 47, 16, 25, 2, 11, 215, 222, 197, 204, 243, 250, 225, 232, 159, 150, 141, 132, 187, 178, 169, 160, 71, 78, 85, 92, 99, 106, 113, 120, 15, 6, 29, 20, 43, 34, 57, 48, 154, 147, 136, 129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 255, 228, 237, 10, 3, 24, 17, 46, 39, 60, 53, 66, 75, 80, 89, 102, 111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224, 251, 242, 205, 196, 223, 214, 49, 56, 35, 42, 21, 28, 7, 14, 121, 112, 107, 98, 93, 84, 79, 70, 0, 11, 22, 29, 44, 39, 58, 49, 88, 83, 78, 69, 116, 127, 98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227, 254, 245, 196, 207, 210, 217, 123, 112, 109, 102, 87, 92, 65, 74, 35, 40, 53, 62, 15, 4, 25, 18, 203, 192, 221, 214, 231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246, 253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137, 148, 159, 70, 77, 80, 91, 106, 97, 124, 119, 30, 21, 8, 3, 50, 57, 36, 47, 141, 134, 155, 144, 161, 170, 183, 188, 213, 222, 195, 200, 249, 242, 239, 228, 61, 54, 43, 32, 17, 26, 7, 12, 101, 110, 115, 120, 73, 66, 95, 84, 247, 252, 225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149, 158, 71, 76, 81, 90, 107, 96, 125, 118, 31, 20, 9, 2, 51, 56, 37, 46, 140, 135, 154, 145, 160, 171, 182, 189, 212, 223, 194, 201, 248, 243, 238, 229, 60, 55, 42, 33, 16, 27, 6, 13, 100, 111, 114, 121, 72, 67, 94, 85, 1, 10, 23, 28, 45, 38, 59, 48, 89, 82, 79, 68, 117, 126, 99, 104, 177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 255, 244, 197, 206, 211, 216, 122, 113, 108, 103, 86, 93, 64, 75, 34, 41, 52, 63, 14, 5, 24, 19, 202, 193, 220, 215, 230, 237, 240, 251, 146, 153, 132, 143, 190, 181, 168, 163, 0, 13, 26, 23, 52, 57, 46, 35, 104, 101, 114, 127, 92, 81, 70, 75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181, 162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149, 152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124, 95, 82, 69, 72, 3, 14, 25, 20, 55, 58, 45, 32, 109, 96, 119, 122, 89, 84, 67, 78, 5, 8, 31, 18, 49, 60, 43, 38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207, 194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245, 190, 179, 164, 169, 138, 135, 144, 157, 6, 11, 28, 17, 50, 63, 40, 37, 110, 99, 116, 121, 90, 87, 64, 77, 218, 215, 192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156, 145, 10, 7, 16, 29, 62, 51, 36, 41, 98, 111, 120, 117, 86, 91, 76, 65, 97, 108, 123, 118, 85, 88, 79, 66, 9, 4, 19, 30, 61, 48, 39, 42, 177, 188, 171, 166, 133, 136, 159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173, 160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252, 103, 106, 125, 112, 83, 94, 73, 68, 15, 2, 21, 24, 59, 54, 33, 44, 12, 1, 22, 27, 56, 53, 34, 47, 100, 105, 126, 115, 80, 93, 74, 71, 220, 209, 198, 203, 232, 229, 242, 255, 180, 185, 174, 163, 128, 141, 154, 151, 0, 14, 28, 18, 56, 54, 36, 42, 112, 126, 108, 98, 72, 70, 84, 90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158, 140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 255, 241, 171, 165, 183, 185, 147, 157, 143, 129, 59, 53, 39, 41, 3, 13, 31, 17, 75, 69, 87, 89, 115, 125, 111, 97, 173, 163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235, 249, 247, 77, 67, 81, 95, 117, 123, 105, 103, 61, 51, 33, 47, 5, 11, 25, 23, 118, 120, 106, 100, 78, 64, 82, 92, 6, 8, 26, 20, 62, 48, 34, 44, 150, 152, 138, 132, 174, 160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204, 65, 79, 93, 83, 121, 119, 101, 107, 49, 63, 45, 35, 9, 7, 21, 27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195, 233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234, 228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104, 66, 76, 94, 80, 10, 4, 22, 24, 50, 60, 46, 32, 236, 226, 240, 254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182, 12, 2, 16, 30, 52, 58, 40, 38, 124, 114, 96, 110, 68, 74, 88, 86, 55, 57, 43, 37, 15, 1, 19, 29, 71, 73, 91, 85, 127, 113, 99, 109, 215, 217, 203, 197, 239, 225, 243, 253, 167, 169, 187, 181, 159, 145, 131, 141 ]; - var _aes_heap_start = 2048; - function _aes_asm(stdlib, foreign, buffer) { - "use asm"; - var S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0, S5 = 0, S6 = 0, S7 = 0, S8 = 0, S9 = 0, SA = 0, SB = 0, SC = 0, SD = 0, SE = 0, SF = 0; - var keySize = 0; - var R00 = 0, R01 = 0, R02 = 0, R03 = 0, R04 = 0, R05 = 0, R06 = 0, R07 = 0, R08 = 0, R09 = 0, R0A = 0, R0B = 0, R0C = 0, R0D = 0, R0E = 0, R0F = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, R15 = 0, R16 = 0, R17 = 0, R18 = 0, R19 = 0, R1A = 0, R1B = 0, R1C = 0, R1D = 0, R1E = 0, R1F = 0, R20 = 0, R21 = 0, R22 = 0, R23 = 0, R24 = 0, R25 = 0, R26 = 0, R27 = 0, R28 = 0, R29 = 0, R2A = 0, R2B = 0, R2C = 0, R2D = 0, R2E = 0, R2F = 0, R30 = 0, R31 = 0, R32 = 0, R33 = 0, R34 = 0, R35 = 0, R36 = 0, R37 = 0, R38 = 0, R39 = 0, R3A = 0, R3B = 0, R3C = 0, R3D = 0, R3E = 0, R3F = 0, R40 = 0, R41 = 0, R42 = 0, R43 = 0, R44 = 0, R45 = 0, R46 = 0, R47 = 0, R48 = 0, R49 = 0, R4A = 0, R4B = 0, R4C = 0, R4D = 0, R4E = 0, R4F = 0, R50 = 0, R51 = 0, R52 = 0, R53 = 0, R54 = 0, R55 = 0, R56 = 0, R57 = 0, R58 = 0, R59 = 0, R5A = 0, R5B = 0, R5C = 0, R5D = 0, R5E = 0, R5F = 0, R60 = 0, R61 = 0, R62 = 0, R63 = 0, R64 = 0, R65 = 0, R66 = 0, R67 = 0, R68 = 0, R69 = 0, R6A = 0, R6B = 0, R6C = 0, R6D = 0, R6E = 0, R6F = 0, R70 = 0, R71 = 0, R72 = 0, R73 = 0, R74 = 0, R75 = 0, R76 = 0, R77 = 0, R78 = 0, R79 = 0, R7A = 0, R7B = 0, R7C = 0, R7D = 0, R7E = 0, R7F = 0, R80 = 0, R81 = 0, R82 = 0, R83 = 0, R84 = 0, R85 = 0, R86 = 0, R87 = 0, R88 = 0, R89 = 0, R8A = 0, R8B = 0, R8C = 0, R8D = 0, R8E = 0, R8F = 0, R90 = 0, R91 = 0, R92 = 0, R93 = 0, R94 = 0, R95 = 0, R96 = 0, R97 = 0, R98 = 0, R99 = 0, R9A = 0, R9B = 0, R9C = 0, R9D = 0, R9E = 0, R9F = 0, RA0 = 0, RA1 = 0, RA2 = 0, RA3 = 0, RA4 = 0, RA5 = 0, RA6 = 0, RA7 = 0, RA8 = 0, RA9 = 0, RAA = 0, RAB = 0, RAC = 0, RAD = 0, RAE = 0, RAF = 0, RB0 = 0, RB1 = 0, RB2 = 0, RB3 = 0, RB4 = 0, RB5 = 0, RB6 = 0, RB7 = 0, RB8 = 0, RB9 = 0, RBA = 0, RBB = 0, RBC = 0, RBD = 0, RBE = 0, RBF = 0, RC0 = 0, RC1 = 0, RC2 = 0, RC3 = 0, RC4 = 0, RC5 = 0, RC6 = 0, RC7 = 0, RC8 = 0, RC9 = 0, RCA = 0, RCB = 0, RCC = 0, RCD = 0, RCE = 0, RCF = 0, RD0 = 0, RD1 = 0, RD2 = 0, RD3 = 0, RD4 = 0, RD5 = 0, RD6 = 0, RD7 = 0, RD8 = 0, RD9 = 0, RDA = 0, RDB = 0, RDC = 0, RDD = 0, RDE = 0, RDF = 0, RE0 = 0, RE1 = 0, RE2 = 0, RE3 = 0, RE4 = 0, RE5 = 0, RE6 = 0, RE7 = 0, RE8 = 0, RE9 = 0, REA = 0, REB = 0, REC = 0, RED = 0, REE = 0, REF = 0; - var HEAP = new stdlib.Uint8Array(buffer); - function _expand_key_128() { - var sbox = 0; - R10 = R00 ^ HEAP[sbox | R0D] ^ 1; - R11 = R01 ^ HEAP[sbox | R0E]; - R12 = R02 ^ HEAP[sbox | R0F]; - R13 = R03 ^ HEAP[sbox | R0C]; - R14 = R04 ^ R10; - R15 = R05 ^ R11; - R16 = R06 ^ R12; - R17 = R07 ^ R13; - R18 = R08 ^ R14; - R19 = R09 ^ R15; - R1A = R0A ^ R16; - R1B = R0B ^ R17; - R1C = R0C ^ R18; - R1D = R0D ^ R19; - R1E = R0E ^ R1A; - R1F = R0F ^ R1B; - R20 = R10 ^ HEAP[sbox | R1D] ^ 2; - R21 = R11 ^ HEAP[sbox | R1E]; - R22 = R12 ^ HEAP[sbox | R1F]; - R23 = R13 ^ HEAP[sbox | R1C]; - R24 = R14 ^ R20; - R25 = R15 ^ R21; - R26 = R16 ^ R22; - R27 = R17 ^ R23; - R28 = R18 ^ R24; - R29 = R19 ^ R25; - R2A = R1A ^ R26; - R2B = R1B ^ R27; - R2C = R1C ^ R28; - R2D = R1D ^ R29; - R2E = R1E ^ R2A; - R2F = R1F ^ R2B; - R30 = R20 ^ HEAP[sbox | R2D] ^ 4; - R31 = R21 ^ HEAP[sbox | R2E]; - R32 = R22 ^ HEAP[sbox | R2F]; - R33 = R23 ^ HEAP[sbox | R2C]; - R34 = R24 ^ R30; - R35 = R25 ^ R31; - R36 = R26 ^ R32; - R37 = R27 ^ R33; - R38 = R28 ^ R34; - R39 = R29 ^ R35; - R3A = R2A ^ R36; - R3B = R2B ^ R37; - R3C = R2C ^ R38; - R3D = R2D ^ R39; - R3E = R2E ^ R3A; - R3F = R2F ^ R3B; - R40 = R30 ^ HEAP[sbox | R3D] ^ 8; - R41 = R31 ^ HEAP[sbox | R3E]; - R42 = R32 ^ HEAP[sbox | R3F]; - R43 = R33 ^ HEAP[sbox | R3C]; - R44 = R34 ^ R40; - R45 = R35 ^ R41; - R46 = R36 ^ R42; - R47 = R37 ^ R43; - R48 = R38 ^ R44; - R49 = R39 ^ R45; - R4A = R3A ^ R46; - R4B = R3B ^ R47; - R4C = R3C ^ R48; - R4D = R3D ^ R49; - R4E = R3E ^ R4A; - R4F = R3F ^ R4B; - R50 = R40 ^ HEAP[sbox | R4D] ^ 16; - R51 = R41 ^ HEAP[sbox | R4E]; - R52 = R42 ^ HEAP[sbox | R4F]; - R53 = R43 ^ HEAP[sbox | R4C]; - R54 = R44 ^ R50; - R55 = R45 ^ R51; - R56 = R46 ^ R52; - R57 = R47 ^ R53; - R58 = R48 ^ R54; - R59 = R49 ^ R55; - R5A = R4A ^ R56; - R5B = R4B ^ R57; - R5C = R4C ^ R58; - R5D = R4D ^ R59; - R5E = R4E ^ R5A; - R5F = R4F ^ R5B; - R60 = R50 ^ HEAP[sbox | R5D] ^ 32; - R61 = R51 ^ HEAP[sbox | R5E]; - R62 = R52 ^ HEAP[sbox | R5F]; - R63 = R53 ^ HEAP[sbox | R5C]; - R64 = R54 ^ R60; - R65 = R55 ^ R61; - R66 = R56 ^ R62; - R67 = R57 ^ R63; - R68 = R58 ^ R64; - R69 = R59 ^ R65; - R6A = R5A ^ R66; - R6B = R5B ^ R67; - R6C = R5C ^ R68; - R6D = R5D ^ R69; - R6E = R5E ^ R6A; - R6F = R5F ^ R6B; - R70 = R60 ^ HEAP[sbox | R6D] ^ 64; - R71 = R61 ^ HEAP[sbox | R6E]; - R72 = R62 ^ HEAP[sbox | R6F]; - R73 = R63 ^ HEAP[sbox | R6C]; - R74 = R64 ^ R70; - R75 = R65 ^ R71; - R76 = R66 ^ R72; - R77 = R67 ^ R73; - R78 = R68 ^ R74; - R79 = R69 ^ R75; - R7A = R6A ^ R76; - R7B = R6B ^ R77; - R7C = R6C ^ R78; - R7D = R6D ^ R79; - R7E = R6E ^ R7A; - R7F = R6F ^ R7B; - R80 = R70 ^ HEAP[sbox | R7D] ^ 128; - R81 = R71 ^ HEAP[sbox | R7E]; - R82 = R72 ^ HEAP[sbox | R7F]; - R83 = R73 ^ HEAP[sbox | R7C]; - R84 = R74 ^ R80; - R85 = R75 ^ R81; - R86 = R76 ^ R82; - R87 = R77 ^ R83; - R88 = R78 ^ R84; - R89 = R79 ^ R85; - R8A = R7A ^ R86; - R8B = R7B ^ R87; - R8C = R7C ^ R88; - R8D = R7D ^ R89; - R8E = R7E ^ R8A; - R8F = R7F ^ R8B; - R90 = R80 ^ HEAP[sbox | R8D] ^ 27; - R91 = R81 ^ HEAP[sbox | R8E]; - R92 = R82 ^ HEAP[sbox | R8F]; - R93 = R83 ^ HEAP[sbox | R8C]; - R94 = R84 ^ R90; - R95 = R85 ^ R91; - R96 = R86 ^ R92; - R97 = R87 ^ R93; - R98 = R88 ^ R94; - R99 = R89 ^ R95; - R9A = R8A ^ R96; - R9B = R8B ^ R97; - R9C = R8C ^ R98; - R9D = R8D ^ R99; - R9E = R8E ^ R9A; - R9F = R8F ^ R9B; - RA0 = R90 ^ HEAP[sbox | R9D] ^ 54; - RA1 = R91 ^ HEAP[sbox | R9E]; - RA2 = R92 ^ HEAP[sbox | R9F]; - RA3 = R93 ^ HEAP[sbox | R9C]; - RA4 = R94 ^ RA0; - RA5 = R95 ^ RA1; - RA6 = R96 ^ RA2; - RA7 = R97 ^ RA3; - RA8 = R98 ^ RA4; - RA9 = R99 ^ RA5; - RAA = R9A ^ RA6; - RAB = R9B ^ RA7; - RAC = R9C ^ RA8; - RAD = R9D ^ RA9; - RAE = R9E ^ RAA; - RAF = R9F ^ RAB; - } - function _expand_key_256() { - var sbox = 0; - R20 = R00 ^ HEAP[sbox | R1D] ^ 1; - R21 = R01 ^ HEAP[sbox | R1E]; - R22 = R02 ^ HEAP[sbox | R1F]; - R23 = R03 ^ HEAP[sbox | R1C]; - R24 = R04 ^ R20; - R25 = R05 ^ R21; - R26 = R06 ^ R22; - R27 = R07 ^ R23; - R28 = R08 ^ R24; - R29 = R09 ^ R25; - R2A = R0A ^ R26; - R2B = R0B ^ R27; - R2C = R0C ^ R28; - R2D = R0D ^ R29; - R2E = R0E ^ R2A; - R2F = R0F ^ R2B; - R30 = R10 ^ HEAP[sbox | R2C]; - R31 = R11 ^ HEAP[sbox | R2D]; - R32 = R12 ^ HEAP[sbox | R2E]; - R33 = R13 ^ HEAP[sbox | R2F]; - R34 = R14 ^ R30; - R35 = R15 ^ R31; - R36 = R16 ^ R32; - R37 = R17 ^ R33; - R38 = R18 ^ R34; - R39 = R19 ^ R35; - R3A = R1A ^ R36; - R3B = R1B ^ R37; - R3C = R1C ^ R38; - R3D = R1D ^ R39; - R3E = R1E ^ R3A; - R3F = R1F ^ R3B; - R40 = R20 ^ HEAP[sbox | R3D] ^ 2; - R41 = R21 ^ HEAP[sbox | R3E]; - R42 = R22 ^ HEAP[sbox | R3F]; - R43 = R23 ^ HEAP[sbox | R3C]; - R44 = R24 ^ R40; - R45 = R25 ^ R41; - R46 = R26 ^ R42; - R47 = R27 ^ R43; - R48 = R28 ^ R44; - R49 = R29 ^ R45; - R4A = R2A ^ R46; - R4B = R2B ^ R47; - R4C = R2C ^ R48; - R4D = R2D ^ R49; - R4E = R2E ^ R4A; - R4F = R2F ^ R4B; - R50 = R30 ^ HEAP[sbox | R4C]; - R51 = R31 ^ HEAP[sbox | R4D]; - R52 = R32 ^ HEAP[sbox | R4E]; - R53 = R33 ^ HEAP[sbox | R4F]; - R54 = R34 ^ R50; - R55 = R35 ^ R51; - R56 = R36 ^ R52; - R57 = R37 ^ R53; - R58 = R38 ^ R54; - R59 = R39 ^ R55; - R5A = R3A ^ R56; - R5B = R3B ^ R57; - R5C = R3C ^ R58; - R5D = R3D ^ R59; - R5E = R3E ^ R5A; - R5F = R3F ^ R5B; - R60 = R40 ^ HEAP[sbox | R5D] ^ 4; - R61 = R41 ^ HEAP[sbox | R5E]; - R62 = R42 ^ HEAP[sbox | R5F]; - R63 = R43 ^ HEAP[sbox | R5C]; - R64 = R44 ^ R60; - R65 = R45 ^ R61; - R66 = R46 ^ R62; - R67 = R47 ^ R63; - R68 = R48 ^ R64; - R69 = R49 ^ R65; - R6A = R4A ^ R66; - R6B = R4B ^ R67; - R6C = R4C ^ R68; - R6D = R4D ^ R69; - R6E = R4E ^ R6A; - R6F = R4F ^ R6B; - R70 = R50 ^ HEAP[sbox | R6C]; - R71 = R51 ^ HEAP[sbox | R6D]; - R72 = R52 ^ HEAP[sbox | R6E]; - R73 = R53 ^ HEAP[sbox | R6F]; - R74 = R54 ^ R70; - R75 = R55 ^ R71; - R76 = R56 ^ R72; - R77 = R57 ^ R73; - R78 = R58 ^ R74; - R79 = R59 ^ R75; - R7A = R5A ^ R76; - R7B = R5B ^ R77; - R7C = R5C ^ R78; - R7D = R5D ^ R79; - R7E = R5E ^ R7A; - R7F = R5F ^ R7B; - R80 = R60 ^ HEAP[sbox | R7D] ^ 8; - R81 = R61 ^ HEAP[sbox | R7E]; - R82 = R62 ^ HEAP[sbox | R7F]; - R83 = R63 ^ HEAP[sbox | R7C]; - R84 = R64 ^ R80; - R85 = R65 ^ R81; - R86 = R66 ^ R82; - R87 = R67 ^ R83; - R88 = R68 ^ R84; - R89 = R69 ^ R85; - R8A = R6A ^ R86; - R8B = R6B ^ R87; - R8C = R6C ^ R88; - R8D = R6D ^ R89; - R8E = R6E ^ R8A; - R8F = R6F ^ R8B; - R90 = R70 ^ HEAP[sbox | R8C]; - R91 = R71 ^ HEAP[sbox | R8D]; - R92 = R72 ^ HEAP[sbox | R8E]; - R93 = R73 ^ HEAP[sbox | R8F]; - R94 = R74 ^ R90; - R95 = R75 ^ R91; - R96 = R76 ^ R92; - R97 = R77 ^ R93; - R98 = R78 ^ R94; - R99 = R79 ^ R95; - R9A = R7A ^ R96; - R9B = R7B ^ R97; - R9C = R7C ^ R98; - R9D = R7D ^ R99; - R9E = R7E ^ R9A; - R9F = R7F ^ R9B; - RA0 = R80 ^ HEAP[sbox | R9D] ^ 16; - RA1 = R81 ^ HEAP[sbox | R9E]; - RA2 = R82 ^ HEAP[sbox | R9F]; - RA3 = R83 ^ HEAP[sbox | R9C]; - RA4 = R84 ^ RA0; - RA5 = R85 ^ RA1; - RA6 = R86 ^ RA2; - RA7 = R87 ^ RA3; - RA8 = R88 ^ RA4; - RA9 = R89 ^ RA5; - RAA = R8A ^ RA6; - RAB = R8B ^ RA7; - RAC = R8C ^ RA8; - RAD = R8D ^ RA9; - RAE = R8E ^ RAA; - RAF = R8F ^ RAB; - RB0 = R90 ^ HEAP[sbox | RAC]; - RB1 = R91 ^ HEAP[sbox | RAD]; - RB2 = R92 ^ HEAP[sbox | RAE]; - RB3 = R93 ^ HEAP[sbox | RAF]; - RB4 = R94 ^ RB0; - RB5 = R95 ^ RB1; - RB6 = R96 ^ RB2; - RB7 = R97 ^ RB3; - RB8 = R98 ^ RB4; - RB9 = R99 ^ RB5; - RBA = R9A ^ RB6; - RBB = R9B ^ RB7; - RBC = R9C ^ RB8; - RBD = R9D ^ RB9; - RBE = R9E ^ RBA; - RBF = R9F ^ RBB; - RC0 = RA0 ^ HEAP[sbox | RBD] ^ 32; - RC1 = RA1 ^ HEAP[sbox | RBE]; - RC2 = RA2 ^ HEAP[sbox | RBF]; - RC3 = RA3 ^ HEAP[sbox | RBC]; - RC4 = RA4 ^ RC0; - RC5 = RA5 ^ RC1; - RC6 = RA6 ^ RC2; - RC7 = RA7 ^ RC3; - RC8 = RA8 ^ RC4; - RC9 = RA9 ^ RC5; - RCA = RAA ^ RC6; - RCB = RAB ^ RC7; - RCC = RAC ^ RC8; - RCD = RAD ^ RC9; - RCE = RAE ^ RCA; - RCF = RAF ^ RCB; - RD0 = RB0 ^ HEAP[sbox | RCC]; - RD1 = RB1 ^ HEAP[sbox | RCD]; - RD2 = RB2 ^ HEAP[sbox | RCE]; - RD3 = RB3 ^ HEAP[sbox | RCF]; - RD4 = RB4 ^ RD0; - RD5 = RB5 ^ RD1; - RD6 = RB6 ^ RD2; - RD7 = RB7 ^ RD3; - RD8 = RB8 ^ RD4; - RD9 = RB9 ^ RD5; - RDA = RBA ^ RD6; - RDB = RBB ^ RD7; - RDC = RBC ^ RD8; - RDD = RBD ^ RD9; - RDE = RBE ^ RDA; - RDF = RBF ^ RDB; - RE0 = RC0 ^ HEAP[sbox | RDD] ^ 64; - RE1 = RC1 ^ HEAP[sbox | RDE]; - RE2 = RC2 ^ HEAP[sbox | RDF]; - RE3 = RC3 ^ HEAP[sbox | RDC]; - RE4 = RC4 ^ RE0; - RE5 = RC5 ^ RE1; - RE6 = RC6 ^ RE2; - RE7 = RC7 ^ RE3; - RE8 = RC8 ^ RE4; - RE9 = RC9 ^ RE5; - REA = RCA ^ RE6; - REB = RCB ^ RE7; - REC = RCC ^ RE8; - RED = RCD ^ RE9; - REE = RCE ^ REA; - REF = RCF ^ REB; - } - function _encrypt(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) { - s0 = s0 | 0; - s1 = s1 | 0; - s2 = s2 | 0; - s3 = s3 | 0; - s4 = s4 | 0; - s5 = s5 | 0; - s6 = s6 | 0; - s7 = s7 | 0; - s8 = s8 | 0; - s9 = s9 | 0; - sA = sA | 0; - sB = sB | 0; - sC = sC | 0; - sD = sD | 0; - sE = sE | 0; - sF = sF | 0; - var t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, tA = 0, tB = 0, tC = 0, tD = 0, tE = 0, tF = 0, sbox = 0, x2_sbox = 512, x3_sbox = 768; - s0 = s0 ^ R00; - s1 = s1 ^ R01; - s2 = s2 ^ R02; - s3 = s3 ^ R03; - s4 = s4 ^ R04; - s5 = s5 ^ R05; - s6 = s6 ^ R06; - s7 = s7 ^ R07; - s8 = s8 ^ R08; - s9 = s9 ^ R09; - sA = sA ^ R0A; - sB = sB ^ R0B; - sC = sC ^ R0C; - sD = sD ^ R0D; - sE = sE ^ R0E; - sF = sF ^ R0F; - t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R10; - t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R11; - t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R12; - t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R13; - t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R14; - t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R15; - t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R16; - t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R17; - t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R18; - t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R19; - tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R1A; - tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R1B; - tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R1C; - tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R1D; - tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R1E; - tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R1F; - s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R20; - s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R21; - s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R22; - s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R23; - s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R24; - s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R25; - s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R26; - s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R27; - s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R28; - s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R29; - sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R2A; - sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R2B; - sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R2C; - sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R2D; - sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R2E; - sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R2F; - t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R30; - t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R31; - t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R32; - t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R33; - t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R34; - t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R35; - t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R36; - t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R37; - t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R38; - t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R39; - tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R3A; - tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R3B; - tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R3C; - tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R3D; - tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R3E; - tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R3F; - s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R40; - s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R41; - s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R42; - s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R43; - s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R44; - s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R45; - s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R46; - s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R47; - s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R48; - s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R49; - sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R4A; - sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R4B; - sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R4C; - sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R4D; - sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R4E; - sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R4F; - t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R50; - t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R51; - t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R52; - t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R53; - t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R54; - t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R55; - t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R56; - t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R57; - t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R58; - t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R59; - tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R5A; - tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R5B; - tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R5C; - tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R5D; - tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R5E; - tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R5F; - s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R60; - s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R61; - s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R62; - s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R63; - s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R64; - s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R65; - s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R66; - s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R67; - s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R68; - s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R69; - sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R6A; - sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R6B; - sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R6C; - sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R6D; - sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R6E; - sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R6F; - t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R70; - t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R71; - t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R72; - t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R73; - t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R74; - t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R75; - t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R76; - t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R77; - t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R78; - t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R79; - tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R7A; - tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R7B; - tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R7C; - tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R7D; - tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R7E; - tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R7F; - s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R80; - s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R81; - s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R82; - s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R83; - s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R84; - s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R85; - s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R86; - s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R87; - s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R88; - s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R89; - sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R8A; - sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R8B; - sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R8C; - sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R8D; - sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R8E; - sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R8F; - t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R90; - t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R91; - t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R92; - t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R93; - t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R94; - t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R95; - t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R96; - t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R97; - t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R98; - t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R99; - tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R9A; - tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R9B; - tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R9C; - tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R9D; - tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R9E; - tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R9F; - if ((keySize | 0) == 16) { - S0 = HEAP[sbox | t0] ^ RA0; - S1 = HEAP[sbox | t5] ^ RA1; - S2 = HEAP[sbox | tA] ^ RA2; - S3 = HEAP[sbox | tF] ^ RA3; - S4 = HEAP[sbox | t4] ^ RA4; - S5 = HEAP[sbox | t9] ^ RA5; - S6 = HEAP[sbox | tE] ^ RA6; - S7 = HEAP[sbox | t3] ^ RA7; - S8 = HEAP[sbox | t8] ^ RA8; - S9 = HEAP[sbox | tD] ^ RA9; - SA = HEAP[sbox | t2] ^ RAA; - SB = HEAP[sbox | t7] ^ RAB; - SC = HEAP[sbox | tC] ^ RAC; - SD = HEAP[sbox | t1] ^ RAD; - SE = HEAP[sbox | t6] ^ RAE; - SF = HEAP[sbox | tB] ^ RAF; - return; - } - s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ RA0; - s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ RA1; - s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ RA2; - s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ RA3; - s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ RA4; - s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ RA5; - s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ RA6; - s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ RA7; - s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ RA8; - s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ RA9; - sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ RAA; - sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ RAB; - sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ RAC; - sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ RAD; - sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ RAE; - sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ RAF; - t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ RB0; - t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ RB1; - t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ RB2; - t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ RB3; - t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ RB4; - t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ RB5; - t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ RB6; - t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ RB7; - t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ RB8; - t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ RB9; - tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ RBA; - tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ RBB; - tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ RBC; - tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ RBD; - tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ RBE; - tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ RBF; - s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ RC0; - s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ RC1; - s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ RC2; - s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ RC3; - s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ RC4; - s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ RC5; - s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ RC6; - s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ RC7; - s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ RC8; - s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ RC9; - sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ RCA; - sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ RCB; - sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ RCC; - sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ RCD; - sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ RCE; - sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ RCF; - t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ RD0; - t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ RD1; - t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ RD2; - t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ RD3; - t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ RD4; - t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ RD5; - t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ RD6; - t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ RD7; - t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ RD8; - t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ RD9; - tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ RDA; - tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ RDB; - tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ RDC; - tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ RDD; - tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ RDE; - tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ RDF; - S0 = HEAP[sbox | t0] ^ RE0; - S1 = HEAP[sbox | t5] ^ RE1; - S2 = HEAP[sbox | tA] ^ RE2; - S3 = HEAP[sbox | tF] ^ RE3; - S4 = HEAP[sbox | t4] ^ RE4; - S5 = HEAP[sbox | t9] ^ RE5; - S6 = HEAP[sbox | tE] ^ RE6; - S7 = HEAP[sbox | t3] ^ RE7; - S8 = HEAP[sbox | t8] ^ RE8; - S9 = HEAP[sbox | tD] ^ RE9; - SA = HEAP[sbox | t2] ^ REA; - SB = HEAP[sbox | t7] ^ REB; - SC = HEAP[sbox | tC] ^ REC; - SD = HEAP[sbox | t1] ^ RED; - SE = HEAP[sbox | t6] ^ REE; - SF = HEAP[sbox | tB] ^ REF; - } - function _decrypt(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) { - s0 = s0 | 0; - s1 = s1 | 0; - s2 = s2 | 0; - s3 = s3 | 0; - s4 = s4 | 0; - s5 = s5 | 0; - s6 = s6 | 0; - s7 = s7 | 0; - s8 = s8 | 0; - s9 = s9 | 0; - sA = sA | 0; - sB = sB | 0; - sC = sC | 0; - sD = sD | 0; - sE = sE | 0; - sF = sF | 0; - var t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, tA = 0, tB = 0, tC = 0, tD = 0, tE = 0, tF = 0, inv_sbox = 256, x9 = 1024, xB = 1280, xD = 1536, xE = 1792; - if ((keySize | 0) == 32) { - t0 = HEAP[inv_sbox | s0 ^ RE0] ^ RD0; - t1 = HEAP[inv_sbox | sD ^ RED] ^ RD1; - t2 = HEAP[inv_sbox | sA ^ REA] ^ RD2; - t3 = HEAP[inv_sbox | s7 ^ RE7] ^ RD3; - t4 = HEAP[inv_sbox | s4 ^ RE4] ^ RD4; - t5 = HEAP[inv_sbox | s1 ^ RE1] ^ RD5; - t6 = HEAP[inv_sbox | sE ^ REE] ^ RD6; - t7 = HEAP[inv_sbox | sB ^ REB] ^ RD7; - t8 = HEAP[inv_sbox | s8 ^ RE8] ^ RD8; - t9 = HEAP[inv_sbox | s5 ^ RE5] ^ RD9; - tA = HEAP[inv_sbox | s2 ^ RE2] ^ RDA; - tB = HEAP[inv_sbox | sF ^ REF] ^ RDB; - tC = HEAP[inv_sbox | sC ^ REC] ^ RDC; - tD = HEAP[inv_sbox | s9 ^ RE9] ^ RDD; - tE = HEAP[inv_sbox | s6 ^ RE6] ^ RDE; - tF = HEAP[inv_sbox | s3 ^ RE3] ^ RDF; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ RC0; - t1 = HEAP[inv_sbox | s1] ^ RC1; - t2 = HEAP[inv_sbox | s2] ^ RC2; - t3 = HEAP[inv_sbox | s3] ^ RC3; - t4 = HEAP[inv_sbox | s4] ^ RC4; - t5 = HEAP[inv_sbox | s5] ^ RC5; - t6 = HEAP[inv_sbox | s6] ^ RC6; - t7 = HEAP[inv_sbox | s7] ^ RC7; - t8 = HEAP[inv_sbox | s8] ^ RC8; - t9 = HEAP[inv_sbox | s9] ^ RC9; - tA = HEAP[inv_sbox | sA] ^ RCA; - tB = HEAP[inv_sbox | sB] ^ RCB; - tC = HEAP[inv_sbox | sC] ^ RCC; - tD = HEAP[inv_sbox | sD] ^ RCD; - tE = HEAP[inv_sbox | sE] ^ RCE; - tF = HEAP[inv_sbox | sF] ^ RCF; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ RB0; - t1 = HEAP[inv_sbox | s1] ^ RB1; - t2 = HEAP[inv_sbox | s2] ^ RB2; - t3 = HEAP[inv_sbox | s3] ^ RB3; - t4 = HEAP[inv_sbox | s4] ^ RB4; - t5 = HEAP[inv_sbox | s5] ^ RB5; - t6 = HEAP[inv_sbox | s6] ^ RB6; - t7 = HEAP[inv_sbox | s7] ^ RB7; - t8 = HEAP[inv_sbox | s8] ^ RB8; - t9 = HEAP[inv_sbox | s9] ^ RB9; - tA = HEAP[inv_sbox | sA] ^ RBA; - tB = HEAP[inv_sbox | sB] ^ RBB; - tC = HEAP[inv_sbox | sC] ^ RBC; - tD = HEAP[inv_sbox | sD] ^ RBD; - tE = HEAP[inv_sbox | sE] ^ RBE; - tF = HEAP[inv_sbox | sF] ^ RBF; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ RA0; - t1 = HEAP[inv_sbox | s1] ^ RA1; - t2 = HEAP[inv_sbox | s2] ^ RA2; - t3 = HEAP[inv_sbox | s3] ^ RA3; - t4 = HEAP[inv_sbox | s4] ^ RA4; - t5 = HEAP[inv_sbox | s5] ^ RA5; - t6 = HEAP[inv_sbox | s6] ^ RA6; - t7 = HEAP[inv_sbox | s7] ^ RA7; - t8 = HEAP[inv_sbox | s8] ^ RA8; - t9 = HEAP[inv_sbox | s9] ^ RA9; - tA = HEAP[inv_sbox | sA] ^ RAA; - tB = HEAP[inv_sbox | sB] ^ RAB; - tC = HEAP[inv_sbox | sC] ^ RAC; - tD = HEAP[inv_sbox | sD] ^ RAD; - tE = HEAP[inv_sbox | sE] ^ RAE; - tF = HEAP[inv_sbox | sF] ^ RAF; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R90; - t1 = HEAP[inv_sbox | s1] ^ R91; - t2 = HEAP[inv_sbox | s2] ^ R92; - t3 = HEAP[inv_sbox | s3] ^ R93; - t4 = HEAP[inv_sbox | s4] ^ R94; - t5 = HEAP[inv_sbox | s5] ^ R95; - t6 = HEAP[inv_sbox | s6] ^ R96; - t7 = HEAP[inv_sbox | s7] ^ R97; - t8 = HEAP[inv_sbox | s8] ^ R98; - t9 = HEAP[inv_sbox | s9] ^ R99; - tA = HEAP[inv_sbox | sA] ^ R9A; - tB = HEAP[inv_sbox | sB] ^ R9B; - tC = HEAP[inv_sbox | sC] ^ R9C; - tD = HEAP[inv_sbox | sD] ^ R9D; - tE = HEAP[inv_sbox | sE] ^ R9E; - tF = HEAP[inv_sbox | sF] ^ R9F; - } else { - t0 = HEAP[inv_sbox | s0 ^ RA0] ^ R90; - t1 = HEAP[inv_sbox | sD ^ RAD] ^ R91; - t2 = HEAP[inv_sbox | sA ^ RAA] ^ R92; - t3 = HEAP[inv_sbox | s7 ^ RA7] ^ R93; - t4 = HEAP[inv_sbox | s4 ^ RA4] ^ R94; - t5 = HEAP[inv_sbox | s1 ^ RA1] ^ R95; - t6 = HEAP[inv_sbox | sE ^ RAE] ^ R96; - t7 = HEAP[inv_sbox | sB ^ RAB] ^ R97; - t8 = HEAP[inv_sbox | s8 ^ RA8] ^ R98; - t9 = HEAP[inv_sbox | s5 ^ RA5] ^ R99; - tA = HEAP[inv_sbox | s2 ^ RA2] ^ R9A; - tB = HEAP[inv_sbox | sF ^ RAF] ^ R9B; - tC = HEAP[inv_sbox | sC ^ RAC] ^ R9C; - tD = HEAP[inv_sbox | s9 ^ RA9] ^ R9D; - tE = HEAP[inv_sbox | s6 ^ RA6] ^ R9E; - tF = HEAP[inv_sbox | s3 ^ RA3] ^ R9F; - } - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R80; - t1 = HEAP[inv_sbox | s1] ^ R81; - t2 = HEAP[inv_sbox | s2] ^ R82; - t3 = HEAP[inv_sbox | s3] ^ R83; - t4 = HEAP[inv_sbox | s4] ^ R84; - t5 = HEAP[inv_sbox | s5] ^ R85; - t6 = HEAP[inv_sbox | s6] ^ R86; - t7 = HEAP[inv_sbox | s7] ^ R87; - t8 = HEAP[inv_sbox | s8] ^ R88; - t9 = HEAP[inv_sbox | s9] ^ R89; - tA = HEAP[inv_sbox | sA] ^ R8A; - tB = HEAP[inv_sbox | sB] ^ R8B; - tC = HEAP[inv_sbox | sC] ^ R8C; - tD = HEAP[inv_sbox | sD] ^ R8D; - tE = HEAP[inv_sbox | sE] ^ R8E; - tF = HEAP[inv_sbox | sF] ^ R8F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R70; - t1 = HEAP[inv_sbox | s1] ^ R71; - t2 = HEAP[inv_sbox | s2] ^ R72; - t3 = HEAP[inv_sbox | s3] ^ R73; - t4 = HEAP[inv_sbox | s4] ^ R74; - t5 = HEAP[inv_sbox | s5] ^ R75; - t6 = HEAP[inv_sbox | s6] ^ R76; - t7 = HEAP[inv_sbox | s7] ^ R77; - t8 = HEAP[inv_sbox | s8] ^ R78; - t9 = HEAP[inv_sbox | s9] ^ R79; - tA = HEAP[inv_sbox | sA] ^ R7A; - tB = HEAP[inv_sbox | sB] ^ R7B; - tC = HEAP[inv_sbox | sC] ^ R7C; - tD = HEAP[inv_sbox | sD] ^ R7D; - tE = HEAP[inv_sbox | sE] ^ R7E; - tF = HEAP[inv_sbox | sF] ^ R7F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R60; - t1 = HEAP[inv_sbox | s1] ^ R61; - t2 = HEAP[inv_sbox | s2] ^ R62; - t3 = HEAP[inv_sbox | s3] ^ R63; - t4 = HEAP[inv_sbox | s4] ^ R64; - t5 = HEAP[inv_sbox | s5] ^ R65; - t6 = HEAP[inv_sbox | s6] ^ R66; - t7 = HEAP[inv_sbox | s7] ^ R67; - t8 = HEAP[inv_sbox | s8] ^ R68; - t9 = HEAP[inv_sbox | s9] ^ R69; - tA = HEAP[inv_sbox | sA] ^ R6A; - tB = HEAP[inv_sbox | sB] ^ R6B; - tC = HEAP[inv_sbox | sC] ^ R6C; - tD = HEAP[inv_sbox | sD] ^ R6D; - tE = HEAP[inv_sbox | sE] ^ R6E; - tF = HEAP[inv_sbox | sF] ^ R6F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R50; - t1 = HEAP[inv_sbox | s1] ^ R51; - t2 = HEAP[inv_sbox | s2] ^ R52; - t3 = HEAP[inv_sbox | s3] ^ R53; - t4 = HEAP[inv_sbox | s4] ^ R54; - t5 = HEAP[inv_sbox | s5] ^ R55; - t6 = HEAP[inv_sbox | s6] ^ R56; - t7 = HEAP[inv_sbox | s7] ^ R57; - t8 = HEAP[inv_sbox | s8] ^ R58; - t9 = HEAP[inv_sbox | s9] ^ R59; - tA = HEAP[inv_sbox | sA] ^ R5A; - tB = HEAP[inv_sbox | sB] ^ R5B; - tC = HEAP[inv_sbox | sC] ^ R5C; - tD = HEAP[inv_sbox | sD] ^ R5D; - tE = HEAP[inv_sbox | sE] ^ R5E; - tF = HEAP[inv_sbox | sF] ^ R5F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R40; - t1 = HEAP[inv_sbox | s1] ^ R41; - t2 = HEAP[inv_sbox | s2] ^ R42; - t3 = HEAP[inv_sbox | s3] ^ R43; - t4 = HEAP[inv_sbox | s4] ^ R44; - t5 = HEAP[inv_sbox | s5] ^ R45; - t6 = HEAP[inv_sbox | s6] ^ R46; - t7 = HEAP[inv_sbox | s7] ^ R47; - t8 = HEAP[inv_sbox | s8] ^ R48; - t9 = HEAP[inv_sbox | s9] ^ R49; - tA = HEAP[inv_sbox | sA] ^ R4A; - tB = HEAP[inv_sbox | sB] ^ R4B; - tC = HEAP[inv_sbox | sC] ^ R4C; - tD = HEAP[inv_sbox | sD] ^ R4D; - tE = HEAP[inv_sbox | sE] ^ R4E; - tF = HEAP[inv_sbox | sF] ^ R4F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R30; - t1 = HEAP[inv_sbox | s1] ^ R31; - t2 = HEAP[inv_sbox | s2] ^ R32; - t3 = HEAP[inv_sbox | s3] ^ R33; - t4 = HEAP[inv_sbox | s4] ^ R34; - t5 = HEAP[inv_sbox | s5] ^ R35; - t6 = HEAP[inv_sbox | s6] ^ R36; - t7 = HEAP[inv_sbox | s7] ^ R37; - t8 = HEAP[inv_sbox | s8] ^ R38; - t9 = HEAP[inv_sbox | s9] ^ R39; - tA = HEAP[inv_sbox | sA] ^ R3A; - tB = HEAP[inv_sbox | sB] ^ R3B; - tC = HEAP[inv_sbox | sC] ^ R3C; - tD = HEAP[inv_sbox | sD] ^ R3D; - tE = HEAP[inv_sbox | sE] ^ R3E; - tF = HEAP[inv_sbox | sF] ^ R3F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R20; - t1 = HEAP[inv_sbox | s1] ^ R21; - t2 = HEAP[inv_sbox | s2] ^ R22; - t3 = HEAP[inv_sbox | s3] ^ R23; - t4 = HEAP[inv_sbox | s4] ^ R24; - t5 = HEAP[inv_sbox | s5] ^ R25; - t6 = HEAP[inv_sbox | s6] ^ R26; - t7 = HEAP[inv_sbox | s7] ^ R27; - t8 = HEAP[inv_sbox | s8] ^ R28; - t9 = HEAP[inv_sbox | s9] ^ R29; - tA = HEAP[inv_sbox | sA] ^ R2A; - tB = HEAP[inv_sbox | sB] ^ R2B; - tC = HEAP[inv_sbox | sC] ^ R2C; - tD = HEAP[inv_sbox | sD] ^ R2D; - tE = HEAP[inv_sbox | sE] ^ R2E; - tF = HEAP[inv_sbox | sF] ^ R2F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - t0 = HEAP[inv_sbox | s0] ^ R10; - t1 = HEAP[inv_sbox | s1] ^ R11; - t2 = HEAP[inv_sbox | s2] ^ R12; - t3 = HEAP[inv_sbox | s3] ^ R13; - t4 = HEAP[inv_sbox | s4] ^ R14; - t5 = HEAP[inv_sbox | s5] ^ R15; - t6 = HEAP[inv_sbox | s6] ^ R16; - t7 = HEAP[inv_sbox | s7] ^ R17; - t8 = HEAP[inv_sbox | s8] ^ R18; - t9 = HEAP[inv_sbox | s9] ^ R19; - tA = HEAP[inv_sbox | sA] ^ R1A; - tB = HEAP[inv_sbox | sB] ^ R1B; - tC = HEAP[inv_sbox | sC] ^ R1C; - tD = HEAP[inv_sbox | sD] ^ R1D; - tE = HEAP[inv_sbox | sE] ^ R1E; - tF = HEAP[inv_sbox | sF] ^ R1F; - s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3]; - s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF]; - s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB]; - s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7]; - s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7]; - s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3]; - s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF]; - s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB]; - s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB]; - s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7]; - sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3]; - sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF]; - sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF]; - sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB]; - sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7]; - sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3]; - S0 = HEAP[inv_sbox | s0] ^ R00; - S1 = HEAP[inv_sbox | s1] ^ R01; - S2 = HEAP[inv_sbox | s2] ^ R02; - S3 = HEAP[inv_sbox | s3] ^ R03; - S4 = HEAP[inv_sbox | s4] ^ R04; - S5 = HEAP[inv_sbox | s5] ^ R05; - S6 = HEAP[inv_sbox | s6] ^ R06; - S7 = HEAP[inv_sbox | s7] ^ R07; - S8 = HEAP[inv_sbox | s8] ^ R08; - S9 = HEAP[inv_sbox | s9] ^ R09; - SA = HEAP[inv_sbox | sA] ^ R0A; - SB = HEAP[inv_sbox | sB] ^ R0B; - SC = HEAP[inv_sbox | sC] ^ R0C; - SD = HEAP[inv_sbox | sD] ^ R0D; - SE = HEAP[inv_sbox | sE] ^ R0E; - SF = HEAP[inv_sbox | sF] ^ R0F; - } - function init_state(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) { - s0 = s0 | 0; - s1 = s1 | 0; - s2 = s2 | 0; - s3 = s3 | 0; - s4 = s4 | 0; - s5 = s5 | 0; - s6 = s6 | 0; - s7 = s7 | 0; - s8 = s8 | 0; - s9 = s9 | 0; - sA = sA | 0; - sB = sB | 0; - sC = sC | 0; - sD = sD | 0; - sE = sE | 0; - sF = sF | 0; - S0 = s0; - S1 = s1; - S2 = s2; - S3 = s3; - S4 = s4; - S5 = s5; - S6 = s6; - S7 = s7; - S8 = s8; - S9 = s9; - SA = sA; - SB = sB; - SC = sC; - SD = sD; - SE = sE; - SF = sF; - } - function save_state(offset) { - offset = offset | 0; - HEAP[offset] = S0; - HEAP[offset | 1] = S1; - HEAP[offset | 2] = S2; - HEAP[offset | 3] = S3; - HEAP[offset | 4] = S4; - HEAP[offset | 5] = S5; - HEAP[offset | 6] = S6; - HEAP[offset | 7] = S7; - HEAP[offset | 8] = S8; - HEAP[offset | 9] = S9; - HEAP[offset | 10] = SA; - HEAP[offset | 11] = SB; - HEAP[offset | 12] = SC; - HEAP[offset | 13] = SD; - HEAP[offset | 14] = SE; - HEAP[offset | 15] = SF; - } - function init_key_128(k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, kA, kB, kC, kD, kE, kF) { - k0 = k0 | 0; - k1 = k1 | 0; - k2 = k2 | 0; - k3 = k3 | 0; - k4 = k4 | 0; - k5 = k5 | 0; - k6 = k6 | 0; - k7 = k7 | 0; - k8 = k8 | 0; - k9 = k9 | 0; - kA = kA | 0; - kB = kB | 0; - kC = kC | 0; - kD = kD | 0; - kE = kE | 0; - kF = kF | 0; - R00 = k0; - R01 = k1; - R02 = k2; - R03 = k3; - R04 = k4; - R05 = k5; - R06 = k6; - R07 = k7; - R08 = k8; - R09 = k9; - R0A = kA; - R0B = kB; - R0C = kC; - R0D = kD; - R0E = kE; - R0F = kF; - keySize = 16; - _expand_key_128(); - } - function init_key_256(k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F) { - k00 = k00 | 0; - k01 = k01 | 0; - k02 = k02 | 0; - k03 = k03 | 0; - k04 = k04 | 0; - k05 = k05 | 0; - k06 = k06 | 0; - k07 = k07 | 0; - k08 = k08 | 0; - k09 = k09 | 0; - k0A = k0A | 0; - k0B = k0B | 0; - k0C = k0C | 0; - k0D = k0D | 0; - k0E = k0E | 0; - k0F = k0F | 0; - k10 = k10 | 0; - k11 = k11 | 0; - k12 = k12 | 0; - k13 = k13 | 0; - k14 = k14 | 0; - k15 = k15 | 0; - k16 = k16 | 0; - k17 = k17 | 0; - k18 = k18 | 0; - k19 = k19 | 0; - k1A = k1A | 0; - k1B = k1B | 0; - k1C = k1C | 0; - k1D = k1D | 0; - k1E = k1E | 0; - k1F = k1F | 0; - R00 = k00; - R01 = k01; - R02 = k02; - R03 = k03; - R04 = k04; - R05 = k05; - R06 = k06; - R07 = k07; - R08 = k08; - R09 = k09; - R0A = k0A; - R0B = k0B; - R0C = k0C; - R0D = k0D; - R0E = k0E; - R0F = k0F; - R10 = k10; - R11 = k11; - R12 = k12; - R13 = k13; - R14 = k14; - R15 = k15; - R16 = k16; - R17 = k17; - R18 = k18; - R19 = k19; - R1A = k1A; - R1B = k1B; - R1C = k1C; - R1D = k1D; - R1E = k1E; - R1F = k1F; - keySize = 32; - _expand_key_256(); - } - function cbc_encrypt(offset, length) { - offset = offset | 0; - length = length | 0; - var encrypted = 0; - if (offset & 15) return -1; - while ((length | 0) >= 16) { - _encrypt(S0 ^ HEAP[offset], S1 ^ HEAP[offset | 1], S2 ^ HEAP[offset | 2], S3 ^ HEAP[offset | 3], S4 ^ HEAP[offset | 4], S5 ^ HEAP[offset | 5], S6 ^ HEAP[offset | 6], S7 ^ HEAP[offset | 7], S8 ^ HEAP[offset | 8], S9 ^ HEAP[offset | 9], SA ^ HEAP[offset | 10], SB ^ HEAP[offset | 11], SC ^ HEAP[offset | 12], SD ^ HEAP[offset | 13], SE ^ HEAP[offset | 14], SF ^ HEAP[offset | 15]); - HEAP[offset] = S0; - HEAP[offset | 1] = S1; - HEAP[offset | 2] = S2; - HEAP[offset | 3] = S3; - HEAP[offset | 4] = S4; - HEAP[offset | 5] = S5; - HEAP[offset | 6] = S6; - HEAP[offset | 7] = S7; - HEAP[offset | 8] = S8; - HEAP[offset | 9] = S9; - HEAP[offset | 10] = SA; - HEAP[offset | 11] = SB; - HEAP[offset | 12] = SC; - HEAP[offset | 13] = SD; - HEAP[offset | 14] = SE; - HEAP[offset | 15] = SF; - offset = offset + 16 | 0; - length = length - 16 | 0; - encrypted = encrypted + 16 | 0; - } - return encrypted | 0; - } - function cbc_decrypt(offset, length) { - offset = offset | 0; - length = length | 0; - var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, decrypted = 0; - if (offset & 15) return -1; - iv0 = S0; - iv1 = S1; - iv2 = S2; - iv3 = S3; - iv4 = S4; - iv5 = S5; - iv6 = S6; - iv7 = S7; - iv8 = S8; - iv9 = S9; - ivA = SA; - ivB = SB; - ivC = SC; - ivD = SD; - ivE = SE; - ivF = SF; - while ((length | 0) >= 16) { - _decrypt(HEAP[offset] | 0, HEAP[offset | 1] | 0, HEAP[offset | 2] | 0, HEAP[offset | 3] | 0, HEAP[offset | 4] | 0, HEAP[offset | 5] | 0, HEAP[offset | 6] | 0, HEAP[offset | 7] | 0, HEAP[offset | 8] | 0, HEAP[offset | 9] | 0, HEAP[offset | 10] | 0, HEAP[offset | 11] | 0, HEAP[offset | 12] | 0, HEAP[offset | 13] | 0, HEAP[offset | 14] | 0, HEAP[offset | 15] | 0); - S0 = S0 ^ iv0; - iv0 = HEAP[offset] | 0; - S1 = S1 ^ iv1; - iv1 = HEAP[offset | 1] | 0; - S2 = S2 ^ iv2; - iv2 = HEAP[offset | 2] | 0; - S3 = S3 ^ iv3; - iv3 = HEAP[offset | 3] | 0; - S4 = S4 ^ iv4; - iv4 = HEAP[offset | 4] | 0; - S5 = S5 ^ iv5; - iv5 = HEAP[offset | 5] | 0; - S6 = S6 ^ iv6; - iv6 = HEAP[offset | 6] | 0; - S7 = S7 ^ iv7; - iv7 = HEAP[offset | 7] | 0; - S8 = S8 ^ iv8; - iv8 = HEAP[offset | 8] | 0; - S9 = S9 ^ iv9; - iv9 = HEAP[offset | 9] | 0; - SA = SA ^ ivA; - ivA = HEAP[offset | 10] | 0; - SB = SB ^ ivB; - ivB = HEAP[offset | 11] | 0; - SC = SC ^ ivC; - ivC = HEAP[offset | 12] | 0; - SD = SD ^ ivD; - ivD = HEAP[offset | 13] | 0; - SE = SE ^ ivE; - ivE = HEAP[offset | 14] | 0; - SF = SF ^ ivF; - ivF = HEAP[offset | 15] | 0; - HEAP[offset] = S0; - HEAP[offset | 1] = S1; - HEAP[offset | 2] = S2; - HEAP[offset | 3] = S3; - HEAP[offset | 4] = S4; - HEAP[offset | 5] = S5; - HEAP[offset | 6] = S6; - HEAP[offset | 7] = S7; - HEAP[offset | 8] = S8; - HEAP[offset | 9] = S9; - HEAP[offset | 10] = SA; - HEAP[offset | 11] = SB; - HEAP[offset | 12] = SC; - HEAP[offset | 13] = SD; - HEAP[offset | 14] = SE; - HEAP[offset | 15] = SF; - offset = offset + 16 | 0; - length = length - 16 | 0; - decrypted = decrypted + 16 | 0; - } - S0 = iv0; - S1 = iv1; - S2 = iv2; - S3 = iv3; - S4 = iv4; - S5 = iv5; - S6 = iv6; - S7 = iv7; - S8 = iv8; - S9 = iv9; - SA = ivA; - SB = ivB; - SC = ivC; - SD = ivD; - SE = ivE; - SF = ivF; - return decrypted | 0; - } - function cbc_mac(offset, length, output) { - offset = offset | 0; - length = length | 0; - output = output | 0; - if (offset & 15) return -1; - if (~output) if (output & 31) return -1; - while ((length | 0) >= 16) { - _encrypt(S0 ^ HEAP[offset], S1 ^ HEAP[offset | 1], S2 ^ HEAP[offset | 2], S3 ^ HEAP[offset | 3], S4 ^ HEAP[offset | 4], S5 ^ HEAP[offset | 5], S6 ^ HEAP[offset | 6], S7 ^ HEAP[offset | 7], S8 ^ HEAP[offset | 8], S9 ^ HEAP[offset | 9], SA ^ HEAP[offset | 10], SB ^ HEAP[offset | 11], SC ^ HEAP[offset | 12], SD ^ HEAP[offset | 13], SE ^ HEAP[offset | 14], SF ^ HEAP[offset | 15]); - offset = offset + 16 | 0; - length = length - 16 | 0; - } - if ((length | 0) > 0) { - S0 = S0 ^ HEAP[offset]; - if ((length | 0) > 1) S1 = S1 ^ HEAP[offset | 1]; - if ((length | 0) > 2) S2 = S2 ^ HEAP[offset | 2]; - if ((length | 0) > 3) S3 = S3 ^ HEAP[offset | 3]; - if ((length | 0) > 4) S4 = S4 ^ HEAP[offset | 4]; - if ((length | 0) > 5) S5 = S5 ^ HEAP[offset | 5]; - if ((length | 0) > 6) S6 = S6 ^ HEAP[offset | 6]; - if ((length | 0) > 7) S7 = S7 ^ HEAP[offset | 7]; - if ((length | 0) > 8) S8 = S8 ^ HEAP[offset | 8]; - if ((length | 0) > 9) S9 = S9 ^ HEAP[offset | 9]; - if ((length | 0) > 10) SA = SA ^ HEAP[offset | 10]; - if ((length | 0) > 11) SB = SB ^ HEAP[offset | 11]; - if ((length | 0) > 12) SC = SC ^ HEAP[offset | 12]; - if ((length | 0) > 13) SD = SD ^ HEAP[offset | 13]; - if ((length | 0) > 14) SE = SE ^ HEAP[offset | 14]; - _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF); - offset = offset + length | 0; - length = 0; - } - if (~output) { - HEAP[output | 0] = S0; - HEAP[output | 1] = S1; - HEAP[output | 2] = S2; - HEAP[output | 3] = S3; - HEAP[output | 4] = S4; - HEAP[output | 5] = S5; - HEAP[output | 6] = S6; - HEAP[output | 7] = S7; - HEAP[output | 8] = S8; - HEAP[output | 9] = S9; - HEAP[output | 10] = SA; - HEAP[output | 11] = SB; - HEAP[output | 12] = SC; - HEAP[output | 13] = SD; - HEAP[output | 14] = SE; - HEAP[output | 15] = SF; - } - return 0; - } - function ccm_encrypt(offset, length, nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8, nonce9, nonceA, nonceB, nonceC, nonceD, counter0, counter1) { - offset = offset | 0; - length = length | 0; - nonce0 = nonce0 | 0; - nonce1 = nonce1 | 0; - nonce2 = nonce2 | 0; - nonce3 = nonce3 | 0; - nonce4 = nonce4 | 0; - nonce5 = nonce5 | 0; - nonce6 = nonce6 | 0; - nonce7 = nonce7 | 0; - nonce8 = nonce8 | 0; - nonce9 = nonce9 | 0; - nonceA = nonceA | 0; - nonceB = nonceB | 0; - nonceC = nonceC | 0; - nonceD = nonceD | 0; - counter0 = counter0 | 0; - counter1 = counter1 | 0; - var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0, s7 = 0, s8 = 0, s9 = 0, sA = 0, sB = 0, sC = 0, sD = 0, sE = 0, sF = 0, encrypted = 0; - if (offset & 15) return -1; - iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7, - iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF; - while ((length | 0) >= 16) { - s0 = HEAP[offset] | 0; - s1 = HEAP[offset | 1] | 0; - s2 = HEAP[offset | 2] | 0; - s3 = HEAP[offset | 3] | 0; - s4 = HEAP[offset | 4] | 0; - s5 = HEAP[offset | 5] | 0; - s6 = HEAP[offset | 6] | 0; - s7 = HEAP[offset | 7] | 0; - s8 = HEAP[offset | 8] | 0; - s9 = HEAP[offset | 9] | 0; - sA = HEAP[offset | 10] | 0; - sB = HEAP[offset | 11] | 0; - sC = HEAP[offset | 12] | 0; - sD = HEAP[offset | 13] | 0; - sE = HEAP[offset | 14] | 0; - sF = HEAP[offset | 15] | 0; - _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255); - HEAP[offset] = s0 ^ S0; - HEAP[offset | 1] = s1 ^ S1; - HEAP[offset | 2] = s2 ^ S2; - HEAP[offset | 3] = s3 ^ S3; - HEAP[offset | 4] = s4 ^ S4; - HEAP[offset | 5] = s5 ^ S5; - HEAP[offset | 6] = s6 ^ S6; - HEAP[offset | 7] = s7 ^ S7; - HEAP[offset | 8] = s8 ^ S8; - HEAP[offset | 9] = s9 ^ S9; - HEAP[offset | 10] = sA ^ SA; - HEAP[offset | 11] = sB ^ SB; - HEAP[offset | 12] = sC ^ SC; - HEAP[offset | 13] = sD ^ SD; - HEAP[offset | 14] = sE ^ SE; - HEAP[offset | 15] = sF ^ SF; - _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, sF ^ ivF); - iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7, - iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF; - encrypted = encrypted + 16 | 0; - offset = offset + 16 | 0; - length = length - 16 | 0; - counter1 = counter1 + 1 | 0; - if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0; - } - if ((length | 0) > 0) { - s0 = HEAP[offset] | 0; - s1 = (length | 0) > 1 ? HEAP[offset | 1] | 0 : 0; - s2 = (length | 0) > 2 ? HEAP[offset | 2] | 0 : 0; - s3 = (length | 0) > 3 ? HEAP[offset | 3] | 0 : 0; - s4 = (length | 0) > 4 ? HEAP[offset | 4] | 0 : 0; - s5 = (length | 0) > 5 ? HEAP[offset | 5] | 0 : 0; - s6 = (length | 0) > 6 ? HEAP[offset | 6] | 0 : 0; - s7 = (length | 0) > 7 ? HEAP[offset | 7] | 0 : 0; - s8 = (length | 0) > 8 ? HEAP[offset | 8] | 0 : 0; - s9 = (length | 0) > 9 ? HEAP[offset | 9] | 0 : 0; - sA = (length | 0) > 10 ? HEAP[offset | 10] | 0 : 0; - sB = (length | 0) > 11 ? HEAP[offset | 11] | 0 : 0; - sC = (length | 0) > 12 ? HEAP[offset | 12] | 0 : 0; - sD = (length | 0) > 13 ? HEAP[offset | 13] | 0 : 0; - sE = (length | 0) > 14 ? HEAP[offset | 14] | 0 : 0; - _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255); - HEAP[offset] = s0 ^ S0; - if ((length | 0) > 1) HEAP[offset | 1] = s1 ^ S1; - if ((length | 0) > 2) HEAP[offset | 2] = s2 ^ S2; - if ((length | 0) > 3) HEAP[offset | 3] = s3 ^ S3; - if ((length | 0) > 4) HEAP[offset | 4] = s4 ^ S4; - if ((length | 0) > 5) HEAP[offset | 5] = s5 ^ S5; - if ((length | 0) > 6) HEAP[offset | 6] = s6 ^ S6; - if ((length | 0) > 7) HEAP[offset | 7] = s7 ^ S7; - if ((length | 0) > 8) HEAP[offset | 8] = s8 ^ S8; - if ((length | 0) > 9) HEAP[offset | 9] = s9 ^ S9; - if ((length | 0) > 10) HEAP[offset | 10] = sA ^ SA; - if ((length | 0) > 11) HEAP[offset | 11] = sB ^ SB; - if ((length | 0) > 12) HEAP[offset | 12] = sC ^ SC; - if ((length | 0) > 13) HEAP[offset | 13] = sD ^ SD; - if ((length | 0) > 14) HEAP[offset | 14] = sE ^ SE; - _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, ivF); - iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7, - iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF; - encrypted = encrypted + length | 0; - offset = offset + length | 0; - length = 0; - counter1 = counter1 + 1 | 0; - if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0; - } - return encrypted | 0; - } - function ccm_decrypt(offset, length, nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8, nonce9, nonceA, nonceB, nonceC, nonceD, counter0, counter1) { - offset = offset | 0; - length = length | 0; - nonce0 = nonce0 | 0; - nonce1 = nonce1 | 0; - nonce2 = nonce2 | 0; - nonce3 = nonce3 | 0; - nonce4 = nonce4 | 0; - nonce5 = nonce5 | 0; - nonce6 = nonce6 | 0; - nonce7 = nonce7 | 0; - nonce8 = nonce8 | 0; - nonce9 = nonce9 | 0; - nonceA = nonceA | 0; - nonceB = nonceB | 0; - nonceC = nonceC | 0; - nonceD = nonceD | 0; - counter0 = counter0 | 0; - counter1 = counter1 | 0; - var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0, s7 = 0, s8 = 0, s9 = 0, sA = 0, sB = 0, sC = 0, sD = 0, sE = 0, sF = 0, decrypted = 0; - if (offset & 15) return -1; - iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7, - iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF; - while ((length | 0) >= 16) { - _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255); - HEAP[offset] = s0 = HEAP[offset] ^ S0; - HEAP[offset | 1] = s1 = HEAP[offset | 1] ^ S1; - HEAP[offset | 2] = s2 = HEAP[offset | 2] ^ S2; - HEAP[offset | 3] = s3 = HEAP[offset | 3] ^ S3; - HEAP[offset | 4] = s4 = HEAP[offset | 4] ^ S4; - HEAP[offset | 5] = s5 = HEAP[offset | 5] ^ S5; - HEAP[offset | 6] = s6 = HEAP[offset | 6] ^ S6; - HEAP[offset | 7] = s7 = HEAP[offset | 7] ^ S7; - HEAP[offset | 8] = s8 = HEAP[offset | 8] ^ S8; - HEAP[offset | 9] = s9 = HEAP[offset | 9] ^ S9; - HEAP[offset | 10] = sA = HEAP[offset | 10] ^ SA; - HEAP[offset | 11] = sB = HEAP[offset | 11] ^ SB; - HEAP[offset | 12] = sC = HEAP[offset | 12] ^ SC; - HEAP[offset | 13] = sD = HEAP[offset | 13] ^ SD; - HEAP[offset | 14] = sE = HEAP[offset | 14] ^ SE; - HEAP[offset | 15] = sF = HEAP[offset | 15] ^ SF; - _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, sF ^ ivF); - iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7, - iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF; - decrypted = decrypted + 16 | 0; - offset = offset + 16 | 0; - length = length - 16 | 0; - counter1 = counter1 + 1 | 0; - if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0; - } - if ((length | 0) > 0) { - _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255); - s0 = HEAP[offset] ^ S0; - s1 = (length | 0) > 1 ? HEAP[offset | 1] ^ S1 : 0; - s2 = (length | 0) > 2 ? HEAP[offset | 2] ^ S2 : 0; - s3 = (length | 0) > 3 ? HEAP[offset | 3] ^ S3 : 0; - s4 = (length | 0) > 4 ? HEAP[offset | 4] ^ S4 : 0; - s5 = (length | 0) > 5 ? HEAP[offset | 5] ^ S5 : 0; - s6 = (length | 0) > 6 ? HEAP[offset | 6] ^ S6 : 0; - s7 = (length | 0) > 7 ? HEAP[offset | 7] ^ S7 : 0; - s8 = (length | 0) > 8 ? HEAP[offset | 8] ^ S8 : 0; - s9 = (length | 0) > 9 ? HEAP[offset | 9] ^ S9 : 0; - sA = (length | 0) > 10 ? HEAP[offset | 10] ^ SA : 0; - sB = (length | 0) > 11 ? HEAP[offset | 11] ^ SB : 0; - sC = (length | 0) > 12 ? HEAP[offset | 12] ^ SC : 0; - sD = (length | 0) > 13 ? HEAP[offset | 13] ^ SD : 0; - sE = (length | 0) > 14 ? HEAP[offset | 14] ^ SE : 0; - sF = (length | 0) > 15 ? HEAP[offset | 15] ^ SF : 0; - HEAP[offset] = s0; - if ((length | 0) > 1) HEAP[offset | 1] = s1; - if ((length | 0) > 2) HEAP[offset | 2] = s2; - if ((length | 0) > 3) HEAP[offset | 3] = s3; - if ((length | 0) > 4) HEAP[offset | 4] = s4; - if ((length | 0) > 5) HEAP[offset | 5] = s5; - if ((length | 0) > 6) HEAP[offset | 6] = s6; - if ((length | 0) > 7) HEAP[offset | 7] = s7; - if ((length | 0) > 8) HEAP[offset | 8] = s8; - if ((length | 0) > 9) HEAP[offset | 9] = s9; - if ((length | 0) > 10) HEAP[offset | 10] = sA; - if ((length | 0) > 11) HEAP[offset | 11] = sB; - if ((length | 0) > 12) HEAP[offset | 12] = sC; - if ((length | 0) > 13) HEAP[offset | 13] = sD; - if ((length | 0) > 14) HEAP[offset | 14] = sE; - _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, sF ^ ivF); - iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7, - iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF; - decrypted = decrypted + length | 0; - offset = offset + length | 0; - length = 0; - counter1 = counter1 + 1 | 0; - if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0; - } - return decrypted | 0; - } - function cfb_encrypt(offset, length) { - offset = offset | 0; - length = length | 0; - var encrypted = 0; - if (offset & 15) return -1; - while ((length | 0) >= 16) { - _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF); - S0 = S0 ^ HEAP[offset]; - S1 = S1 ^ HEAP[offset | 1]; - S2 = S2 ^ HEAP[offset | 2]; - S3 = S3 ^ HEAP[offset | 3]; - S4 = S4 ^ HEAP[offset | 4]; - S5 = S5 ^ HEAP[offset | 5]; - S6 = S6 ^ HEAP[offset | 6]; - S7 = S7 ^ HEAP[offset | 7]; - S8 = S8 ^ HEAP[offset | 8]; - S9 = S9 ^ HEAP[offset | 9]; - SA = SA ^ HEAP[offset | 10]; - SB = SB ^ HEAP[offset | 11]; - SC = SC ^ HEAP[offset | 12]; - SD = SD ^ HEAP[offset | 13]; - SE = SE ^ HEAP[offset | 14]; - SF = SF ^ HEAP[offset | 15]; - HEAP[offset] = S0; - HEAP[offset | 1] = S1; - HEAP[offset | 2] = S2; - HEAP[offset | 3] = S3; - HEAP[offset | 4] = S4; - HEAP[offset | 5] = S5; - HEAP[offset | 6] = S6; - HEAP[offset | 7] = S7; - HEAP[offset | 8] = S8; - HEAP[offset | 9] = S9; - HEAP[offset | 10] = SA; - HEAP[offset | 11] = SB; - HEAP[offset | 12] = SC; - HEAP[offset | 13] = SD; - HEAP[offset | 14] = SE; - HEAP[offset | 15] = SF; - offset = offset + 16 | 0; - length = length - 16 | 0; - encrypted = encrypted + 16 | 0; - } - if ((length | 0) > 0) { - _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF); - HEAP[offset] = HEAP[offset] ^ S0; - if ((length | 0) > 1) HEAP[offset | 1] = HEAP[offset | 1] ^ S1; - if ((length | 0) > 2) HEAP[offset | 2] = HEAP[offset | 2] ^ S2; - if ((length | 0) > 3) HEAP[offset | 3] = HEAP[offset | 3] ^ S3; - if ((length | 0) > 4) HEAP[offset | 4] = HEAP[offset | 4] ^ S4; - if ((length | 0) > 5) HEAP[offset | 5] = HEAP[offset | 5] ^ S5; - if ((length | 0) > 6) HEAP[offset | 6] = HEAP[offset | 6] ^ S6; - if ((length | 0) > 7) HEAP[offset | 7] = HEAP[offset | 7] ^ S7; - if ((length | 0) > 8) HEAP[offset | 8] = HEAP[offset | 8] ^ S8; - if ((length | 0) > 9) HEAP[offset | 9] = HEAP[offset | 9] ^ S9; - if ((length | 0) > 10) HEAP[offset | 10] = HEAP[offset | 10] ^ SA; - if ((length | 0) > 11) HEAP[offset | 11] = HEAP[offset | 11] ^ SB; - if ((length | 0) > 12) HEAP[offset | 12] = HEAP[offset | 12] ^ SC; - if ((length | 0) > 13) HEAP[offset | 13] = HEAP[offset | 13] ^ SD; - if ((length | 0) > 14) HEAP[offset | 14] = HEAP[offset | 14] ^ SE; - encrypted = encrypted + length | 0; - offset = offset + length | 0; - length = 0; - } - return encrypted | 0; - } - function cfb_decrypt(offset, length) { - offset = offset | 0; - length = length | 0; - var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, decrypted = 0; - if (offset & 15) return -1; - while ((length | 0) >= 16) { - _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF); - iv0 = HEAP[offset] | 0; - iv1 = HEAP[offset | 1] | 0; - iv2 = HEAP[offset | 2] | 0; - iv3 = HEAP[offset | 3] | 0; - iv4 = HEAP[offset | 4] | 0; - iv5 = HEAP[offset | 5] | 0; - iv6 = HEAP[offset | 6] | 0; - iv7 = HEAP[offset | 7] | 0; - iv8 = HEAP[offset | 8] | 0; - iv9 = HEAP[offset | 9] | 0; - ivA = HEAP[offset | 10] | 0; - ivB = HEAP[offset | 11] | 0; - ivC = HEAP[offset | 12] | 0; - ivD = HEAP[offset | 13] | 0; - ivE = HEAP[offset | 14] | 0; - ivF = HEAP[offset | 15] | 0; - HEAP[offset] = S0 ^ iv0; - HEAP[offset | 1] = S1 ^ iv1; - HEAP[offset | 2] = S2 ^ iv2; - HEAP[offset | 3] = S3 ^ iv3; - HEAP[offset | 4] = S4 ^ iv4; - HEAP[offset | 5] = S5 ^ iv5; - HEAP[offset | 6] = S6 ^ iv6; - HEAP[offset | 7] = S7 ^ iv7; - HEAP[offset | 8] = S8 ^ iv8; - HEAP[offset | 9] = S9 ^ iv9; - HEAP[offset | 10] = SA ^ ivA; - HEAP[offset | 11] = SB ^ ivB; - HEAP[offset | 12] = SC ^ ivC; - HEAP[offset | 13] = SD ^ ivD; - HEAP[offset | 14] = SE ^ ivE; - HEAP[offset | 15] = SF ^ ivF; - S0 = iv0; - S1 = iv1; - S2 = iv2; - S3 = iv3; - S4 = iv4; - S5 = iv5; - S6 = iv6; - S7 = iv7; - S8 = iv8; - S9 = iv9; - SA = ivA; - SB = ivB; - SC = ivC; - SD = ivD; - SE = ivE; - SF = ivF; - offset = offset + 16 | 0; - length = length - 16 | 0; - decrypted = decrypted + 16 | 0; - } - if ((length | 0) > 0) { - _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF); - HEAP[offset] = HEAP[offset] ^ S0; - if ((length | 0) > 1) HEAP[offset | 1] = HEAP[offset | 1] ^ S1; - if ((length | 0) > 2) HEAP[offset | 2] = HEAP[offset | 2] ^ S2; - if ((length | 0) > 3) HEAP[offset | 3] = HEAP[offset | 3] ^ S3; - if ((length | 0) > 4) HEAP[offset | 4] = HEAP[offset | 4] ^ S4; - if ((length | 0) > 5) HEAP[offset | 5] = HEAP[offset | 5] ^ S5; - if ((length | 0) > 6) HEAP[offset | 6] = HEAP[offset | 6] ^ S6; - if ((length | 0) > 7) HEAP[offset | 7] = HEAP[offset | 7] ^ S7; - if ((length | 0) > 8) HEAP[offset | 8] = HEAP[offset | 8] ^ S8; - if ((length | 0) > 9) HEAP[offset | 9] = HEAP[offset | 9] ^ S9; - if ((length | 0) > 10) HEAP[offset | 10] = HEAP[offset | 10] ^ SA; - if ((length | 0) > 11) HEAP[offset | 11] = HEAP[offset | 11] ^ SB; - if ((length | 0) > 12) HEAP[offset | 12] = HEAP[offset | 12] ^ SC; - if ((length | 0) > 13) HEAP[offset | 13] = HEAP[offset | 13] ^ SD; - if ((length | 0) > 14) HEAP[offset | 14] = HEAP[offset | 14] ^ SE; - decrypted = decrypted + length | 0; - offset = offset + length | 0; - length = 0; - } - return decrypted | 0; - } - return { - init_state: init_state, - save_state: save_state, - init_key_128: init_key_128, - init_key_256: init_key_256, - cbc_encrypt: cbc_encrypt, - cbc_decrypt: cbc_decrypt, - cbc_mac: cbc_mac, - ccm_encrypt: ccm_encrypt, - ccm_decrypt: ccm_decrypt, - cfb_encrypt: cfb_encrypt, - cfb_decrypt: cfb_decrypt - }; - } - function aes_asm(stdlib, foreign, buffer) { - var heap = new Uint8Array(buffer); - heap.set(_aes_tables); - return _aes_asm(stdlib, foreign, buffer); - } - var _aes_block_size = 16; - function _aes_constructor(options) { - options = options || {}; - options.heapSize = options.heapSize || 4096; - if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096"); - this.BLOCK_SIZE = _aes_block_size; - this.heap = options.heap || new Uint8Array(options.heapSize); - this.asm = options.asm || aes_asm(global, null, this.heap.buffer); - this.pos = _aes_heap_start; - this.len = 0; - this.key = null; - this.result = null; - this.reset(options); - } - function _aes_reset(options) { - options = options || {}; - this.result = null; - this.pos = _aes_heap_start; - this.len = 0; - var asm = this.asm; - var key = options.key; - if (key !== undefined) { - if (is_buffer(key) || is_bytes(key)) { - key = new Uint8Array(key); - } else if (is_string(key)) { - var str = key; - key = new Uint8Array(str.length); - for (var i = 0; i < str.length; ++i) key[i] = str.charCodeAt(i); - } else { - throw new TypeError("unexpected key type"); - } - if (key.length === 16) { - this.key = key; - asm.init_key_128.call(asm, key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7], key[8], key[9], key[10], key[11], key[12], key[13], key[14], key[15]); - } else if (key.length === 24) { - throw new IllegalArgumentError("illegal key size"); - } else if (key.length === 32) { - this.key = key; - asm.init_key_256.call(asm, key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7], key[8], key[9], key[10], key[11], key[12], key[13], key[14], key[15], key[16], key[17], key[18], key[19], key[20], key[21], key[22], key[23], key[24], key[25], key[26], key[27], key[28], key[29], key[30], key[31]); - } else { - throw new IllegalArgumentError("illegal key size"); - } - } - return this; - } - function _aes_init_iv(iv) { - var asm = this.asm; - if (iv !== undefined) { - if (is_buffer(iv) || is_bytes(iv)) { - iv = new Uint8Array(iv); - } else if (is_string(iv)) { - var str = iv; - iv = new Uint8Array(str.length); - for (var i = 0; i < str.length; ++i) iv[i] = str.charCodeAt(i); - } else { - throw new TypeError("unexpected iv type"); - } - if (iv.length !== _aes_block_size) throw new IllegalArgumentError("illegal iv size"); - this.iv = iv; - asm.init_state.call(asm, iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7], iv[8], iv[9], iv[10], iv[11], iv[12], iv[13], iv[14], iv[15]); - } else { - this.iv = null; - asm.init_state.call(asm, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - } - } - function _aes_heap_write(heap, hpos, data, dpos, dlen) { - var hlen = heap.byteLength - hpos, wlen = hlen < dlen ? hlen : dlen; - if (is_buffer(data) || is_bytes(data)) { - heap.set(new Uint8Array(data.buffer || data, dpos, wlen), hpos); - } else if (is_string(data)) { - for (var i = 0; i < wlen; ++i) heap[hpos + i] = data.charCodeAt(dpos + i); - } else { - throw new TypeError("unexpected data type"); - } - return wlen; - } - function cbc_aes_constructor(options) { - this.padding = true; - this.mode = "cbc"; - this.iv = null; - _aes_constructor.call(this, options); - } - function cbc_aes_encrypt_constructor(options) { - cbc_aes_constructor.call(this, options); - } - function cbc_aes_decrypt_constructor(options) { - cbc_aes_constructor.call(this, options); - } - function cbc_aes_reset(options) { - options = options || {}; - _aes_reset.call(this, options); - var padding = options.padding; - if (padding !== undefined) { - this.padding = !!padding; - } else { - this.padding = true; - } - _aes_init_iv.call(this, options.iv); - return this; - } - function cbc_aes_encrypt_process(data) { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0; - var result = new Uint8Array(rlen); - while (dlen > 0) { - wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen); - len += wlen; - dpos += wlen; - dlen -= wlen; - wlen = asm.cbc_encrypt(pos, len); - result.set(heap.subarray(pos, pos + wlen), rpos); - rpos += wlen; - if (wlen < len) { - pos += wlen; - len -= wlen; - } else { - pos = _aes_heap_start; - len = 0; - } - } - this.result = result; - this.pos = pos; - this.len = len; - return this; - } - function cbc_aes_encrypt_finish() { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var asm = this.asm, heap = this.heap, padding = this.padding, pos = this.pos, len = this.len, rlen = _aes_block_size * Math.ceil(len / _aes_block_size); - if (len % _aes_block_size === 0) { - if (padding) rlen += _aes_block_size; - } else if (!padding) { - throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size); - } - var result = new Uint8Array(rlen); - if (len < rlen) { - var plen = _aes_block_size - len % _aes_block_size; - for (var p = 0; p < plen; ++p) heap[pos + len + p] = plen; - len += plen; - } - asm.cbc_encrypt(pos, len); - result.set(heap.subarray(pos, pos + len)); - this.result = result; - this.pos = _aes_heap_start; - this.len = 0; - return this; - } - function cbc_aes_encrypt(data) { - var result1 = cbc_aes_encrypt_process.call(this, data).result, result2 = cbc_aes_encrypt_finish.call(this).result, result; - result = new Uint8Array(result1.length + result2.length); - result.set(result1); - result.set(result2, result1.length); - this.result = result; - return this; - } - function cbc_aes_decrypt_process(data) { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, padding = this.padding, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0; - var result = new Uint8Array(rlen); - while (dlen > 0) { - wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen); - len += wlen; - dpos += wlen; - dlen -= wlen; - wlen = asm.cbc_decrypt(pos, len - (padding && dlen === 0 && len % _aes_block_size === 0 ? _aes_block_size : 0)); - result.set(heap.subarray(pos, pos + wlen), rpos); - rpos += wlen; - if (wlen < len) { - pos += wlen; - len -= wlen; - } else { - pos = _aes_heap_start; - len = 0; - } - } - this.result = result.subarray(0, rpos); - this.pos = pos; - this.len = len; - return this; - } - function cbc_aes_decrypt_finish() { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var asm = this.asm, heap = this.heap, padding = this.padding, pos = this.pos, len = this.len; - if (len === 0) { - if (!padding) { - this.result = new Uint8Array(0); - this.pos = _aes_heap_start; - this.len = 0; - return this; - } else { - throw new IllegalStateError("padding not found"); - } - } - if (len % _aes_block_size !== 0) throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size); - var result = new Uint8Array(len); - asm.cbc_decrypt(pos, len); - result.set(heap.subarray(pos, pos + len)); - if (padding) { - var pad = result[len - 1]; - result = result.subarray(0, len - pad); - } - this.result = result; - this.pos = _aes_heap_start; - this.len = 0; - return this; - } - function cbc_aes_decrypt(data) { - var result1 = cbc_aes_decrypt_process.call(this, data).result, result2 = cbc_aes_decrypt_finish.call(this).result, result; - result = new Uint8Array(result1.length + result2.length); - result.set(result1); - result.set(result2, result1.length); - this.result = result; - return this; - } - var cbc_aes_encrypt_prototype = cbc_aes_encrypt_constructor.prototype; - cbc_aes_encrypt_prototype.reset = cbc_aes_reset; - cbc_aes_encrypt_prototype.process = cbc_aes_encrypt_process; - cbc_aes_encrypt_prototype.finish = cbc_aes_encrypt_finish; - var cbc_aes_decrypt_prototype = cbc_aes_decrypt_constructor.prototype; - cbc_aes_decrypt_prototype.reset = cbc_aes_reset; - cbc_aes_decrypt_prototype.process = cbc_aes_decrypt_process; - cbc_aes_decrypt_prototype.finish = cbc_aes_decrypt_finish; - var cbc_aes_prototype = cbc_aes_constructor.prototype; - cbc_aes_prototype.reset = cbc_aes_reset; - cbc_aes_prototype.encrypt = cbc_aes_encrypt; - cbc_aes_prototype.decrypt = cbc_aes_decrypt; - function _cbc_mac_process(data) { - var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, wlen = 0; - while (dlen > 0) { - wlen = _aes_heap_write(this.heap, _aes_heap_start, data, dpos, dlen); - this.asm.cbc_mac(_aes_heap_start, wlen, -1); - dpos += wlen; - dlen -= wlen; - } - } - var _ccm_adata_maxLength = 65279, _ccm_data_maxLength = 68719476720; - function ccm_aes_constructor(options) { - this.padding = false; - this.mode = "ccm"; - this.tagSize = _aes_block_size; - this.lengthSize = 4; - this.nonce = null; - this.adata = null; - this.iv = null; - this.dataLength = -1; - this.dataLeft = -1; - this.counter = 1; - _aes_constructor.call(this, options); - } - function ccm_aes_encrypt_constructor(options) { - ccm_aes_constructor.call(this, options); - } - function ccm_aes_decrypt_constructor(options) { - ccm_aes_constructor.call(this, options); - } - function _ccm_calculate_iv() { - var nonce = this.nonce, adata = this.adata, tagSize = this.tagSize, lengthSize = this.lengthSize, dataLength = this.dataLength; - var data = new Uint8Array(_aes_block_size + (adata ? 2 + adata.byteLength : 0)); - data[0] = (adata ? 64 : 0) | tagSize - 2 << 2 | lengthSize - 1; - data.set(nonce, 1); - if (lengthSize > 4) data[11] = (dataLength - (dataLength >>> 0)) / 4294967296 & 15; - if (lengthSize > 3) data[12] = dataLength >>> 24; - if (lengthSize > 2) data[13] = dataLength >>> 16 & 255; - data[14] = dataLength >>> 8 & 255; - data[15] = dataLength & 255; - if (adata) { - data[16] = adata.byteLength >>> 8 & 255; - data[17] = adata.byteLength & 255; - data.set(adata, 18); - } - _cbc_mac_process.call(this, data); - this.asm.save_state(_aes_heap_start); - this.iv = new Uint8Array(this.heap.subarray(_aes_heap_start, _aes_heap_start + _aes_block_size)); - } - function ccm_aes_reset(options) { - options = options || {}; - _aes_reset.call(this, options); - _aes_init_iv.call(this, options.iv); - var tagSize = options.tagSize; - if (tagSize !== undefined) { - if (!is_number(tagSize)) throw new TypeError("tagSize must be a number"); - if (tagSize < 4 || tagSize > 16 || tagSize & 1) throw new IllegalArgumentError("illegal tagSize value"); - this.tagSize = tagSize; - } else { - this.tagSize = _aes_block_size; - } - var lengthSize = options.lengthSize, nonce = options.nonce; - if (nonce !== undefined) { - if (is_buffer(nonce) || is_bytes(nonce)) { - nonce = new Uint8Array(nonce); - } else if (is_string(nonce)) { - var str = nonce; - nonce = new Uint8Array(str.length); - for (var i = 0; i < str.length; ++i) nonce[i] = str.charCodeAt(i); - } else { - throw new TypeError("unexpected nonce type"); - } - if (nonce.length < 10 || nonce.length > 13) throw new IllegalArgumentError("illegal nonce length"); - lengthSize = lengthSize || 15 - nonce.length; - this.nonce = nonce; - } else { - this.nonce = null; - } - if (lengthSize !== undefined) { - if (!is_number(lengthSize)) throw new TypeError("lengthSize must be a number"); - if (lengthSize < 2 || lengthSize > 5 || nonce.length + lengthSize !== 15) throw new IllegalArgumentError("illegal lengthSize value"); - this.lengthSize = lengthSize; - } else { - this.lengthSize = lengthSize = 4; - } - var iv = this.iv; - var counter = options.counter; - if (counter !== undefined) { - if (iv === null) throw new IllegalStateError("iv is also required"); - if (!is_number(counter)) throw new TypeError("counter must be a number"); - this.counter = counter; - } else { - this.counter = 1; - } - var dataLength = options.dataLength; - if (dataLength !== undefined) { - if (!is_number(dataLength)) throw new TypeError("dataLength must be a number"); - if (dataLength < 0 || dataLength > _ccm_data_maxLength || dataLength > Math.pow(2, 8 * lengthSize) - 1) throw new IllegalArgumentError("illegal dataLength value"); - this.dataLength = dataLength; - var dataLeft = options.dataLeft || dataLength; - if (!is_number(dataLeft)) throw new TypeError("dataLeft must be a number"); - if (dataLeft < 0 || dataLeft > dataLength) throw new IllegalArgumentError("illegal dataLeft value"); - this.dataLeft = dataLeft; - } else { - this.dataLength = dataLength = -1; - this.dataLeft = dataLength; - } - var adata = options.adata; - if (adata !== undefined) { - if (iv !== null) throw new IllegalStateError("you must specify either adata or iv, not both"); - if (is_buffer(adata) || is_bytes(adata)) { - adata = new Uint8Array(adata); - } else if (is_string(adata)) { - var str = adata; - adata = new Uint8Array(str.length); - for (var i = 0; i < str.length; ++i) adata[i] = str.charCodeAt(i); - } else { - throw new TypeError("unexpected adata type"); - } - if (adata.byteLength === 0 || adata.byteLength > _ccm_adata_maxLength) throw new IllegalArgumentError("illegal adata length"); - this.adata = adata; - this.counter = 1; - } else { - this.adata = adata = null; - } - if (dataLength !== -1) _ccm_calculate_iv.call(this); - return this; - } - function ccm_aes_encrypt_process(data) { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0; - if ((counter - 1 << 4) + len + dlen > _ccm_data_maxLength) throw new RangeError("counter overflow"); - var result = new Uint8Array(rlen); - var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; - for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i]; - while (dlen > 0) { - wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen); - len += wlen; - dpos += wlen; - dlen -= wlen; - asm_args[0] = pos; - asm_args[1] = len & ~15; - asm_args[16] = counter / 4294967296 >>> 0; - asm_args[17] = counter >>> 0; - wlen = asm.ccm_encrypt.apply(asm, asm_args); - result.set(heap.subarray(pos, pos + wlen), rpos); - counter += wlen >>> 4; - rpos += wlen; - if (wlen < len) { - pos += wlen; - len -= wlen; - } else { - pos = _aes_heap_start; - len = 0; - } - } - this.result = result; - this.counter = counter; - this.pos = pos; - this.len = len; - return this; - } - function ccm_aes_encrypt_finish() { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, tagSize = this.tagSize, pos = this.pos, len = this.len, wlen = 0; - var result = new Uint8Array(len + tagSize); - var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; - for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i]; - asm_args[0] = pos; - asm_args[1] = len; - asm_args[16] = counter / 4294967296 >>> 0; - asm_args[17] = counter >>> 0; - wlen = asm.ccm_encrypt.apply(asm, asm_args); - result.set(heap.subarray(pos, pos + wlen)); - counter = 1; - pos = _aes_heap_start; - len = 0; - asm.save_state(_aes_heap_start); - asm_args[0] = _aes_heap_start, asm_args[1] = _aes_block_size, asm_args[16] = 0; - asm_args[17] = 0; - asm.ccm_encrypt.apply(asm, asm_args); - result.set(heap.subarray(_aes_heap_start, _aes_heap_start + tagSize), wlen); - this.result = result; - this.counter = counter; - this.pos = pos; - this.len = len; - return this; - } - function ccm_aes_encrypt(data) { - this.dataLength = this.dataLeft = data.byteLength || data.length || 0; - var result1 = ccm_aes_encrypt_process.call(this, data).result, result2 = ccm_aes_encrypt_finish.call(this).result, result; - result = new Uint8Array(result1.length + result2.length); - result.set(result1); - result.set(result2, result1.length); - this.result = result; - return this; - } - function ccm_aes_decrypt_process(data) { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, tagSize = this.tagSize, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0; - if ((counter - 1 << 4) + len + dlen > _ccm_data_maxLength) throw new RangeError("counter overflow"); - var result = new Uint8Array(rlen); - var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; - for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i]; - while (dlen > 0) { - wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen); - len += wlen; - dpos += wlen; - dlen -= wlen; - asm_args[0] = pos; - asm_args[1] = len + dlen - tagSize >= _aes_block_size ? dlen >= tagSize ? len & ~15 : len + dlen - tagSize & ~15 : 0; - asm_args[16] = counter / 4294967296 >>> 0; - asm_args[17] = counter >>> 0; - wlen = asm.ccm_decrypt.apply(asm, asm_args); - result.set(heap.subarray(pos, pos + wlen), rpos); - counter += wlen >>> 4; - rpos += wlen; - if (wlen < len) { - pos += wlen; - len -= wlen; - } else { - pos = _aes_heap_start; - len = 0; - } - } - this.result = result.subarray(0, rpos); - this.counter = counter; - this.pos = pos; - this.len = len; - return this; - } - function ccm_aes_decrypt_finish() { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, tagSize = this.tagSize, pos = this.pos, len = this.len, rlen = len - tagSize, wlen = 0; - if (len < tagSize) throw new IllegalStateError("authentication tag not found"); - var result = new Uint8Array(rlen), atag = new Uint8Array(heap.subarray(pos + rlen, pos + len)); - var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; - for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i]; - asm_args[0] = pos; - asm_args[1] = rlen; - asm_args[16] = counter / 4294967296 >>> 0; - asm_args[17] = counter >>> 0; - wlen = asm.ccm_decrypt.apply(asm, asm_args); - result.set(heap.subarray(pos, pos + wlen)); - counter = 1; - pos = _aes_heap_start; - len = 0; - asm.save_state(_aes_heap_start); - asm_args[0] = _aes_heap_start, asm_args[1] = _aes_block_size, asm_args[16] = 0; - asm_args[17] = 0; - asm.ccm_encrypt.apply(asm, asm_args); - var acheck = 0; - for (var i = 0; i < tagSize; ++i) acheck |= atag[i] ^ heap[_aes_heap_start + i]; - if (acheck) throw new SecurityError("data integrity check failed"); - this.result = result; - this.counter = counter; - this.pos = pos; - this.len = len; - return this; - } - function ccm_aes_decrypt(data) { - this.dataLength = this.dataLeft = data.byteLength || data.length || 0; - var result1 = ccm_aes_decrypt_process.call(this, data).result, result2 = ccm_aes_decrypt_finish.call(this).result, result; - result = new Uint8Array(result1.length + result2.length); - result.set(result1); - result.set(result2, result1.length); - this.result = result; - return this; - } - var ccm_aes_prototype = ccm_aes_constructor.prototype; - ccm_aes_prototype.reset = ccm_aes_reset; - ccm_aes_prototype.encrypt = ccm_aes_encrypt; - ccm_aes_prototype.decrypt = ccm_aes_decrypt; - var ccm_aes_encrypt_prototype = ccm_aes_encrypt_constructor.prototype; - ccm_aes_encrypt_prototype.reset = ccm_aes_reset; - ccm_aes_encrypt_prototype.process = ccm_aes_encrypt_process; - ccm_aes_encrypt_prototype.finish = ccm_aes_encrypt_finish; - var ccm_aes_decrypt_prototype = ccm_aes_decrypt_constructor.prototype; - ccm_aes_decrypt_prototype.reset = ccm_aes_reset; - ccm_aes_decrypt_prototype.process = ccm_aes_decrypt_process; - ccm_aes_decrypt_prototype.finish = ccm_aes_decrypt_finish; - function cfb_aes_constructor(options) { - this.padding = false; - this.mode = "cfb"; - this.iv = null; - _aes_constructor.call(this, options); - } - function cfb_aes_encrypt_constructor(options) { - cfb_aes_constructor.call(this, options); - } - function cfb_aes_decrypt_constructor(options) { - cfb_aes_constructor.call(this, options); - } - function cfb_aes_reset(options) { - options = options || {}; - _aes_reset.call(this, options); - _aes_init_iv.call(this, options.iv); - return this; - } - function cfb_aes_encrypt_process(data) { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0; - var result = new Uint8Array(rlen); - while (dlen > 0) { - wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen); - len += wlen; - dpos += wlen; - dlen -= wlen; - wlen = asm.cfb_encrypt(pos, _aes_block_size * Math.floor(len / _aes_block_size)); - result.set(heap.subarray(pos, pos + wlen), rpos); - rpos += wlen; - if (wlen < len) { - pos += wlen; - len -= wlen; - } else { - pos = _aes_heap_start; - len = 0; - } - } - this.result = result; - this.pos = pos; - this.len = len; - return this; - } - function cfb_aes_encrypt_finish() { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var asm = this.asm, heap = this.heap, pos = this.pos, len = this.len; - var result = new Uint8Array(len); - asm.cfb_encrypt(pos, len); - result.set(heap.subarray(pos, pos + len)); - this.result = result; - this.pos = _aes_heap_start; - this.len = 0; - return this; - } - function cfb_aes_encrypt(data) { - var result1 = cfb_aes_encrypt_process.call(this, data).result, result2 = cfb_aes_encrypt_finish.call(this).result, result; - result = new Uint8Array(result1.length + result2.length); - result.set(result1); - result.set(result2, result1.length); - this.result = result; - return this; - } - function cfb_aes_decrypt_process(data) { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0; - var result = new Uint8Array(rlen); - while (dlen > 0) { - wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen); - len += wlen; - dpos += wlen; - dlen -= wlen; - wlen = asm.cfb_decrypt(pos, _aes_block_size * Math.floor(len / _aes_block_size)); - result.set(heap.subarray(pos, pos + wlen), rpos); - rpos += wlen; - if (wlen < len) { - pos += wlen; - len -= wlen; - } else { - pos = _aes_heap_start; - len = 0; - } - } - this.result = result.subarray(0, rpos); - this.pos = pos; - this.len = len; - return this; - } - function cfb_aes_decrypt_finish() { - if (!this.key) throw new IllegalStateError("no key is associated with the instance"); - var asm = this.asm, heap = this.heap, pos = this.pos, len = this.len; - if (len === 0) { - this.result = new Uint8Array(0); - this.pos = _aes_heap_start; - this.len = 0; - return this; - } - var result = new Uint8Array(len); - asm.cfb_decrypt(pos, len); - result.set(heap.subarray(pos, pos + len)); - this.result = result; - this.pos = _aes_heap_start; - this.len = 0; - return this; - } - function cfb_aes_decrypt(data) { - var result1 = cfb_aes_decrypt_process.call(this, data).result, result2 = cfb_aes_decrypt_finish.call(this).result, result; - result = new Uint8Array(result1.length + result2.length); - result.set(result1); - result.set(result2, result1.length); - this.result = result; - return this; - } - var cfb_aes_encrypt_prototype = cfb_aes_encrypt_constructor.prototype; - cfb_aes_encrypt_prototype.reset = cfb_aes_reset; - cfb_aes_encrypt_prototype.process = cfb_aes_encrypt_process; - cfb_aes_encrypt_prototype.finish = cfb_aes_encrypt_finish; - var cfb_aes_decrypt_prototype = cfb_aes_decrypt_constructor.prototype; - cfb_aes_decrypt_prototype.reset = cfb_aes_reset; - cfb_aes_decrypt_prototype.process = cfb_aes_decrypt_process; - cfb_aes_decrypt_prototype.finish = cfb_aes_decrypt_finish; - var cfb_aes_prototype = cfb_aes_constructor.prototype; - cfb_aes_prototype.reset = cfb_aes_reset; - cfb_aes_prototype.encrypt = cfb_aes_encrypt; - cfb_aes_prototype.decrypt = cfb_aes_decrypt; - function sha256_asm(stdlib, foreign, buffer) { - "use asm"; - var H0 = 0, H1 = 0, H2 = 0, H3 = 0, H4 = 0, H5 = 0, H6 = 0, H7 = 0, TOTAL = 0; - var I0 = 0, I1 = 0, I2 = 0, I3 = 0, I4 = 0, I5 = 0, I6 = 0, I7 = 0, O0 = 0, O1 = 0, O2 = 0, O3 = 0, O4 = 0, O5 = 0, O6 = 0, O7 = 0; - var HEAP = new stdlib.Uint8Array(buffer); - function _core(w0, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15) { - w0 = w0 | 0; - w1 = w1 | 0; - w2 = w2 | 0; - w3 = w3 | 0; - w4 = w4 | 0; - w5 = w5 | 0; - w6 = w6 | 0; - w7 = w7 | 0; - w8 = w8 | 0; - w9 = w9 | 0; - w10 = w10 | 0; - w11 = w11 | 0; - w12 = w12 | 0; - w13 = w13 | 0; - w14 = w14 | 0; - w15 = w15 | 0; - var a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, t = 0; - a = H0; - b = H1; - c = H2; - d = H3; - e = H4; - f = H5; - g = H6; - h = H7; - t = w0 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1116352408 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w1 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1899447441 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w2 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3049323471 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w3 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3921009573 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w4 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 961987163 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w5 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1508970993 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w6 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2453635748 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w7 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2870763221 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w8 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3624381080 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w9 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 310598401 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w10 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 607225278 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w11 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1426881987 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w12 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1925078388 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w13 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2162078206 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w14 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2614888103 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - t = w15 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3248222580 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w0 = t = (w1 >>> 7 ^ w1 >>> 18 ^ w1 >>> 3 ^ w1 << 25 ^ w1 << 14) + (w14 >>> 17 ^ w14 >>> 19 ^ w14 >>> 10 ^ w14 << 15 ^ w14 << 13) + w0 + w9 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3835390401 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w1 = t = (w2 >>> 7 ^ w2 >>> 18 ^ w2 >>> 3 ^ w2 << 25 ^ w2 << 14) + (w15 >>> 17 ^ w15 >>> 19 ^ w15 >>> 10 ^ w15 << 15 ^ w15 << 13) + w1 + w10 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 4022224774 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w2 = t = (w3 >>> 7 ^ w3 >>> 18 ^ w3 >>> 3 ^ w3 << 25 ^ w3 << 14) + (w0 >>> 17 ^ w0 >>> 19 ^ w0 >>> 10 ^ w0 << 15 ^ w0 << 13) + w2 + w11 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 264347078 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w3 = t = (w4 >>> 7 ^ w4 >>> 18 ^ w4 >>> 3 ^ w4 << 25 ^ w4 << 14) + (w1 >>> 17 ^ w1 >>> 19 ^ w1 >>> 10 ^ w1 << 15 ^ w1 << 13) + w3 + w12 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 604807628 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w4 = t = (w5 >>> 7 ^ w5 >>> 18 ^ w5 >>> 3 ^ w5 << 25 ^ w5 << 14) + (w2 >>> 17 ^ w2 >>> 19 ^ w2 >>> 10 ^ w2 << 15 ^ w2 << 13) + w4 + w13 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 770255983 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w5 = t = (w6 >>> 7 ^ w6 >>> 18 ^ w6 >>> 3 ^ w6 << 25 ^ w6 << 14) + (w3 >>> 17 ^ w3 >>> 19 ^ w3 >>> 10 ^ w3 << 15 ^ w3 << 13) + w5 + w14 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1249150122 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w6 = t = (w7 >>> 7 ^ w7 >>> 18 ^ w7 >>> 3 ^ w7 << 25 ^ w7 << 14) + (w4 >>> 17 ^ w4 >>> 19 ^ w4 >>> 10 ^ w4 << 15 ^ w4 << 13) + w6 + w15 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1555081692 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w7 = t = (w8 >>> 7 ^ w8 >>> 18 ^ w8 >>> 3 ^ w8 << 25 ^ w8 << 14) + (w5 >>> 17 ^ w5 >>> 19 ^ w5 >>> 10 ^ w5 << 15 ^ w5 << 13) + w7 + w0 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1996064986 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w8 = t = (w9 >>> 7 ^ w9 >>> 18 ^ w9 >>> 3 ^ w9 << 25 ^ w9 << 14) + (w6 >>> 17 ^ w6 >>> 19 ^ w6 >>> 10 ^ w6 << 15 ^ w6 << 13) + w8 + w1 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2554220882 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w9 = t = (w10 >>> 7 ^ w10 >>> 18 ^ w10 >>> 3 ^ w10 << 25 ^ w10 << 14) + (w7 >>> 17 ^ w7 >>> 19 ^ w7 >>> 10 ^ w7 << 15 ^ w7 << 13) + w9 + w2 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2821834349 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w10 = t = (w11 >>> 7 ^ w11 >>> 18 ^ w11 >>> 3 ^ w11 << 25 ^ w11 << 14) + (w8 >>> 17 ^ w8 >>> 19 ^ w8 >>> 10 ^ w8 << 15 ^ w8 << 13) + w10 + w3 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2952996808 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w11 = t = (w12 >>> 7 ^ w12 >>> 18 ^ w12 >>> 3 ^ w12 << 25 ^ w12 << 14) + (w9 >>> 17 ^ w9 >>> 19 ^ w9 >>> 10 ^ w9 << 15 ^ w9 << 13) + w11 + w4 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3210313671 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w12 = t = (w13 >>> 7 ^ w13 >>> 18 ^ w13 >>> 3 ^ w13 << 25 ^ w13 << 14) + (w10 >>> 17 ^ w10 >>> 19 ^ w10 >>> 10 ^ w10 << 15 ^ w10 << 13) + w12 + w5 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3336571891 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w13 = t = (w14 >>> 7 ^ w14 >>> 18 ^ w14 >>> 3 ^ w14 << 25 ^ w14 << 14) + (w11 >>> 17 ^ w11 >>> 19 ^ w11 >>> 10 ^ w11 << 15 ^ w11 << 13) + w13 + w6 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3584528711 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w14 = t = (w15 >>> 7 ^ w15 >>> 18 ^ w15 >>> 3 ^ w15 << 25 ^ w15 << 14) + (w12 >>> 17 ^ w12 >>> 19 ^ w12 >>> 10 ^ w12 << 15 ^ w12 << 13) + w14 + w7 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 113926993 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w15 = t = (w0 >>> 7 ^ w0 >>> 18 ^ w0 >>> 3 ^ w0 << 25 ^ w0 << 14) + (w13 >>> 17 ^ w13 >>> 19 ^ w13 >>> 10 ^ w13 << 15 ^ w13 << 13) + w15 + w8 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 338241895 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w0 = t = (w1 >>> 7 ^ w1 >>> 18 ^ w1 >>> 3 ^ w1 << 25 ^ w1 << 14) + (w14 >>> 17 ^ w14 >>> 19 ^ w14 >>> 10 ^ w14 << 15 ^ w14 << 13) + w0 + w9 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 666307205 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w1 = t = (w2 >>> 7 ^ w2 >>> 18 ^ w2 >>> 3 ^ w2 << 25 ^ w2 << 14) + (w15 >>> 17 ^ w15 >>> 19 ^ w15 >>> 10 ^ w15 << 15 ^ w15 << 13) + w1 + w10 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 773529912 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w2 = t = (w3 >>> 7 ^ w3 >>> 18 ^ w3 >>> 3 ^ w3 << 25 ^ w3 << 14) + (w0 >>> 17 ^ w0 >>> 19 ^ w0 >>> 10 ^ w0 << 15 ^ w0 << 13) + w2 + w11 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1294757372 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w3 = t = (w4 >>> 7 ^ w4 >>> 18 ^ w4 >>> 3 ^ w4 << 25 ^ w4 << 14) + (w1 >>> 17 ^ w1 >>> 19 ^ w1 >>> 10 ^ w1 << 15 ^ w1 << 13) + w3 + w12 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1396182291 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w4 = t = (w5 >>> 7 ^ w5 >>> 18 ^ w5 >>> 3 ^ w5 << 25 ^ w5 << 14) + (w2 >>> 17 ^ w2 >>> 19 ^ w2 >>> 10 ^ w2 << 15 ^ w2 << 13) + w4 + w13 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1695183700 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w5 = t = (w6 >>> 7 ^ w6 >>> 18 ^ w6 >>> 3 ^ w6 << 25 ^ w6 << 14) + (w3 >>> 17 ^ w3 >>> 19 ^ w3 >>> 10 ^ w3 << 15 ^ w3 << 13) + w5 + w14 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1986661051 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w6 = t = (w7 >>> 7 ^ w7 >>> 18 ^ w7 >>> 3 ^ w7 << 25 ^ w7 << 14) + (w4 >>> 17 ^ w4 >>> 19 ^ w4 >>> 10 ^ w4 << 15 ^ w4 << 13) + w6 + w15 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2177026350 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w7 = t = (w8 >>> 7 ^ w8 >>> 18 ^ w8 >>> 3 ^ w8 << 25 ^ w8 << 14) + (w5 >>> 17 ^ w5 >>> 19 ^ w5 >>> 10 ^ w5 << 15 ^ w5 << 13) + w7 + w0 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2456956037 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w8 = t = (w9 >>> 7 ^ w9 >>> 18 ^ w9 >>> 3 ^ w9 << 25 ^ w9 << 14) + (w6 >>> 17 ^ w6 >>> 19 ^ w6 >>> 10 ^ w6 << 15 ^ w6 << 13) + w8 + w1 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2730485921 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w9 = t = (w10 >>> 7 ^ w10 >>> 18 ^ w10 >>> 3 ^ w10 << 25 ^ w10 << 14) + (w7 >>> 17 ^ w7 >>> 19 ^ w7 >>> 10 ^ w7 << 15 ^ w7 << 13) + w9 + w2 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2820302411 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w10 = t = (w11 >>> 7 ^ w11 >>> 18 ^ w11 >>> 3 ^ w11 << 25 ^ w11 << 14) + (w8 >>> 17 ^ w8 >>> 19 ^ w8 >>> 10 ^ w8 << 15 ^ w8 << 13) + w10 + w3 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3259730800 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w11 = t = (w12 >>> 7 ^ w12 >>> 18 ^ w12 >>> 3 ^ w12 << 25 ^ w12 << 14) + (w9 >>> 17 ^ w9 >>> 19 ^ w9 >>> 10 ^ w9 << 15 ^ w9 << 13) + w11 + w4 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3345764771 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w12 = t = (w13 >>> 7 ^ w13 >>> 18 ^ w13 >>> 3 ^ w13 << 25 ^ w13 << 14) + (w10 >>> 17 ^ w10 >>> 19 ^ w10 >>> 10 ^ w10 << 15 ^ w10 << 13) + w12 + w5 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3516065817 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w13 = t = (w14 >>> 7 ^ w14 >>> 18 ^ w14 >>> 3 ^ w14 << 25 ^ w14 << 14) + (w11 >>> 17 ^ w11 >>> 19 ^ w11 >>> 10 ^ w11 << 15 ^ w11 << 13) + w13 + w6 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3600352804 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w14 = t = (w15 >>> 7 ^ w15 >>> 18 ^ w15 >>> 3 ^ w15 << 25 ^ w15 << 14) + (w12 >>> 17 ^ w12 >>> 19 ^ w12 >>> 10 ^ w12 << 15 ^ w12 << 13) + w14 + w7 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 4094571909 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w15 = t = (w0 >>> 7 ^ w0 >>> 18 ^ w0 >>> 3 ^ w0 << 25 ^ w0 << 14) + (w13 >>> 17 ^ w13 >>> 19 ^ w13 >>> 10 ^ w13 << 15 ^ w13 << 13) + w15 + w8 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 275423344 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w0 = t = (w1 >>> 7 ^ w1 >>> 18 ^ w1 >>> 3 ^ w1 << 25 ^ w1 << 14) + (w14 >>> 17 ^ w14 >>> 19 ^ w14 >>> 10 ^ w14 << 15 ^ w14 << 13) + w0 + w9 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 430227734 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w1 = t = (w2 >>> 7 ^ w2 >>> 18 ^ w2 >>> 3 ^ w2 << 25 ^ w2 << 14) + (w15 >>> 17 ^ w15 >>> 19 ^ w15 >>> 10 ^ w15 << 15 ^ w15 << 13) + w1 + w10 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 506948616 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w2 = t = (w3 >>> 7 ^ w3 >>> 18 ^ w3 >>> 3 ^ w3 << 25 ^ w3 << 14) + (w0 >>> 17 ^ w0 >>> 19 ^ w0 >>> 10 ^ w0 << 15 ^ w0 << 13) + w2 + w11 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 659060556 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w3 = t = (w4 >>> 7 ^ w4 >>> 18 ^ w4 >>> 3 ^ w4 << 25 ^ w4 << 14) + (w1 >>> 17 ^ w1 >>> 19 ^ w1 >>> 10 ^ w1 << 15 ^ w1 << 13) + w3 + w12 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 883997877 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w4 = t = (w5 >>> 7 ^ w5 >>> 18 ^ w5 >>> 3 ^ w5 << 25 ^ w5 << 14) + (w2 >>> 17 ^ w2 >>> 19 ^ w2 >>> 10 ^ w2 << 15 ^ w2 << 13) + w4 + w13 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 958139571 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w5 = t = (w6 >>> 7 ^ w6 >>> 18 ^ w6 >>> 3 ^ w6 << 25 ^ w6 << 14) + (w3 >>> 17 ^ w3 >>> 19 ^ w3 >>> 10 ^ w3 << 15 ^ w3 << 13) + w5 + w14 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1322822218 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w6 = t = (w7 >>> 7 ^ w7 >>> 18 ^ w7 >>> 3 ^ w7 << 25 ^ w7 << 14) + (w4 >>> 17 ^ w4 >>> 19 ^ w4 >>> 10 ^ w4 << 15 ^ w4 << 13) + w6 + w15 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1537002063 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w7 = t = (w8 >>> 7 ^ w8 >>> 18 ^ w8 >>> 3 ^ w8 << 25 ^ w8 << 14) + (w5 >>> 17 ^ w5 >>> 19 ^ w5 >>> 10 ^ w5 << 15 ^ w5 << 13) + w7 + w0 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1747873779 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w8 = t = (w9 >>> 7 ^ w9 >>> 18 ^ w9 >>> 3 ^ w9 << 25 ^ w9 << 14) + (w6 >>> 17 ^ w6 >>> 19 ^ w6 >>> 10 ^ w6 << 15 ^ w6 << 13) + w8 + w1 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1955562222 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w9 = t = (w10 >>> 7 ^ w10 >>> 18 ^ w10 >>> 3 ^ w10 << 25 ^ w10 << 14) + (w7 >>> 17 ^ w7 >>> 19 ^ w7 >>> 10 ^ w7 << 15 ^ w7 << 13) + w9 + w2 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2024104815 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w10 = t = (w11 >>> 7 ^ w11 >>> 18 ^ w11 >>> 3 ^ w11 << 25 ^ w11 << 14) + (w8 >>> 17 ^ w8 >>> 19 ^ w8 >>> 10 ^ w8 << 15 ^ w8 << 13) + w10 + w3 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2227730452 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w11 = t = (w12 >>> 7 ^ w12 >>> 18 ^ w12 >>> 3 ^ w12 << 25 ^ w12 << 14) + (w9 >>> 17 ^ w9 >>> 19 ^ w9 >>> 10 ^ w9 << 15 ^ w9 << 13) + w11 + w4 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2361852424 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w12 = t = (w13 >>> 7 ^ w13 >>> 18 ^ w13 >>> 3 ^ w13 << 25 ^ w13 << 14) + (w10 >>> 17 ^ w10 >>> 19 ^ w10 >>> 10 ^ w10 << 15 ^ w10 << 13) + w12 + w5 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2428436474 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w13 = t = (w14 >>> 7 ^ w14 >>> 18 ^ w14 >>> 3 ^ w14 << 25 ^ w14 << 14) + (w11 >>> 17 ^ w11 >>> 19 ^ w11 >>> 10 ^ w11 << 15 ^ w11 << 13) + w13 + w6 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2756734187 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w14 = t = (w15 >>> 7 ^ w15 >>> 18 ^ w15 >>> 3 ^ w15 << 25 ^ w15 << 14) + (w12 >>> 17 ^ w12 >>> 19 ^ w12 >>> 10 ^ w12 << 15 ^ w12 << 13) + w14 + w7 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3204031479 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - w15 = t = (w0 >>> 7 ^ w0 >>> 18 ^ w0 >>> 3 ^ w0 << 25 ^ w0 << 14) + (w13 >>> 17 ^ w13 >>> 19 ^ w13 >>> 10 ^ w13 << 15 ^ w13 << 13) + w15 + w8 | 0; - t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3329325298 | 0; - h = g; - g = f; - f = e; - e = d + t | 0; - d = c; - c = b; - b = a; - a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0; - H0 = H0 + a | 0; - H1 = H1 + b | 0; - H2 = H2 + c | 0; - H3 = H3 + d | 0; - H4 = H4 + e | 0; - H5 = H5 + f | 0; - H6 = H6 + g | 0; - H7 = H7 + h | 0; - } - function _core_heap(offset) { - offset = offset | 0; - _core(HEAP[offset | 0] << 24 | HEAP[offset | 1] << 16 | HEAP[offset | 2] << 8 | HEAP[offset | 3], HEAP[offset | 4] << 24 | HEAP[offset | 5] << 16 | HEAP[offset | 6] << 8 | HEAP[offset | 7], HEAP[offset | 8] << 24 | HEAP[offset | 9] << 16 | HEAP[offset | 10] << 8 | HEAP[offset | 11], HEAP[offset | 12] << 24 | HEAP[offset | 13] << 16 | HEAP[offset | 14] << 8 | HEAP[offset | 15], HEAP[offset | 16] << 24 | HEAP[offset | 17] << 16 | HEAP[offset | 18] << 8 | HEAP[offset | 19], HEAP[offset | 20] << 24 | HEAP[offset | 21] << 16 | HEAP[offset | 22] << 8 | HEAP[offset | 23], HEAP[offset | 24] << 24 | HEAP[offset | 25] << 16 | HEAP[offset | 26] << 8 | HEAP[offset | 27], HEAP[offset | 28] << 24 | HEAP[offset | 29] << 16 | HEAP[offset | 30] << 8 | HEAP[offset | 31], HEAP[offset | 32] << 24 | HEAP[offset | 33] << 16 | HEAP[offset | 34] << 8 | HEAP[offset | 35], HEAP[offset | 36] << 24 | HEAP[offset | 37] << 16 | HEAP[offset | 38] << 8 | HEAP[offset | 39], HEAP[offset | 40] << 24 | HEAP[offset | 41] << 16 | HEAP[offset | 42] << 8 | HEAP[offset | 43], HEAP[offset | 44] << 24 | HEAP[offset | 45] << 16 | HEAP[offset | 46] << 8 | HEAP[offset | 47], HEAP[offset | 48] << 24 | HEAP[offset | 49] << 16 | HEAP[offset | 50] << 8 | HEAP[offset | 51], HEAP[offset | 52] << 24 | HEAP[offset | 53] << 16 | HEAP[offset | 54] << 8 | HEAP[offset | 55], HEAP[offset | 56] << 24 | HEAP[offset | 57] << 16 | HEAP[offset | 58] << 8 | HEAP[offset | 59], HEAP[offset | 60] << 24 | HEAP[offset | 61] << 16 | HEAP[offset | 62] << 8 | HEAP[offset | 63]); - } - function _state_to_heap(output) { - output = output | 0; - HEAP[output | 0] = H0 >>> 24; - HEAP[output | 1] = H0 >>> 16 & 255; - HEAP[output | 2] = H0 >>> 8 & 255; - HEAP[output | 3] = H0 & 255; - HEAP[output | 4] = H1 >>> 24; - HEAP[output | 5] = H1 >>> 16 & 255; - HEAP[output | 6] = H1 >>> 8 & 255; - HEAP[output | 7] = H1 & 255; - HEAP[output | 8] = H2 >>> 24; - HEAP[output | 9] = H2 >>> 16 & 255; - HEAP[output | 10] = H2 >>> 8 & 255; - HEAP[output | 11] = H2 & 255; - HEAP[output | 12] = H3 >>> 24; - HEAP[output | 13] = H3 >>> 16 & 255; - HEAP[output | 14] = H3 >>> 8 & 255; - HEAP[output | 15] = H3 & 255; - HEAP[output | 16] = H4 >>> 24; - HEAP[output | 17] = H4 >>> 16 & 255; - HEAP[output | 18] = H4 >>> 8 & 255; - HEAP[output | 19] = H4 & 255; - HEAP[output | 20] = H5 >>> 24; - HEAP[output | 21] = H5 >>> 16 & 255; - HEAP[output | 22] = H5 >>> 8 & 255; - HEAP[output | 23] = H5 & 255; - HEAP[output | 24] = H6 >>> 24; - HEAP[output | 25] = H6 >>> 16 & 255; - HEAP[output | 26] = H6 >>> 8 & 255; - HEAP[output | 27] = H6 & 255; - HEAP[output | 28] = H7 >>> 24; - HEAP[output | 29] = H7 >>> 16 & 255; - HEAP[output | 30] = H7 >>> 8 & 255; - HEAP[output | 31] = H7 & 255; - } - function reset() { - H0 = 1779033703; - H1 = 3144134277; - H2 = 1013904242; - H3 = 2773480762; - H4 = 1359893119; - H5 = 2600822924; - H6 = 528734635; - H7 = 1541459225; - TOTAL = 0; - } - function init(h0, h1, h2, h3, h4, h5, h6, h7, total) { - h0 = h0 | 0; - h1 = h1 | 0; - h2 = h2 | 0; - h3 = h3 | 0; - h4 = h4 | 0; - h5 = h5 | 0; - h6 = h6 | 0; - h7 = h7 | 0; - total = total | 0; - H0 = h0; - H1 = h1; - H2 = h2; - H3 = h3; - H4 = h4; - H5 = h5; - H6 = h6; - H7 = h7; - TOTAL = total; - } - function process(offset, length) { - offset = offset | 0; - length = length | 0; - var hashed = 0; - if (offset & 63) return -1; - while ((length | 0) >= 64) { - _core_heap(offset); - offset = offset + 64 | 0; - length = length - 64 | 0; - hashed = hashed + 64 | 0; - } - TOTAL = TOTAL + hashed | 0; - return hashed | 0; - } - function finish(offset, length, output) { - offset = offset | 0; - length = length | 0; - output = output | 0; - var hashed = 0, i = 0; - if (offset & 63) return -1; - if (~output) if (output & 31) return -1; - if ((length | 0) >= 64) { - hashed = process(offset, length) | 0; - if ((hashed | 0) == -1) return -1; - offset = offset + hashed | 0; - length = length - hashed | 0; - } - hashed = hashed + length | 0; - TOTAL = TOTAL + length | 0; - HEAP[offset | length] = 128; - if ((length | 0) >= 56) { - for (i = length + 1 | 0; (i | 0) < 64; i = i + 1 | 0) HEAP[offset | i] = 0; - _core_heap(offset); - length = 0; - HEAP[offset | 0] = 0; - } - for (i = length + 1 | 0; (i | 0) < 59; i = i + 1 | 0) HEAP[offset | i] = 0; - HEAP[offset | 59] = TOTAL >>> 29; - HEAP[offset | 60] = TOTAL >>> 21 & 255; - HEAP[offset | 61] = TOTAL >>> 13 & 255; - HEAP[offset | 62] = TOTAL >>> 5 & 255; - HEAP[offset | 63] = TOTAL << 3 & 255; - _core_heap(offset); - if (~output) _state_to_heap(output); - return hashed | 0; - } - function hmac_reset() { - H0 = I0; - H1 = I1; - H2 = I2; - H3 = I3; - H4 = I4; - H5 = I5; - H6 = I6; - H7 = I7; - TOTAL = 64; - } - function _hmac_opad() { - H0 = O0; - H1 = O1; - H2 = O2; - H3 = O3; - H4 = O4; - H5 = O5; - H6 = O6; - H7 = O7; - TOTAL = 64; - } - function hmac_init(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) { - p0 = p0 | 0; - p1 = p1 | 0; - p2 = p2 | 0; - p3 = p3 | 0; - p4 = p4 | 0; - p5 = p5 | 0; - p6 = p6 | 0; - p7 = p7 | 0; - p8 = p8 | 0; - p9 = p9 | 0; - p10 = p10 | 0; - p11 = p11 | 0; - p12 = p12 | 0; - p13 = p13 | 0; - p14 = p14 | 0; - p15 = p15 | 0; - reset(); - _core(p0 ^ 1549556828, p1 ^ 1549556828, p2 ^ 1549556828, p3 ^ 1549556828, p4 ^ 1549556828, p5 ^ 1549556828, p6 ^ 1549556828, p7 ^ 1549556828, p8 ^ 1549556828, p9 ^ 1549556828, p10 ^ 1549556828, p11 ^ 1549556828, p12 ^ 1549556828, p13 ^ 1549556828, p14 ^ 1549556828, p15 ^ 1549556828); - O0 = H0; - O1 = H1; - O2 = H2; - O3 = H3; - O4 = H4; - O5 = H5; - O6 = H6; - O7 = H7; - reset(); - _core(p0 ^ 909522486, p1 ^ 909522486, p2 ^ 909522486, p3 ^ 909522486, p4 ^ 909522486, p5 ^ 909522486, p6 ^ 909522486, p7 ^ 909522486, p8 ^ 909522486, p9 ^ 909522486, p10 ^ 909522486, p11 ^ 909522486, p12 ^ 909522486, p13 ^ 909522486, p14 ^ 909522486, p15 ^ 909522486); - I0 = H0; - I1 = H1; - I2 = H2; - I3 = H3; - I4 = H4; - I5 = H5; - I6 = H6; - I7 = H7; - TOTAL = 64; - } - function hmac_finish(offset, length, output) { - offset = offset | 0; - length = length | 0; - output = output | 0; - var t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, hashed = 0; - if (offset & 63) return -1; - if (~output) if (output & 31) return -1; - hashed = finish(offset, length, -1) | 0; - t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7; - _hmac_opad(); - _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768); - if (~output) _state_to_heap(output); - return hashed | 0; - } - function pbkdf2_generate_block(offset, length, block, count, output) { - offset = offset | 0; - length = length | 0; - block = block | 0; - count = count | 0; - output = output | 0; - var h0 = 0, h1 = 0, h2 = 0, h3 = 0, h4 = 0, h5 = 0, h6 = 0, h7 = 0, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0; - if (offset & 63) return -1; - if (~output) if (output & 31) return -1; - HEAP[offset + length | 0] = block >>> 24; - HEAP[offset + length + 1 | 0] = block >>> 16 & 255; - HEAP[offset + length + 2 | 0] = block >>> 8 & 255; - HEAP[offset + length + 3 | 0] = block & 255; - hmac_finish(offset, length + 4 | 0, -1) | 0; - h0 = t0 = H0, h1 = t1 = H1, h2 = t2 = H2, h3 = t3 = H3, h4 = t4 = H4, h5 = t5 = H5, - h6 = t6 = H6, h7 = t7 = H7; - count = count - 1 | 0; - while ((count | 0) > 0) { - hmac_reset(); - _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768); - t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7; - _hmac_opad(); - _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768); - t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7; - h0 = h0 ^ H0; - h1 = h1 ^ H1; - h2 = h2 ^ H2; - h3 = h3 ^ H3; - h4 = h4 ^ H4; - h5 = h5 ^ H5; - h6 = h6 ^ H6; - h7 = h7 ^ H7; - count = count - 1 | 0; - } - H0 = h0; - H1 = h1; - H2 = h2; - H3 = h3; - H4 = h4; - H5 = h5; - H6 = h6; - H7 = h7; - if (~output) _state_to_heap(output); - return 0; - } - return { - reset: reset, - init: init, - process: process, - finish: finish, - hmac_reset: hmac_reset, - hmac_init: hmac_init, - hmac_finish: hmac_finish, - pbkdf2_generate_block: pbkdf2_generate_block - }; - } - var _sha256_block_size = 64, _sha256_hash_size = 32; - function sha256_constructor(options) { - options = options || {}; - options.heapSize = options.heapSize || 4096; - if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096"); - this.heap = options.heap || new Uint8Array(options.heapSize); - this.asm = options.asm || sha256_asm(global, null, this.heap.buffer); - this.BLOCK_SIZE = _sha256_block_size; - this.HASH_SIZE = _sha256_hash_size; - this.reset(); - } - function sha256_reset() { - this.result = null; - this.pos = 0; - this.len = 0; - this.asm.reset(); - return this; - } - function sha256_process(data) { - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - var dpos = 0, dlen = 0, clen = 0; - if (is_buffer(data) || is_bytes(data)) { - dpos = data.byteOffset || 0; - dlen = data.byteLength; - } else if (is_string(data)) { - dlen = data.length; - } else { - throw new TypeError("data isn't of expected type"); - } - while (dlen > 0) { - clen = this.heap.byteLength - this.pos - this.len; - clen = clen < dlen ? clen : dlen; - if (is_buffer(data) || is_bytes(data)) { - this.heap.set(new Uint8Array(data.buffer || data, dpos, clen), this.pos + this.len); - } else { - for (var i = 0; i < clen; i++) this.heap[this.pos + this.len + i] = data.charCodeAt(dpos + i); - } - this.len += clen; - dpos += clen; - dlen -= clen; - clen = this.asm.process(this.pos, this.len); - if (clen < this.len) { - this.pos += clen; - this.len -= clen; - } else { - this.pos = 0; - this.len = 0; - } - } - return this; - } - function sha256_finish() { - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - this.asm.finish(this.pos, this.len, 0); - this.result = new Uint8Array(_sha256_hash_size); - this.result.set(this.heap.subarray(0, _sha256_hash_size)); - this.pos = 0; - this.len = 0; - return this; - } - sha256_constructor.BLOCK_SIZE = _sha256_block_size; - sha256_constructor.HASH_SIZE = _sha256_hash_size; - var sha256_prototype = sha256_constructor.prototype; - sha256_prototype.reset = sha256_reset; - sha256_prototype.process = sha256_process; - sha256_prototype.finish = sha256_finish; - function sha512_asm(stdlib, foreign, buffer) { - "use asm"; - var H0h = 0, H0l = 0, H1h = 0, H1l = 0, H2h = 0, H2l = 0, H3h = 0, H3l = 0, H4h = 0, H4l = 0, H5h = 0, H5l = 0, H6h = 0, H6l = 0, H7h = 0, H7l = 0, TOTAL = 0; - var I0h = 0, I0l = 0, I1h = 0, I1l = 0, I2h = 0, I2l = 0, I3h = 0, I3l = 0, I4h = 0, I4l = 0, I5h = 0, I5l = 0, I6h = 0, I6l = 0, I7h = 0, I7l = 0, O0h = 0, O0l = 0, O1h = 0, O1l = 0, O2h = 0, O2l = 0, O3h = 0, O3l = 0, O4h = 0, O4l = 0, O5h = 0, O5l = 0, O6h = 0, O6l = 0, O7h = 0, O7l = 0; - var HEAP = new stdlib.Uint8Array(buffer); - function _core(w0h, w0l, w1h, w1l, w2h, w2l, w3h, w3l, w4h, w4l, w5h, w5l, w6h, w6l, w7h, w7l, w8h, w8l, w9h, w9l, w10h, w10l, w11h, w11l, w12h, w12l, w13h, w13l, w14h, w14l, w15h, w15l) { - w0h = w0h | 0; - w0l = w0l | 0; - w1h = w1h | 0; - w1l = w1l | 0; - w2h = w2h | 0; - w2l = w2l | 0; - w3h = w3h | 0; - w3l = w3l | 0; - w4h = w4h | 0; - w4l = w4l | 0; - w5h = w5h | 0; - w5l = w5l | 0; - w6h = w6h | 0; - w6l = w6l | 0; - w7h = w7h | 0; - w7l = w7l | 0; - w8h = w8h | 0; - w8l = w8l | 0; - w9h = w9h | 0; - w9l = w9l | 0; - w10h = w10h | 0; - w10l = w10l | 0; - w11h = w11h | 0; - w11l = w11l | 0; - w12h = w12h | 0; - w12l = w12l | 0; - w13h = w13h | 0; - w13l = w13l | 0; - w14h = w14h | 0; - w14l = w14l | 0; - w15h = w15h | 0; - w15l = w15l | 0; - var ah = 0, al = 0, bh = 0, bl = 0, ch = 0, cl = 0, dh = 0, dl = 0, eh = 0, el = 0, fh = 0, fl = 0, gh = 0, gl = 0, hh = 0, hl = 0, th = 0, tl = 0, xl = 0; - ah = H0h; - al = H0l; - bh = H1h; - bl = H1l; - ch = H2h; - cl = H2l; - dh = H3h; - dl = H3l; - eh = H4h; - el = H4l; - fh = H5h; - fl = H5l; - gh = H6h; - gl = H6l; - hh = H7h; - hl = H7l; - tl = 3609767458 + w0l | 0; - th = 1116352408 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 602891725 + w1l | 0; - th = 1899447441 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3964484399 + w2l | 0; - th = 3049323471 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2173295548 + w3l | 0; - th = 3921009573 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 4081628472 + w4l | 0; - th = 961987163 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3053834265 + w5l | 0; - th = 1508970993 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2937671579 + w6l | 0; - th = 2453635748 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3664609560 + w7l | 0; - th = 2870763221 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2734883394 + w8l | 0; - th = 3624381080 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1164996542 + w9l | 0; - th = 310598401 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1323610764 + w10l | 0; - th = 607225278 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3590304994 + w11l | 0; - th = 1426881987 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 4068182383 + w12l | 0; - th = 1925078388 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 991336113 + w13l | 0; - th = 2162078206 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 633803317 + w14l | 0; - th = 2614888103 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3479774868 + w15l | 0; - th = 3248222580 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w0l = w0l + w9l | 0; - w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2666613458 + w0l | 0; - th = 3835390401 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w1l = w1l + w10l | 0; - w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 944711139 + w1l | 0; - th = 4022224774 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w2l = w2l + w11l | 0; - w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2341262773 + w2l | 0; - th = 264347078 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w3l = w3l + w12l | 0; - w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2007800933 + w3l | 0; - th = 604807628 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w4l = w4l + w13l | 0; - w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1495990901 + w4l | 0; - th = 770255983 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w5l = w5l + w14l | 0; - w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1856431235 + w5l | 0; - th = 1249150122 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w6l = w6l + w15l | 0; - w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3175218132 + w6l | 0; - th = 1555081692 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w7l = w7l + w0l | 0; - w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2198950837 + w7l | 0; - th = 1996064986 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w8l = w8l + w1l | 0; - w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3999719339 + w8l | 0; - th = 2554220882 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w9l = w9l + w2l | 0; - w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 766784016 + w9l | 0; - th = 2821834349 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w10l = w10l + w3l | 0; - w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2566594879 + w10l | 0; - th = 2952996808 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w11l = w11l + w4l | 0; - w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3203337956 + w11l | 0; - th = 3210313671 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w12l = w12l + w5l | 0; - w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1034457026 + w12l | 0; - th = 3336571891 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w13l = w13l + w6l | 0; - w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2466948901 + w13l | 0; - th = 3584528711 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w14l = w14l + w7l | 0; - w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3758326383 + w14l | 0; - th = 113926993 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w15l = w15l + w8l | 0; - w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 168717936 + w15l | 0; - th = 338241895 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w0l = w0l + w9l | 0; - w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1188179964 + w0l | 0; - th = 666307205 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w1l = w1l + w10l | 0; - w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1546045734 + w1l | 0; - th = 773529912 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w2l = w2l + w11l | 0; - w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1522805485 + w2l | 0; - th = 1294757372 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w3l = w3l + w12l | 0; - w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2643833823 + w3l | 0; - th = 1396182291 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w4l = w4l + w13l | 0; - w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2343527390 + w4l | 0; - th = 1695183700 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w5l = w5l + w14l | 0; - w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1014477480 + w5l | 0; - th = 1986661051 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w6l = w6l + w15l | 0; - w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1206759142 + w6l | 0; - th = 2177026350 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w7l = w7l + w0l | 0; - w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 344077627 + w7l | 0; - th = 2456956037 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w8l = w8l + w1l | 0; - w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1290863460 + w8l | 0; - th = 2730485921 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w9l = w9l + w2l | 0; - w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3158454273 + w9l | 0; - th = 2820302411 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w10l = w10l + w3l | 0; - w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3505952657 + w10l | 0; - th = 3259730800 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w11l = w11l + w4l | 0; - w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 106217008 + w11l | 0; - th = 3345764771 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w12l = w12l + w5l | 0; - w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3606008344 + w12l | 0; - th = 3516065817 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w13l = w13l + w6l | 0; - w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1432725776 + w13l | 0; - th = 3600352804 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w14l = w14l + w7l | 0; - w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1467031594 + w14l | 0; - th = 4094571909 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w15l = w15l + w8l | 0; - w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 851169720 + w15l | 0; - th = 275423344 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w0l = w0l + w9l | 0; - w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3100823752 + w0l | 0; - th = 430227734 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w1l = w1l + w10l | 0; - w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1363258195 + w1l | 0; - th = 506948616 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w2l = w2l + w11l | 0; - w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3750685593 + w2l | 0; - th = 659060556 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w3l = w3l + w12l | 0; - w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3785050280 + w3l | 0; - th = 883997877 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w4l = w4l + w13l | 0; - w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3318307427 + w4l | 0; - th = 958139571 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w5l = w5l + w14l | 0; - w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3812723403 + w5l | 0; - th = 1322822218 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w6l = w6l + w15l | 0; - w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2003034995 + w6l | 0; - th = 1537002063 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w7l = w7l + w0l | 0; - w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3602036899 + w7l | 0; - th = 1747873779 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w8l = w8l + w1l | 0; - w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1575990012 + w8l | 0; - th = 1955562222 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w9l = w9l + w2l | 0; - w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1125592928 + w9l | 0; - th = 2024104815 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w10l = w10l + w3l | 0; - w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2716904306 + w10l | 0; - th = 2227730452 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w11l = w11l + w4l | 0; - w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 442776044 + w11l | 0; - th = 2361852424 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w12l = w12l + w5l | 0; - w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 593698344 + w12l | 0; - th = 2428436474 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w13l = w13l + w6l | 0; - w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3733110249 + w13l | 0; - th = 2756734187 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w14l = w14l + w7l | 0; - w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2999351573 + w14l | 0; - th = 3204031479 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w15l = w15l + w8l | 0; - w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3815920427 + w15l | 0; - th = 3329325298 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w0l = w0l + w9l | 0; - w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0; - w0l = w0l + xl | 0; - w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3928383900 + w0l | 0; - th = 3391569614 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w1l = w1l + w10l | 0; - w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0; - w1l = w1l + xl | 0; - w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 566280711 + w1l | 0; - th = 3515267271 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w2l = w2l + w11l | 0; - w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0; - w2l = w2l + xl | 0; - w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3454069534 + w2l | 0; - th = 3940187606 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w3l = w3l + w12l | 0; - w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0; - w3l = w3l + xl | 0; - w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 4000239992 + w3l | 0; - th = 4118630271 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w4l = w4l + w13l | 0; - w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0; - w4l = w4l + xl | 0; - w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1914138554 + w4l | 0; - th = 116418474 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w5l = w5l + w14l | 0; - w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0; - w5l = w5l + xl | 0; - w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2731055270 + w5l | 0; - th = 174292421 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w6l = w6l + w15l | 0; - w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0; - w6l = w6l + xl | 0; - w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3203993006 + w6l | 0; - th = 289380356 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w7l = w7l + w0l | 0; - w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0; - w7l = w7l + xl | 0; - w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 320620315 + w7l | 0; - th = 460393269 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w8l = w8l + w1l | 0; - w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0; - w8l = w8l + xl | 0; - w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 587496836 + w8l | 0; - th = 685471733 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w9l = w9l + w2l | 0; - w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0; - w9l = w9l + xl | 0; - w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1086792851 + w9l | 0; - th = 852142971 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w10l = w10l + w3l | 0; - w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0; - w10l = w10l + xl | 0; - w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 365543100 + w10l | 0; - th = 1017036298 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w11l = w11l + w4l | 0; - w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0; - w11l = w11l + xl | 0; - w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 2618297676 + w11l | 0; - th = 1126000580 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w12l = w12l + w5l | 0; - w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0; - w12l = w12l + xl | 0; - w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 3409855158 + w12l | 0; - th = 1288033470 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w13l = w13l + w6l | 0; - w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0; - xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0; - w13l = w13l + xl | 0; - w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 4234509866 + w13l | 0; - th = 1501505948 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w14l = w14l + w7l | 0; - w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0; - xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0; - w14l = w14l + xl | 0; - w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 987167468 + w14l | 0; - th = 1607167915 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - w15l = w15l + w8l | 0; - w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0; - xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0; - w15l = w15l + xl | 0; - w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0; - tl = 1246189591 + w15l | 0; - th = 1816402316 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0; - tl = tl + hl | 0; - th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0; - xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0; - tl = tl + xl | 0; - th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - xl = gl ^ el & (fl ^ gl) | 0; - tl = tl + xl | 0; - th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0; - hl = gl; - hh = gh; - gl = fl; - gh = fh; - fl = el; - fh = eh; - el = dl + tl | 0; - eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; - dl = cl; - dh = ch; - cl = bl; - ch = bh; - bl = al; - bh = ah; - al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0; - ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0; - xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0; - al = al + xl | 0; - ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0; - H0l = H0l + al | 0; - H0h = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0) | 0; - H1l = H1l + bl | 0; - H1h = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0) | 0; - H2l = H2l + cl | 0; - H2h = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0) | 0; - H3l = H3l + dl | 0; - H3h = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0) | 0; - H4l = H4l + el | 0; - H4h = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0) | 0; - H5l = H5l + fl | 0; - H5h = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0) | 0; - H6l = H6l + gl | 0; - H6h = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0) | 0; - H7l = H7l + hl | 0; - H7h = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0) | 0; - } - function _core_heap(offset) { - offset = offset | 0; - _core(HEAP[offset | 0] << 24 | HEAP[offset | 1] << 16 | HEAP[offset | 2] << 8 | HEAP[offset | 3], HEAP[offset | 4] << 24 | HEAP[offset | 5] << 16 | HEAP[offset | 6] << 8 | HEAP[offset | 7], HEAP[offset | 8] << 24 | HEAP[offset | 9] << 16 | HEAP[offset | 10] << 8 | HEAP[offset | 11], HEAP[offset | 12] << 24 | HEAP[offset | 13] << 16 | HEAP[offset | 14] << 8 | HEAP[offset | 15], HEAP[offset | 16] << 24 | HEAP[offset | 17] << 16 | HEAP[offset | 18] << 8 | HEAP[offset | 19], HEAP[offset | 20] << 24 | HEAP[offset | 21] << 16 | HEAP[offset | 22] << 8 | HEAP[offset | 23], HEAP[offset | 24] << 24 | HEAP[offset | 25] << 16 | HEAP[offset | 26] << 8 | HEAP[offset | 27], HEAP[offset | 28] << 24 | HEAP[offset | 29] << 16 | HEAP[offset | 30] << 8 | HEAP[offset | 31], HEAP[offset | 32] << 24 | HEAP[offset | 33] << 16 | HEAP[offset | 34] << 8 | HEAP[offset | 35], HEAP[offset | 36] << 24 | HEAP[offset | 37] << 16 | HEAP[offset | 38] << 8 | HEAP[offset | 39], HEAP[offset | 40] << 24 | HEAP[offset | 41] << 16 | HEAP[offset | 42] << 8 | HEAP[offset | 43], HEAP[offset | 44] << 24 | HEAP[offset | 45] << 16 | HEAP[offset | 46] << 8 | HEAP[offset | 47], HEAP[offset | 48] << 24 | HEAP[offset | 49] << 16 | HEAP[offset | 50] << 8 | HEAP[offset | 51], HEAP[offset | 52] << 24 | HEAP[offset | 53] << 16 | HEAP[offset | 54] << 8 | HEAP[offset | 55], HEAP[offset | 56] << 24 | HEAP[offset | 57] << 16 | HEAP[offset | 58] << 8 | HEAP[offset | 59], HEAP[offset | 60] << 24 | HEAP[offset | 61] << 16 | HEAP[offset | 62] << 8 | HEAP[offset | 63], HEAP[offset | 64] << 24 | HEAP[offset | 65] << 16 | HEAP[offset | 66] << 8 | HEAP[offset | 67], HEAP[offset | 68] << 24 | HEAP[offset | 69] << 16 | HEAP[offset | 70] << 8 | HEAP[offset | 71], HEAP[offset | 72] << 24 | HEAP[offset | 73] << 16 | HEAP[offset | 74] << 8 | HEAP[offset | 75], HEAP[offset | 76] << 24 | HEAP[offset | 77] << 16 | HEAP[offset | 78] << 8 | HEAP[offset | 79], HEAP[offset | 80] << 24 | HEAP[offset | 81] << 16 | HEAP[offset | 82] << 8 | HEAP[offset | 83], HEAP[offset | 84] << 24 | HEAP[offset | 85] << 16 | HEAP[offset | 86] << 8 | HEAP[offset | 87], HEAP[offset | 88] << 24 | HEAP[offset | 89] << 16 | HEAP[offset | 90] << 8 | HEAP[offset | 91], HEAP[offset | 92] << 24 | HEAP[offset | 93] << 16 | HEAP[offset | 94] << 8 | HEAP[offset | 95], HEAP[offset | 96] << 24 | HEAP[offset | 97] << 16 | HEAP[offset | 98] << 8 | HEAP[offset | 99], HEAP[offset | 100] << 24 | HEAP[offset | 101] << 16 | HEAP[offset | 102] << 8 | HEAP[offset | 103], HEAP[offset | 104] << 24 | HEAP[offset | 105] << 16 | HEAP[offset | 106] << 8 | HEAP[offset | 107], HEAP[offset | 108] << 24 | HEAP[offset | 109] << 16 | HEAP[offset | 110] << 8 | HEAP[offset | 111], HEAP[offset | 112] << 24 | HEAP[offset | 113] << 16 | HEAP[offset | 114] << 8 | HEAP[offset | 115], HEAP[offset | 116] << 24 | HEAP[offset | 117] << 16 | HEAP[offset | 118] << 8 | HEAP[offset | 119], HEAP[offset | 120] << 24 | HEAP[offset | 121] << 16 | HEAP[offset | 122] << 8 | HEAP[offset | 123], HEAP[offset | 124] << 24 | HEAP[offset | 125] << 16 | HEAP[offset | 126] << 8 | HEAP[offset | 127]); - } - function _state_to_heap(output) { - output = output | 0; - HEAP[output | 0] = H0h >>> 24; - HEAP[output | 1] = H0h >>> 16 & 255; - HEAP[output | 2] = H0h >>> 8 & 255; - HEAP[output | 3] = H0h & 255; - HEAP[output | 4] = H0l >>> 24; - HEAP[output | 5] = H0l >>> 16 & 255; - HEAP[output | 6] = H0l >>> 8 & 255; - HEAP[output | 7] = H0l & 255; - HEAP[output | 8] = H1h >>> 24; - HEAP[output | 9] = H1h >>> 16 & 255; - HEAP[output | 10] = H1h >>> 8 & 255; - HEAP[output | 11] = H1h & 255; - HEAP[output | 12] = H1l >>> 24; - HEAP[output | 13] = H1l >>> 16 & 255; - HEAP[output | 14] = H1l >>> 8 & 255; - HEAP[output | 15] = H1l & 255; - HEAP[output | 16] = H2h >>> 24; - HEAP[output | 17] = H2h >>> 16 & 255; - HEAP[output | 18] = H2h >>> 8 & 255; - HEAP[output | 19] = H2h & 255; - HEAP[output | 20] = H2l >>> 24; - HEAP[output | 21] = H2l >>> 16 & 255; - HEAP[output | 22] = H2l >>> 8 & 255; - HEAP[output | 23] = H2l & 255; - HEAP[output | 24] = H3h >>> 24; - HEAP[output | 25] = H3h >>> 16 & 255; - HEAP[output | 26] = H3h >>> 8 & 255; - HEAP[output | 27] = H3h & 255; - HEAP[output | 28] = H3l >>> 24; - HEAP[output | 29] = H3l >>> 16 & 255; - HEAP[output | 30] = H3l >>> 8 & 255; - HEAP[output | 31] = H3l & 255; - HEAP[output | 32] = H4h >>> 24; - HEAP[output | 33] = H4h >>> 16 & 255; - HEAP[output | 34] = H4h >>> 8 & 255; - HEAP[output | 35] = H4h & 255; - HEAP[output | 36] = H4l >>> 24; - HEAP[output | 37] = H4l >>> 16 & 255; - HEAP[output | 38] = H4l >>> 8 & 255; - HEAP[output | 39] = H4l & 255; - HEAP[output | 40] = H5h >>> 24; - HEAP[output | 41] = H5h >>> 16 & 255; - HEAP[output | 42] = H5h >>> 8 & 255; - HEAP[output | 43] = H5h & 255; - HEAP[output | 44] = H5l >>> 24; - HEAP[output | 45] = H5l >>> 16 & 255; - HEAP[output | 46] = H5l >>> 8 & 255; - HEAP[output | 47] = H5l & 255; - HEAP[output | 48] = H6h >>> 24; - HEAP[output | 49] = H6h >>> 16 & 255; - HEAP[output | 50] = H6h >>> 8 & 255; - HEAP[output | 51] = H6h & 255; - HEAP[output | 52] = H6l >>> 24; - HEAP[output | 53] = H6l >>> 16 & 255; - HEAP[output | 54] = H6l >>> 8 & 255; - HEAP[output | 55] = H6l & 255; - HEAP[output | 56] = H7h >>> 24; - HEAP[output | 57] = H7h >>> 16 & 255; - HEAP[output | 58] = H7h >>> 8 & 255; - HEAP[output | 59] = H7h & 255; - HEAP[output | 60] = H7l >>> 24; - HEAP[output | 61] = H7l >>> 16 & 255; - HEAP[output | 62] = H7l >>> 8 & 255; - HEAP[output | 63] = H7l & 255; - } - function reset() { - H0h = 1779033703; - H0l = 4089235720; - H1h = 3144134277; - H1l = 2227873595; - H2h = 1013904242; - H2l = 4271175723; - H3h = 2773480762; - H3l = 1595750129; - H4h = 1359893119; - H4l = 2917565137; - H5h = 2600822924; - H5l = 725511199; - H6h = 528734635; - H6l = 4215389547; - H7h = 1541459225; - H7l = 327033209; - TOTAL = 0; - } - function init(h0h, h0l, h1h, h1l, h2h, h2l, h3h, h3l, h4h, h4l, h5h, h5l, h6h, h6l, h7h, h7l, total) { - h0h = h0h | 0; - h0l = h0l | 0; - h1h = h1h | 0; - h1l = h1l | 0; - h2h = h2h | 0; - h2l = h2l | 0; - h3h = h3h | 0; - h3l = h3l | 0; - h4h = h4h | 0; - h4l = h4l | 0; - h5h = h5h | 0; - h5l = h5l | 0; - h6h = h6h | 0; - h6l = h6l | 0; - h7h = h7h | 0; - h7l = h7l | 0; - total = total | 0; - H0h = h0h; - H0l = h0l; - H1h = h1h; - H1l = h1l; - H2h = h2h; - H2l = h2l; - H3h = h3h; - H3l = h3l; - H4h = h4h; - H4l = h4l; - H5h = h5h; - H5l = h5l; - H6h = h6h; - H6l = h6l; - H7h = h7h; - H7l = h7l; - TOTAL = total; - } - function process(offset, length) { - offset = offset | 0; - length = length | 0; - var hashed = 0; - if (offset & 127) return -1; - while ((length | 0) >= 128) { - _core_heap(offset); - offset = offset + 128 | 0; - length = length - 128 | 0; - hashed = hashed + 128 | 0; - } - TOTAL = TOTAL + hashed | 0; - return hashed | 0; - } - function finish(offset, length, output) { - offset = offset | 0; - length = length | 0; - output = output | 0; - var hashed = 0, i = 0; - if (offset & 127) return -1; - if (~output) if (output & 63) return -1; - if ((length | 0) >= 128) { - hashed = process(offset, length) | 0; - if ((hashed | 0) == -1) return -1; - offset = offset + hashed | 0; - length = length - hashed | 0; - } - hashed = hashed + length | 0; - TOTAL = TOTAL + length | 0; - HEAP[offset | length] = 128; - if ((length | 0) >= 112) { - for (i = length + 1 | 0; (i | 0) < 128; i = i + 1 | 0) HEAP[offset | i] = 0; - _core_heap(offset); - length = 0; - HEAP[offset | 0] = 0; - } - for (i = length + 1 | 0; (i | 0) < 123; i = i + 1 | 0) HEAP[offset | i] = 0; - HEAP[offset | 123] = TOTAL >>> 29; - HEAP[offset | 124] = TOTAL >>> 21 & 255; - HEAP[offset | 125] = TOTAL >>> 13 & 255; - HEAP[offset | 126] = TOTAL >>> 5 & 255; - HEAP[offset | 127] = TOTAL << 3 & 255; - _core_heap(offset); - if (~output) _state_to_heap(output); - return hashed | 0; - } - function hmac_reset() { - H0h = I0h; - H0l = I0l; - H1h = I1h; - H1l = I1l; - H2h = I2h; - H2l = I2l; - H3h = I3h; - H3l = I3l; - H4h = I4h; - H4l = I4l; - H5h = I5h; - H5l = I5l; - H6h = I6h; - H6l = I6l; - H7h = I7h; - H7l = I7l; - TOTAL = 128; - } - function _hmac_opad() { - H0h = O0h; - H0l = O0l; - H1h = O1h; - H1l = O1l; - H2h = O2h; - H2l = O2l; - H3h = O3h; - H3l = O3l; - H4h = O4h; - H4l = O4l; - H5h = O5h; - H5l = O5l; - H6h = O6h; - H6l = O6l; - H7h = O7h; - H7l = O7l; - TOTAL = 128; - } - function hmac_init(p0h, p0l, p1h, p1l, p2h, p2l, p3h, p3l, p4h, p4l, p5h, p5l, p6h, p6l, p7h, p7l, p8h, p8l, p9h, p9l, p10h, p10l, p11h, p11l, p12h, p12l, p13h, p13l, p14h, p14l, p15h, p15l) { - p0h = p0h | 0; - p0l = p0l | 0; - p1h = p1h | 0; - p1l = p1l | 0; - p2h = p2h | 0; - p2l = p2l | 0; - p3h = p3h | 0; - p3l = p3l | 0; - p4h = p4h | 0; - p4l = p4l | 0; - p5h = p5h | 0; - p5l = p5l | 0; - p6h = p6h | 0; - p6l = p6l | 0; - p7h = p7h | 0; - p7l = p7l | 0; - p8h = p8h | 0; - p8l = p8l | 0; - p9h = p9h | 0; - p9l = p9l | 0; - p10h = p10h | 0; - p10l = p10l | 0; - p11h = p11h | 0; - p11l = p11l | 0; - p12h = p12h | 0; - p12l = p12l | 0; - p13h = p13h | 0; - p13l = p13l | 0; - p14h = p14h | 0; - p14l = p14l | 0; - p15h = p15h | 0; - p15l = p15l | 0; - reset(); - _core(p0h ^ 1549556828, p0l ^ 1549556828, p1h ^ 1549556828, p1l ^ 1549556828, p2h ^ 1549556828, p2l ^ 1549556828, p3h ^ 1549556828, p3l ^ 1549556828, p4h ^ 1549556828, p4l ^ 1549556828, p5h ^ 1549556828, p5l ^ 1549556828, p6h ^ 1549556828, p6l ^ 1549556828, p7h ^ 1549556828, p7l ^ 1549556828, p8h ^ 1549556828, p8l ^ 1549556828, p9h ^ 1549556828, p9l ^ 1549556828, p10h ^ 1549556828, p10l ^ 1549556828, p11h ^ 1549556828, p11l ^ 1549556828, p12h ^ 1549556828, p12l ^ 1549556828, p13h ^ 1549556828, p13l ^ 1549556828, p14h ^ 1549556828, p14l ^ 1549556828, p15h ^ 1549556828, p15l ^ 1549556828); - O0h = H0h; - O0l = H0l; - O1h = H1h; - O1l = H1l; - O2h = H2h; - O2l = H2l; - O3h = H3h; - O3l = H3l; - O4h = H4h; - O4l = H4l; - O5h = H5h; - O5l = H5l; - O6h = H6h; - O6l = H6l; - O7h = H7h; - O7l = H7l; - reset(); - _core(p0h ^ 909522486, p0l ^ 909522486, p1h ^ 909522486, p1l ^ 909522486, p2h ^ 909522486, p2l ^ 909522486, p3h ^ 909522486, p3l ^ 909522486, p4h ^ 909522486, p4l ^ 909522486, p5h ^ 909522486, p5l ^ 909522486, p6h ^ 909522486, p6l ^ 909522486, p7h ^ 909522486, p7l ^ 909522486, p8h ^ 909522486, p8l ^ 909522486, p9h ^ 909522486, p9l ^ 909522486, p10h ^ 909522486, p10l ^ 909522486, p11h ^ 909522486, p11l ^ 909522486, p12h ^ 909522486, p12l ^ 909522486, p13h ^ 909522486, p13l ^ 909522486, p14h ^ 909522486, p14l ^ 909522486, p15h ^ 909522486, p15l ^ 909522486); - I0h = H0h; - I0l = H0l; - I1h = H1h; - I1l = H1l; - I2h = H2h; - I2l = H2l; - I3h = H3h; - I3l = H3l; - I4h = H4h; - I4l = H4l; - I5h = H5h; - I5l = H5l; - I6h = H6h; - I6l = H6l; - I7h = H7h; - I7l = H7l; - TOTAL = 128; - } - function hmac_finish(offset, length, output) { - offset = offset | 0; - length = length | 0; - output = output | 0; - var t0h = 0, t0l = 0, t1h = 0, t1l = 0, t2h = 0, t2l = 0, t3h = 0, t3l = 0, t4h = 0, t4l = 0, t5h = 0, t5l = 0, t6h = 0, t6l = 0, t7h = 0, t7l = 0, hashed = 0; - if (offset & 127) return -1; - if (~output) if (output & 63) return -1; - hashed = finish(offset, length, -1) | 0; - t0h = H0h; - t0l = H0l; - t1h = H1h; - t1l = H1l; - t2h = H2h; - t2l = H2l; - t3h = H3h; - t3l = H3l; - t4h = H4h; - t4l = H4l; - t5h = H5h; - t5l = H5l; - t6h = H6h; - t6l = H6l; - t7h = H7h; - t7l = H7l; - _hmac_opad(); - _core(t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536); - if (~output) _state_to_heap(output); - return hashed | 0; - } - function pbkdf2_generate_block(offset, length, block, count, output) { - offset = offset | 0; - length = length | 0; - block = block | 0; - count = count | 0; - output = output | 0; - var h0h = 0, h0l = 0, h1h = 0, h1l = 0, h2h = 0, h2l = 0, h3h = 0, h3l = 0, h4h = 0, h4l = 0, h5h = 0, h5l = 0, h6h = 0, h6l = 0, h7h = 0, h7l = 0, t0h = 0, t0l = 0, t1h = 0, t1l = 0, t2h = 0, t2l = 0, t3h = 0, t3l = 0, t4h = 0, t4l = 0, t5h = 0, t5l = 0, t6h = 0, t6l = 0, t7h = 0, t7l = 0; - if (offset & 127) return -1; - if (~output) if (output & 63) return -1; - HEAP[offset + length | 0] = block >>> 24; - HEAP[offset + length + 1 | 0] = block >>> 16 & 255; - HEAP[offset + length + 2 | 0] = block >>> 8 & 255; - HEAP[offset + length + 3 | 0] = block & 255; - hmac_finish(offset, length + 4 | 0, -1) | 0; - h0h = t0h = H0h; - h0l = t0l = H0l; - h1h = t1h = H1h; - h1l = t1l = H1l; - h2h = t2h = H2h; - h2l = t2l = H2l; - h3h = t3h = H3h; - h3l = t3l = H3l; - h4h = t4h = H4h; - h4l = t4l = H4l; - h5h = t5h = H5h; - h5l = t5l = H5l; - h6h = t6h = H6h; - h6l = t6l = H6l; - h7h = t7h = H7h; - h7l = t7l = H7l; - count = count - 1 | 0; - while ((count | 0) > 0) { - hmac_reset(); - _core(t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536); - t0h = H0h; - t0l = H0l; - t1h = H1h; - t1l = H1l; - t2h = H2h; - t2l = H2l; - t3h = H3h; - t3l = H3l; - t4h = H4h; - t4l = H4l; - t5h = H5h; - t5l = H5l; - t6h = H6h; - t6l = H6l; - t7h = H7h; - t7l = H7l; - _hmac_opad(); - _core(t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536); - t0h = H0h; - t0l = H0l; - t1h = H1h; - t1l = H1l; - t2h = H2h; - t2l = H2l; - t3h = H3h; - t3l = H3l; - t4h = H4h; - t4l = H4l; - t5h = H5h; - t5l = H5l; - t6h = H6h; - t6l = H6l; - t7h = H7h; - t7l = H7l; - h0h = h0h ^ H0h; - h0l = h0l ^ H0l; - h1h = h1h ^ H1h; - h1l = h1l ^ H1l; - h2h = h2h ^ H2h; - h2l = h2l ^ H2l; - h3h = h3h ^ H3h; - h3l = h3l ^ H3l; - h4h = h4h ^ H4h; - h4l = h4l ^ H4l; - h5h = h5h ^ H5h; - h5l = h5l ^ H5l; - h6h = h6h ^ H6h; - h6l = h6l ^ H6l; - h7h = h7h ^ H7h; - h7l = h7l ^ H7l; - count = count - 1 | 0; - } - H0h = h0h; - H0l = h0l; - H1h = h1h; - H1l = h1l; - H2h = h2h; - H2l = h2l; - H3h = h3h; - H3l = h3l; - H4h = h4h; - H4l = h4l; - H5h = h5h; - H5l = h5l; - H6h = h6h; - H6l = h6l; - H7h = h7h; - H7l = h7l; - if (~output) _state_to_heap(output); - return 0; - } - return { - reset: reset, - init: init, - process: process, - finish: finish, - hmac_reset: hmac_reset, - hmac_init: hmac_init, - hmac_finish: hmac_finish, - pbkdf2_generate_block: pbkdf2_generate_block - }; - } - var _sha512_block_size = 128, _sha512_hash_size = 64; - function sha512_constructor(options) { - options = options || {}; - options.heapSize = options.heapSize || 4096; - if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096"); - this.heap = options.heap || new Uint8Array(options.heapSize); - this.asm = options.asm || sha512_asm(global, null, this.heap.buffer); - this.BLOCK_SIZE = _sha512_block_size; - this.HASH_SIZE = _sha512_hash_size; - this.reset(); - } - function sha512_reset() { - this.result = null; - this.pos = 0; - this.len = 0; - this.asm.reset(); - return this; - } - function sha512_process(data) { - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - var dpos = 0, dlen = 0, clen = 0; - if (is_buffer(data) || is_bytes(data)) { - dpos = data.byteOffset || 0; - dlen = data.byteLength; - } else if (is_string(data)) { - dlen = data.length; - } else { - throw new TypeError("data isn't of expected type"); - } - while (dlen > 0) { - clen = this.heap.byteLength - this.pos - this.len; - clen = clen < dlen ? clen : dlen; - if (is_buffer(data) || is_bytes(data)) { - this.heap.set(new Uint8Array(data.buffer || data, dpos, clen), this.pos + this.len); - } else { - for (var i = 0; i < clen; i++) this.heap[this.pos + this.len + i] = data.charCodeAt(dpos + i); - } - this.len += clen; - dpos += clen; - dlen -= clen; - clen = this.asm.process(this.pos, this.len); - if (clen < this.len) { - this.pos += clen; - this.len -= clen; - } else { - this.pos = 0; - this.len = 0; - } - } - return this; - } - function sha512_finish() { - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - this.asm.finish(this.pos, this.len, 0); - this.result = new Uint8Array(_sha512_hash_size); - this.result.set(this.heap.subarray(0, _sha512_hash_size)); - this.pos = 0; - this.len = 0; - return this; - } - sha512_constructor.BLOCK_SIZE = _sha512_block_size; - sha512_constructor.HASH_SIZE = _sha512_hash_size; - var sha512_prototype = sha512_constructor.prototype; - sha512_prototype.reset = sha512_reset; - sha512_prototype.process = sha512_process; - sha512_prototype.finish = sha512_finish; - function hmac_constructor(options) { - options = options || {}; - if (!options.hash) throw new SyntaxError("option 'hash' is required"); - if (!options.hash.HASH_SIZE) throw new SyntaxError("option 'hash' supplied doesn't seem to be a valid hash function"); - this.hash = options.hash; - this.BLOCK_SIZE = this.hash.BLOCK_SIZE; - this.HMAC_SIZE = this.hash.HASH_SIZE; - this.key = null; - this.verify = null; - this.result = null; - if (options.password !== undefined || options.verify !== undefined) this.reset(options); - return this; - } - function hmac_sha256_constructor(options) { - options = options || {}; - if (!(options.hash instanceof sha256_constructor)) options.hash = new sha256_constructor(options); - hmac_constructor.call(this, options); - return this; - } - function hmac_sha512_constructor(options) { - options = options || {}; - if (!(options.hash instanceof sha512_constructor)) options.hash = new sha512_constructor(options); - hmac_constructor.call(this, options); - return this; - } - function _hmac_key(hash, password) { - var key; - if (is_buffer(password) || is_bytes(password)) { - key = new Uint8Array(hash.BLOCK_SIZE); - if (password.byteLength > hash.BLOCK_SIZE) { - key.set(new Uint8Array(hash.reset().process(password).finish().result)); - } else if (is_buffer(password)) { - key.set(new Uint8Array(password)); - } else { - key.set(password); - } - } else if (is_string(password)) { - key = new Uint8Array(hash.BLOCK_SIZE); - if (password.length > hash.BLOCK_SIZE) { - key.set(new Uint8Array(hash.reset().process(password).finish().result)); - } else { - for (var i = 0; i < password.length; ++i) key[i] = password.charCodeAt(i); - } - } else { - throw new TypeError("password isn't of expected type"); - } - return key; - } - function _hmac_init_verify(verify) { - if (is_buffer(verify) || is_bytes(verify)) { - verify = new Uint8Array(verify); - } else if (is_string(verify)) { - verify = string_to_bytes(verify); - } else { - throw new TypeError("verify tag isn't of expected type"); - } - if (verify.length !== this.HMAC_SIZE) throw new IllegalArgumentError("illegal verification tag size"); - this.verify = verify; - } - function hmac_reset(options) { - options = options || {}; - var password = options.password; - if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance"); - this.result = null; - this.hash.reset(); - if (password || is_string(password)) this.key = _hmac_key(this.hash, password); - var ipad = new Uint8Array(this.key); - for (var i = 0; i < ipad.length; ++i) ipad[i] ^= 54; - this.hash.process(ipad); - var verify = options.verify; - if (verify !== undefined) { - _hmac_init_verify.call(this, verify); - } else { - this.verify = null; - } - return this; - } - function hmac_sha256_reset(options) { - options = options || {}; - var password = options.password; - if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance"); - this.result = null; - this.hash.reset(); - if (password || is_string(password)) { - this.key = _hmac_key(this.hash, password); - this.hash.reset().asm.hmac_init(this.key[0] << 24 | this.key[1] << 16 | this.key[2] << 8 | this.key[3], this.key[4] << 24 | this.key[5] << 16 | this.key[6] << 8 | this.key[7], this.key[8] << 24 | this.key[9] << 16 | this.key[10] << 8 | this.key[11], this.key[12] << 24 | this.key[13] << 16 | this.key[14] << 8 | this.key[15], this.key[16] << 24 | this.key[17] << 16 | this.key[18] << 8 | this.key[19], this.key[20] << 24 | this.key[21] << 16 | this.key[22] << 8 | this.key[23], this.key[24] << 24 | this.key[25] << 16 | this.key[26] << 8 | this.key[27], this.key[28] << 24 | this.key[29] << 16 | this.key[30] << 8 | this.key[31], this.key[32] << 24 | this.key[33] << 16 | this.key[34] << 8 | this.key[35], this.key[36] << 24 | this.key[37] << 16 | this.key[38] << 8 | this.key[39], this.key[40] << 24 | this.key[41] << 16 | this.key[42] << 8 | this.key[43], this.key[44] << 24 | this.key[45] << 16 | this.key[46] << 8 | this.key[47], this.key[48] << 24 | this.key[49] << 16 | this.key[50] << 8 | this.key[51], this.key[52] << 24 | this.key[53] << 16 | this.key[54] << 8 | this.key[55], this.key[56] << 24 | this.key[57] << 16 | this.key[58] << 8 | this.key[59], this.key[60] << 24 | this.key[61] << 16 | this.key[62] << 8 | this.key[63]); - } else { - this.hash.asm.hmac_reset(); - } - var verify = options.verify; - if (verify !== undefined) { - _hmac_init_verify.call(this, verify); - } else { - this.verify = null; - } - return this; - } - function hmac_sha512_reset(options) { - options = options || {}; - var password = options.password; - if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance"); - this.result = null; - this.hash.reset(); - if (password || is_string(password)) { - this.key = _hmac_key(this.hash, password); - this.hash.reset().asm.hmac_init(this.key[0] << 24 | this.key[1] << 16 | this.key[2] << 8 | this.key[3], this.key[4] << 24 | this.key[5] << 16 | this.key[6] << 8 | this.key[7], this.key[8] << 24 | this.key[9] << 16 | this.key[10] << 8 | this.key[11], this.key[12] << 24 | this.key[13] << 16 | this.key[14] << 8 | this.key[15], this.key[16] << 24 | this.key[17] << 16 | this.key[18] << 8 | this.key[19], this.key[20] << 24 | this.key[21] << 16 | this.key[22] << 8 | this.key[23], this.key[24] << 24 | this.key[25] << 16 | this.key[26] << 8 | this.key[27], this.key[28] << 24 | this.key[29] << 16 | this.key[30] << 8 | this.key[31], this.key[32] << 24 | this.key[33] << 16 | this.key[34] << 8 | this.key[35], this.key[36] << 24 | this.key[37] << 16 | this.key[38] << 8 | this.key[39], this.key[40] << 24 | this.key[41] << 16 | this.key[42] << 8 | this.key[43], this.key[44] << 24 | this.key[45] << 16 | this.key[46] << 8 | this.key[47], this.key[48] << 24 | this.key[49] << 16 | this.key[50] << 8 | this.key[51], this.key[52] << 24 | this.key[53] << 16 | this.key[54] << 8 | this.key[55], this.key[56] << 24 | this.key[57] << 16 | this.key[58] << 8 | this.key[59], this.key[60] << 24 | this.key[61] << 16 | this.key[62] << 8 | this.key[63], this.key[64] << 24 | this.key[65] << 16 | this.key[66] << 8 | this.key[67], this.key[68] << 24 | this.key[69] << 16 | this.key[70] << 8 | this.key[71], this.key[72] << 24 | this.key[73] << 16 | this.key[74] << 8 | this.key[75], this.key[76] << 24 | this.key[77] << 16 | this.key[78] << 8 | this.key[79], this.key[80] << 24 | this.key[81] << 16 | this.key[82] << 8 | this.key[83], this.key[84] << 24 | this.key[85] << 16 | this.key[86] << 8 | this.key[87], this.key[88] << 24 | this.key[89] << 16 | this.key[90] << 8 | this.key[91], this.key[92] << 24 | this.key[93] << 16 | this.key[94] << 8 | this.key[95], this.key[96] << 24 | this.key[97] << 16 | this.key[98] << 8 | this.key[99], this.key[100] << 24 | this.key[101] << 16 | this.key[102] << 8 | this.key[103], this.key[104] << 24 | this.key[105] << 16 | this.key[106] << 8 | this.key[107], this.key[108] << 24 | this.key[109] << 16 | this.key[110] << 8 | this.key[111], this.key[112] << 24 | this.key[113] << 16 | this.key[114] << 8 | this.key[115], this.key[116] << 24 | this.key[117] << 16 | this.key[118] << 8 | this.key[119], this.key[120] << 24 | this.key[121] << 16 | this.key[122] << 8 | this.key[123], this.key[124] << 24 | this.key[125] << 16 | this.key[126] << 8 | this.key[127]); - } else { - this.hash.asm.hmac_reset(); - } - var verify = options.verify; - if (verify !== undefined) { - _hmac_init_verify.call(this, verify); - } else { - this.verify = null; - } - return this; - } - function hmac_process(data) { - if (this.key === null) throw new IllegalStateError("no key is associated with the instance"); - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - this.hash.process(data); - return this; - } - function hmac_finish() { - if (this.key === null) throw new IllegalStateError("no key is associated with the instance"); - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - var inner_result = this.hash.finish().result; - var opad = new Uint8Array(this.key); - for (var i = 0; i < opad.length; ++i) opad[i] ^= 92; - var verify = this.verify; - var result = this.hash.reset().process(opad).process(inner_result).finish().result; - if (verify) { - if (verify.length === result.length) { - var diff = 0; - for (var i = 0; i < verify.length; i++) { - diff |= verify[i] ^ result[i]; - } - this.result = !diff; - } else { - this.result = false; - } - } else { - this.result = result; - } - return this; - } - function hmac_sha256_finish() { - if (this.key === null) throw new IllegalStateError("no key is associated with the instance"); - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - var hash = this.hash, asm = this.hash.asm, heap = this.hash.heap; - asm.hmac_finish(hash.pos, hash.len, 0); - var verify = this.verify; - var result = new Uint8Array(_sha256_hash_size); - result.set(heap.subarray(0, _sha256_hash_size)); - if (verify) { - if (verify.length === result.length) { - var diff = 0; - for (var i = 0; i < verify.length; i++) { - diff |= verify[i] ^ result[i]; - } - this.result = !diff; - } else { - this.result = false; - } - } else { - this.result = result; - } - return this; - } - function hmac_sha512_finish() { - if (this.key === null) throw new IllegalStateError("no key is associated with the instance"); - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - var hash = this.hash, asm = this.hash.asm, heap = this.hash.heap; - asm.hmac_finish(hash.pos, hash.len, 0); - var verify = this.verify; - var result = new Uint8Array(_sha512_hash_size); - result.set(heap.subarray(0, _sha512_hash_size)); - if (verify) { - if (verify.length === result.length) { - var diff = 0; - for (var i = 0; i < verify.length; i++) { - diff |= verify[i] ^ result[i]; - } - this.result = !diff; - } else { - this.result = false; - } - } else { - this.result = result; - } - return this; - } - var hmac_prototype = hmac_constructor.prototype; - hmac_prototype.reset = hmac_reset; - hmac_prototype.process = hmac_process; - hmac_prototype.finish = hmac_finish; - hmac_sha256_constructor.BLOCK_SIZE = sha256_constructor.BLOCK_SIZE; - hmac_sha256_constructor.HMAC_SIZE = sha256_constructor.HASH_SIZE; - var hmac_sha256_prototype = hmac_sha256_constructor.prototype; - hmac_sha256_prototype.reset = hmac_sha256_reset; - hmac_sha256_prototype.process = hmac_process; - hmac_sha256_prototype.finish = hmac_sha256_finish; - hmac_sha512_constructor.BLOCK_SIZE = sha512_constructor.BLOCK_SIZE; - hmac_sha512_constructor.HMAC_SIZE = sha512_constructor.HASH_SIZE; - var hmac_sha512_prototype = hmac_sha512_constructor.prototype; - hmac_sha512_prototype.reset = hmac_sha512_reset; - hmac_sha512_prototype.process = hmac_process; - hmac_sha512_prototype.finish = hmac_sha512_finish; - function pbkdf2_constructor(options) { - options = options || {}; - if (!options.hmac) throw new SyntaxError("option 'hmac' is required"); - if (!options.hmac.HMAC_SIZE) throw new SyntaxError("option 'hmac' supplied doesn't seem to be a valid HMAC function"); - this.hmac = options.hmac; - this.count = options.count || 4096; - this.length = options.length || this.hmac.HMAC_SIZE; - this.result = null; - var password = options.password; - if (password || is_string(password)) this.reset(options); - return this; - } - function pbkdf2_hmac_sha256_constructor(options) { - options = options || {}; - if (!(options.hmac instanceof hmac_sha256_constructor)) options.hmac = new hmac_sha256_constructor(options); - pbkdf2_constructor.call(this, options); - return this; - } - function pbkdf2_hmac_sha512_constructor(options) { - options = options || {}; - if (!(options.hmac instanceof hmac_sha512_constructor)) options.hmac = new hmac_sha512_constructor(options); - pbkdf2_constructor.call(this, options); - return this; - } - function pbkdf2_reset(options) { - this.result = null; - this.hmac.reset(options); - return this; - } - function pbkdf2_generate(salt, count, length) { - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value"); - count = count || this.count; - length = length || this.length; - this.result = new Uint8Array(length); - var blocks = Math.ceil(length / this.hmac.HMAC_SIZE); - for (var i = 1; i <= blocks; ++i) { - var j = (i - 1) * this.hmac.HMAC_SIZE; - var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE; - var tmp = new Uint8Array(this.hmac.reset().process(salt).process(new Uint8Array([ i >>> 24 & 255, i >>> 16 & 255, i >>> 8 & 255, i & 255 ])).finish().result); - this.result.set(tmp.subarray(0, l), j); - for (var k = 1; k < count; ++k) { - tmp = new Uint8Array(this.hmac.reset().process(tmp).finish().result); - for (var r = 0; r < l; ++r) this.result[j + r] ^= tmp[r]; - } - } - return this; - } - function pbkdf2_hmac_sha256_generate(salt, count, length) { - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value"); - count = count || this.count; - length = length || this.length; - this.result = new Uint8Array(length); - var blocks = Math.ceil(length / this.hmac.HMAC_SIZE); - for (var i = 1; i <= blocks; ++i) { - var j = (i - 1) * this.hmac.HMAC_SIZE; - var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE; - this.hmac.reset().process(salt); - this.hmac.hash.asm.pbkdf2_generate_block(this.hmac.hash.pos, this.hmac.hash.len, i, count, 0); - this.result.set(this.hmac.hash.heap.subarray(0, l), j); - } - return this; - } - function pbkdf2_hmac_sha512_generate(salt, count, length) { - if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data"); - if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value"); - count = count || this.count; - length = length || this.length; - this.result = new Uint8Array(length); - var blocks = Math.ceil(length / this.hmac.HMAC_SIZE); - for (var i = 1; i <= blocks; ++i) { - var j = (i - 1) * this.hmac.HMAC_SIZE; - var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE; - this.hmac.reset().process(salt); - this.hmac.hash.asm.pbkdf2_generate_block(this.hmac.hash.pos, this.hmac.hash.len, i, count, 0); - this.result.set(this.hmac.hash.heap.subarray(0, l), j); - } - return this; - } - var pbkdf2_prototype = pbkdf2_constructor.prototype; - pbkdf2_prototype.reset = pbkdf2_reset; - pbkdf2_prototype.generate = pbkdf2_generate; - var pbkdf2_hmac_sha256_prototype = pbkdf2_hmac_sha256_constructor.prototype; - pbkdf2_hmac_sha256_prototype.reset = pbkdf2_reset; - pbkdf2_hmac_sha256_prototype.generate = pbkdf2_hmac_sha256_generate; - var pbkdf2_hmac_sha512_prototype = pbkdf2_hmac_sha512_constructor.prototype; - pbkdf2_hmac_sha512_prototype.reset = pbkdf2_reset; - pbkdf2_hmac_sha512_prototype.generate = pbkdf2_hmac_sha512_generate; - global.IllegalStateError = IllegalStateError; - global.IllegalArgumentError = IllegalArgumentError; - global.SecurityError = SecurityError; - exports.string_to_bytes = string_to_bytes; - exports.hex_to_bytes = hex_to_bytes; - exports.base64_to_bytes = base64_to_bytes; - exports.bytes_to_string = bytes_to_string; - exports.bytes_to_hex = bytes_to_hex; - exports.bytes_to_base64 = bytes_to_base64; - var SHA256_instance = new sha256_constructor({ - heapSize: 1048576 - }); - function sha256_bytes(data) { - if (data === undefined) throw new SyntaxError("data required"); - return SHA256_instance.reset().process(data).finish().result; - } - function sha256_hex(data) { - var result = sha256_bytes(data.toUTF8Array()); - return bytes_to_hex(result); - } - function sha256_base64(data) { - var result = sha256_bytes(data); - return bytes_to_base64(result); - } - exports.SHA256 = { - bytes: sha256_bytes, - hex: sha256_hex, - base64: sha256_base64 - }; - var SHA512_instance = new sha512_constructor({ - heapSize: 1048576 - }); - function sha512_bytes(data) { - if (data === undefined) throw new SyntaxError("data required"); - return SHA512_instance.reset().process(data).finish().result; - } - function sha512_hex(data) { - var result = sha512_bytes(data); - return bytes_to_hex(result); - } - function sha512_base64(data) { - var result = sha512_bytes(data); - return bytes_to_base64(result); - } - exports.SHA512 = { - bytes: sha512_bytes, - hex: sha512_hex, - base64: sha512_base64 - }; - var hmac_sha256_instance = new hmac_sha256_constructor({ - hash: SHA256_instance - }); - function hmac_sha256_bytes(data, password) { - if (data === undefined) throw new SyntaxError("data required"); - if (password === undefined) throw new SyntaxError("password required"); - return hmac_sha256_instance.reset({ - password: password - }).process(data).finish().result; - } - function hmac_sha256_hex(data, password) { - var result = hmac_sha256_bytes(data, password); - return bytes_to_hex(result); - } - function hmac_sha256_base64(data, password) { - var result = hmac_sha256_bytes(data, password); - return bytes_to_base64(result); - } - exports.HMAC = exports.HMAC_SHA256 = { - bytes: hmac_sha256_bytes, - hex: hmac_sha256_hex, - base64: hmac_sha256_base64 - }; - var hmac_sha512_instance = new hmac_sha512_constructor({ - hash: SHA512_instance - }); - function hmac_sha512_bytes(data, password) { - if (data === undefined) throw new SyntaxError("data required"); - if (password === undefined) throw new SyntaxError("password required"); - return hmac_sha512_instance.reset({ - password: password - }).process(data).finish().result; - } - function hmac_sha512_hex(data, password) { - var result = hmac_sha512_bytes(data, password); - return bytes_to_hex(result); - } - function hmac_sha512_base64(data, password) { - var result = hmac_sha512_bytes(data, password); - return bytes_to_base64(result); - } - exports.HMAC_SHA512 = { - bytes: hmac_sha512_bytes, - hex: hmac_sha512_hex, - base64: hmac_sha512_base64 - }; - var pbkdf2_hmac_sha256_instance = new pbkdf2_hmac_sha256_constructor({ - hmac: hmac_sha256_instance - }); - function pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen) { - if (password === undefined) throw new SyntaxError("password required"); - if (salt === undefined) throw new SyntaxError("salt required"); - return pbkdf2_hmac_sha256_instance.reset({ - password: password.toUTF8Array() - }).generate(salt.toUTF8Array(), iterations, dklen).result; - } - function pbkdf2_hmac_sha256_hex(password, salt, iterations, dklen) { - var result = pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen); - return bytes_to_hex(result); - } - function pbkdf2_hmac_sha256_base64(password, salt, iterations, dklen) { - var result = pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen); - return bytes_to_base64(result); - } - exports.PBKDF2 = exports.PBKDF2_HMAC_SHA256 = { - bytes: pbkdf2_hmac_sha256_bytes, - hex: pbkdf2_hmac_sha256_hex, - base64: pbkdf2_hmac_sha256_base64 - }; - var pbkdf2_hmac_sha512_instance = new pbkdf2_hmac_sha512_constructor({ - hmac: hmac_sha512_instance - }); - function pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen) { - if (password === undefined) throw new SyntaxError("password required"); - if (salt === undefined) throw new SyntaxError("salt required"); - return pbkdf2_hmac_sha512_instance.reset({ - password: password.toUTF8Array() - }).generate(salt.toUTF8Array(), iterations, dklen).result; - } - function pbkdf2_hmac_sha512_hex(password, salt, iterations, dklen) { - var result = pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen); - return bytes_to_hex(result); - } - function pbkdf2_hmac_sha512_base64(password, salt, iterations, dklen) { - var result = pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen); - return bytes_to_base64(result); - } - exports.PBKDF2_HMAC_SHA512 = { - bytes: pbkdf2_hmac_sha512_bytes, - hex: pbkdf2_hmac_sha512_hex, - base64: pbkdf2_hmac_sha512_base64 - }; - var cbc_aes_instance = new cbc_aes_constructor({ - heapSize: 1048576 - }); - function cbc_aes_encrypt_bytes(data, key, padding, iv) { - if (data === undefined) throw new SyntaxError("data required"); - if (key === undefined) throw new SyntaxError("key required"); - return cbc_aes_instance.reset({ - key: key, - padding: padding, - iv: iv - }).encrypt(data).result; - } - function cbc_aes_decrypt_bytes(data, key, padding, iv) { - if (data === undefined) throw new SyntaxError("data required"); - if (key === undefined) throw new SyntaxError("key required"); - return cbc_aes_instance.reset({ - key: key, - padding: padding, - iv: iv - }).decrypt(data).result; - } - exports.AES = exports.AES_CBC = { - encrypt: cbc_aes_encrypt_bytes, - decrypt: cbc_aes_decrypt_bytes - }; - var ccm_aes_instance = new ccm_aes_constructor({ - heap: cbc_aes_instance.heap, - asm: cbc_aes_instance.asm - }); - function ccm_aes_encrypt_bytes(data, key, nonce, adata, tagSize) { - if (data === undefined) throw new SyntaxError("data required"); - if (key === undefined) throw new SyntaxError("key required"); - if (nonce === undefined) throw new SyntaxError("nonce required"); - var dataLength = data.byteLength || data.length || 0; - return ccm_aes_instance.reset({ - key: key, - nonce: nonce, - adata: adata, - tagSize: tagSize, - dataLength: dataLength - }).encrypt(data).result; - } - function ccm_aes_decrypt_bytes(data, key, nonce, adata, tagSize) { - if (data === undefined) throw new SyntaxError("data required"); - if (key === undefined) throw new SyntaxError("key required"); - if (nonce === undefined) throw new SyntaxError("nonce required"); - var dataLength = data.byteLength || data.length || 0; - tagSize = tagSize || _aes_block_size; - return ccm_aes_instance.reset({ - key: key, - nonce: nonce, - adata: adata, - tagSize: tagSize, - dataLength: dataLength - tagSize - }).decrypt(data).result; - } - exports.AES_CCM = { - encrypt: ccm_aes_encrypt_bytes, - decrypt: ccm_aes_decrypt_bytes - }; - var cfb_aes_instance = new cfb_aes_constructor({ - heap: cbc_aes_instance.heap, - asm: cbc_aes_instance.asm - }); - function cfb_aes_encrypt_bytes(data, key, padding, iv) { - if (data === undefined) throw new SyntaxError("data required"); - if (key === undefined) throw new SyntaxError("key required"); - return cfb_aes_instance.reset({ - key: key, - padding: padding, - iv: iv - }).encrypt(data).result; - } - function cfb_aes_decrypt_bytes(data, key, padding, iv) { - if (data === undefined) throw new SyntaxError("data required"); - if (key === undefined) throw new SyntaxError("key required"); - return cfb_aes_instance.reset({ - key: key, - padding: padding, - iv: iv - }).decrypt(data).result; - } - exports.AES_CFB = { - encrypt: cfb_aes_encrypt_bytes, - decrypt: cfb_aes_decrypt_bytes - }; - var cfb_aes_decrypt_instance = new cfb_aes_decrypt_constructor({ - heap: cbc_aes_instance.heap, - asm: cbc_aes_instance.asm - }); - function cfb_aes_decrypt_init(key, padding, iv) { - if (key === undefined) throw new SyntaxError("key required"); - return cfb_aes_decrypt_instance.reset({ - key: key, - padding: padding, - iv: iv - }); - } - exports.AES_CFB = exports.AES_CFB || {}; - exports.AES_CFB.decryptor = { - init: cfb_aes_decrypt_init - }; -})({}, function() { - return this; -}()); - -String.prototype.toUTF8Array = function() { - var str = this; - var utf8 = []; - for (var i=0; i < str.length; i++) { - var charcode = str.charCodeAt(i); - if (charcode < 0x80) utf8.push(charcode); - else if (charcode < 0x800) { - utf8.push(0xc0 | (charcode >> 6), - 0x80 | (charcode & 0x3f)); - } - else if (charcode < 0xd800 || charcode >= 0xe000) { - utf8.push(0xe0 | (charcode >> 12), - 0x80 | ((charcode>>6) & 0x3f), - 0x80 | (charcode & 0x3f)); - } - // surrogate pair - else { - i++; - // UTF-16 encodes 0x10000-0x10FFFF by - // subtracting 0x10000 and splitting the - // 20 bits of 0x0-0xFFFFF into two halves - charcode = 0x10000 + (((charcode & 0x3ff)<<10) - | (str.charCodeAt(i) & 0x3ff)) - utf8.push(0xf0 | (charcode >>18), - 0x80 | ((charcode>>12) & 0x3f), - 0x80 | ((charcode>>6) & 0x3f), - 0x80 | (charcode & 0x3f)); - } - } - return new Uint8Array(utf8); -} diff --git a/src/js/jsbip39.js b/src/js/jsbip39.js index 0b88fef..257d8d7 100644 --- a/src/js/jsbip39.js +++ b/src/js/jsbip39.js @@ -22,8 +22,8 @@ /* * Javascript port from python by Ian Coleman * - * Includes code from asmCrypto - * https://github.com/tresorit/asmcrypto.js + * Requires code from sjcl + * https://github.com/bitwiseshiftleft/sjcl */ var Mnemonic = function(language) { @@ -34,6 +34,13 @@ var Mnemonic = function(language) { var self = this; var wordlist = []; + var hmacSHA512 = function(key) { + var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512); + this.encrypt = function() { + return hasher.encrypt.apply(hasher, arguments); + }; + }; + function init() { wordlist = WORDLISTS[language]; if (wordlist.length != RADIX) { @@ -57,14 +64,15 @@ var Mnemonic = function(language) { return self.toMnemonic(data); } - self.toMnemonic = function(data) { - if (data.length % 4 > 0) { - throw 'Data length in bits should be divisible by 32, but it is not (' + data.length + ' bytes = ' + data.length*8 + ' bits).' + self.toMnemonic = function(byteArray) { + if (byteArray.length % 4 > 0) { + throw 'Data length in bits should be divisible by 32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*8 + ' bits).' } //h = hashlib.sha256(data).hexdigest() - var uintArray = new Uint8Array(data); - var h = asmCrypto.SHA256.bytes(uintArray); + var data = byteArrayToWordArray(byteArray); + var hash = sjcl.hash.sha256.hash(data); + var h = sjcl.codec.hex.fromBits(hash); // b is a binary string, eg '00111010101100...' //b = bin(int(binascii.hexlify(data), 16))[2:].zfill(len(data) * 8) + \ @@ -73,9 +81,9 @@ var Mnemonic = function(language) { // a = bin(int(binascii.hexlify(data), 16))[2:].zfill(len(data) * 8) // c = bin(int(h, 16))[2:].zfill(256) // d = c[:len(data) * 8 / 32] - var a = byteArrayToBinaryString(data); - var c = byteArrayToBinaryString(h); - var d = c.substring(0, data.length * 8 / 32); + var a = byteArrayToBinaryString(byteArray); + var c = zfill(hexStringToBinaryString(h), 256); + var d = c.substring(0, byteArray.length * 8 / 32); // b = line1 + line2 var b = a + d; @@ -111,10 +119,11 @@ var Mnemonic = function(language) { var d = b.substring(0, l / 33 * 32); var h = b.substring(l - l / 33, l); //nd = binascii.unhexlify(hex(int(d, 2))[2:].rstrip('L').zfill(l / 33 * 8)) + var nd = binaryStringToWordArray(d); //nh = bin(int(hashlib.sha256(nd).hexdigest(), 16))[2:].zfill(256)[:l / 33] - var nd = binaryStringToByteArray(d); - var ndHash = asmCrypto.SHA256.bytes(nd); - var ndBstr = zfill(byteArrayToBinaryString(ndHash), 256); + var ndHash = sjcl.hash.sha256.hash(nd); + var ndHex = sjcl.codec.hex.fromBits(ndHash); + var ndBstr = zfill(hexStringToBinaryString(ndHex), 256); var nh = ndBstr.substring(0,l/33); return h == nh; } @@ -124,8 +133,11 @@ var Mnemonic = function(language) { mnemonic = self.normalizeString(mnemonic) passphrase = self.normalizeString(passphrase) passphrase = "mnemonic" + passphrase; - //return PBKDF2(mnemonic, 'mnemonic' + passphrase, iterations=PBKDF2_ROUNDS, macmodule=hmac, digestmodule=hashlib.sha512).read(64) - return asmCrypto.PBKDF2_HMAC_SHA512.hex(mnemonic, passphrase, PBKDF2_ROUNDS, 512/8); + var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonic); + var passphraseBits = sjcl.codec.utf8String.toBits(passphrase); + var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS, 512, hmacSHA512); + var hashHex = sjcl.codec.hex.fromBits(result); + return hashHex; } self.normalizeString = function(str) { @@ -139,6 +151,19 @@ var Mnemonic = function(language) { } } + function byteArrayToWordArray(data) { + var a = []; + for (var i=0; i + * These objects are the currency accepted by SJCL's crypto functions. + *

+ * + *

+ * Most of our crypto primitives operate on arrays of 4-byte words internally, + * but many of them can take arguments that are not a multiple of 4 bytes. + * This library encodes arrays of bits (whose size need not be a multiple of 8 + * bits) as arrays of 32-bit words. The bits are packed, big-endian, into an + * array of words, 32 bits at a time. Since the words are double-precision + * floating point numbers, they fit some extra data. We use this (in a private, + * possibly-changing manner) to encode the number of bits actually present + * in the last word of the array. + *

+ * + *

+ * Because bitwise ops clear this out-of-band data, these arrays can be passed + * to ciphers like AES which want arrays of words. + *

+ */ +sjcl.bitArray = { + /** + * Array slices in units of bits. + * @param {bitArray} a The array to slice. + * @param {Number} bstart The offset to the start of the slice, in bits. + * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined, + * slice until the end of the array. + * @return {bitArray} The requested slice. + */ + bitSlice: function (a, bstart, bend) { + a = sjcl.bitArray._shiftRight(a.slice(bstart/32), 32 - (bstart & 31)).slice(1); + return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart); + }, + + /** + * Extract a number packed into a bit array. + * @param {bitArray} a The array to slice. + * @param {Number} bstart The offset to the start of the slice, in bits. + * @param {Number} length The length of the number to extract. + * @return {Number} The requested slice. + */ + extract: function(a, bstart, blength) { + // FIXME: this Math.floor is not necessary at all, but for some reason + // seems to suppress a bug in the Chromium JIT. + var x, sh = Math.floor((-bstart-blength) & 31); + if ((bstart + blength - 1 ^ bstart) & -32) { + // it crosses a boundary + x = (a[bstart/32|0] << (32 - sh)) ^ (a[bstart/32+1|0] >>> sh); + } else { + // within a single word + x = a[bstart/32|0] >>> sh; + } + return x & ((1< 0 && len) { + a[l-1] = sjcl.bitArray.partial(len, a[l-1] & 0x80000000 >> (len-1), 1); + } + return a; + }, + + /** + * Make a partial word for a bit array. + * @param {Number} len The number of bits in the word. + * @param {Number} x The bits. + * @param {Number} [0] _end Pass 1 if x has already been shifted to the high side. + * @return {Number} The partial word. + */ + partial: function (len, x, _end) { + if (len === 32) { return x; } + return (_end ? x|0 : x << (32-len)) + len * 0x10000000000; + }, + + /** + * Get the number of bits used by a partial word. + * @param {Number} x The partial word. + * @return {Number} The number of bits used by the partial word. + */ + getPartial: function (x) { + return Math.round(x/0x10000000000) || 32; + }, + + /** + * Compare two arrays for equality in a predictable amount of time. + * @param {bitArray} a The first array. + * @param {bitArray} b The second array. + * @return {boolean} true if a == b; false otherwise. + */ + equal: function (a, b) { + if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) { + return false; + } + var x = 0, i; + for (i=0; i= 32; shift -= 32) { + out.push(carry); + carry = 0; + } + if (shift === 0) { + return out.concat(a); + } + + for (i=0; i>>shift); + carry = a[i] << (32-shift); + } + last2 = a.length ? a[a.length-1] : 0; + shift2 = sjcl.bitArray.getPartial(last2); + out.push(sjcl.bitArray.partial(shift+shift2 & 31, (shift + shift2 > 32) ? carry : out.pop(),1)); + return out; + }, + + /** xor a block of 4 words together. + * @private + */ + _xor4: function(x,y) { + return [x[0]^y[0],x[1]^y[1],x[2]^y[2],x[3]^y[3]]; + }, + + /** byteswap a word array inplace. + * (does not handle partial words) + * @param {sjcl.bitArray} a word array + * @return {sjcl.bitArray} byteswapped array + */ + byteswapM: function(a) { + var i, v, m = 0xff00; + for (i = 0; i < a.length; ++i) { + v = a[i]; + a[i] = (v >>> 24) | ((v >>> 8) & m) | ((v & m) << 8) | (v << 24); + } + return a; + } +}; + + +//// codecString.js + +/** @fileOverview Bit array codec implementations. + * + * @author Emily Stark + * @author Mike Hamburg + * @author Dan Boneh + */ + +/** @namespace UTF-8 strings */ +sjcl.codec.utf8String = { + /** Convert from a bitArray to a UTF-8 string. */ + fromBits: function (arr) { + var out = "", bl = sjcl.bitArray.bitLength(arr), i, tmp; + for (i=0; i>> 24); + tmp <<= 8; + } + return decodeURIComponent(escape(out)); + }, + + /** Convert from a UTF-8 string to a bitArray. */ + toBits: function (str) { + str = unescape(encodeURIComponent(str)); + var out = [], i, tmp=0; + for (i=0; i>> 1)) ^ + ((gamma0xl << 24) | (gamma0xh >>> 8)) ^ + (gamma0xh >>> 7); + var gamma0l = + ((gamma0xh << 31) | (gamma0xl >>> 1)) ^ + ((gamma0xh << 24) | (gamma0xl >>> 8)) ^ + ((gamma0xh << 25) | (gamma0xl >>> 7)); + + // Gamma1 + var gamma1xh = w[(i-2) * 2]; + var gamma1xl = w[(i-2) * 2 + 1]; + var gamma1h = + ((gamma1xl << 13) | (gamma1xh >>> 19)) ^ + ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ + (gamma1xh >>> 6); + var gamma1l = + ((gamma1xh << 13) | (gamma1xl >>> 19)) ^ + ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ + ((gamma1xh << 26) | (gamma1xl >>> 6)); + + // Shortcuts + var wr7h = w[(i-7) * 2]; + var wr7l = w[(i-7) * 2 + 1]; + + var wr16h = w[(i-16) * 2]; + var wr16l = w[(i-16) * 2 + 1]; + + // W(round) = gamma0 + W(round - 7) + gamma1 + W(round - 16) + wrl = gamma0l + wr7l; + wrh = gamma0h + wr7h + ((wrl >>> 0) < (gamma0l >>> 0) ? 1 : 0); + wrl += gamma1l; + wrh += gamma1h + ((wrl >>> 0) < (gamma1l >>> 0) ? 1 : 0); + wrl += wr16l; + wrh += wr16h + ((wrl >>> 0) < (wr16l >>> 0) ? 1 : 0); + } + + w[i*2] = wrh |= 0; + w[i*2 + 1] = wrl |= 0; + + // Ch + var chh = (eh & fh) ^ (~eh & gh); + var chl = (el & fl) ^ (~el & gl); + + // Maj + var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); + var majl = (al & bl) ^ (al & cl) ^ (bl & cl); + + // Sigma0 + var sigma0h = ((al << 4) | (ah >>> 28)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); + var sigma0l = ((ah << 4) | (al >>> 28)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); + + // Sigma1 + var sigma1h = ((el << 18) | (eh >>> 14)) ^ ((el << 14) | (eh >>> 18)) ^ ((eh << 23) | (el >>> 9)); + var sigma1l = ((eh << 18) | (el >>> 14)) ^ ((eh << 14) | (el >>> 18)) ^ ((el << 23) | (eh >>> 9)); + + // K(round) + var krh = k[i*2]; + var krl = k[i*2+1]; + + // t1 = h + sigma1 + ch + K(round) + W(round) + var t1l = hl + sigma1l; + var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); + t1l += chl; + t1h += chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); + t1l += krl; + t1h += krh + ((t1l >>> 0) < (krl >>> 0) ? 1 : 0); + t1l = t1l + wrl|0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=1054972 + t1h += wrh + ((t1l >>> 0) < (wrl >>> 0) ? 1 : 0); + + // t2 = sigma0 + maj + var t2l = sigma0l + majl; + var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); + + // Update working variables + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = (dl + t1l) | 0; + eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = (t1l + t2l) | 0; + ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; + } + + // Intermediate hash + h0l = h[1] = (h0l + al) | 0; + h[0] = (h0h + ah + ((h0l >>> 0) < (al >>> 0) ? 1 : 0)) | 0; + h1l = h[3] = (h1l + bl) | 0; + h[2] = (h1h + bh + ((h1l >>> 0) < (bl >>> 0) ? 1 : 0)) | 0; + h2l = h[5] = (h2l + cl) | 0; + h[4] = (h2h + ch + ((h2l >>> 0) < (cl >>> 0) ? 1 : 0)) | 0; + h3l = h[7] = (h3l + dl) | 0; + h[6] = (h3h + dh + ((h3l >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + h4l = h[9] = (h4l + el) | 0; + h[8] = (h4h + eh + ((h4l >>> 0) < (el >>> 0) ? 1 : 0)) | 0; + h5l = h[11] = (h5l + fl) | 0; + h[10] = (h5h + fh + ((h5l >>> 0) < (fl >>> 0) ? 1 : 0)) | 0; + h6l = h[13] = (h6l + gl) | 0; + h[12] = (h6h + gh + ((h6l >>> 0) < (gl >>> 0) ? 1 : 0)) | 0; + h7l = h[15] = (h7l + hl) | 0; + h[14] = (h7h + hh + ((h7l >>> 0) < (hl >>> 0) ? 1 : 0)) | 0; + } +}; + + +//// hmac.js + +/** @fileOverview HMAC implementation. + * + * @author Emily Stark + * @author Mike Hamburg + * @author Dan Boneh + */ + +/** HMAC with the specified hash function. + * @constructor + * @param {bitArray} key the key for HMAC. + * @param {Object} [hash=sjcl.hash.sha256] The hash function to use. + */ +sjcl.misc.hmac = function (key, Hash) { + this._hash = Hash = Hash || sjcl.hash.sha256; + var exKey = [[],[]], i, + bs = Hash.prototype.blockSize / 32; + this._baseHash = [new Hash(), new Hash()]; + + if (key.length > bs) { + key = Hash.hash(key); + } + + for (i=0; i>>7 ^ a>>>18 ^ a>>>3 ^ a<<25 ^ a<<14) + + (b>>>17 ^ b>>>19 ^ b>>>10 ^ b<<15 ^ b<<13) + + w[i&15] + w[(i+9) & 15]) | 0; + } + + tmp = (tmp + h7 + (h4>>>6 ^ h4>>>11 ^ h4>>>25 ^ h4<<26 ^ h4<<21 ^ h4<<7) + (h6 ^ h4&(h5^h6)) + k[i]); // | 0; + + // shift register + h7 = h6; h6 = h5; h5 = h4; + h4 = h3 + tmp | 0; + h3 = h2; h2 = h1; h1 = h0; + + h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1>>>2 ^ h1>>>13 ^ h1>>>22 ^ h1<<30 ^ h1<<19 ^ h1<<10)) | 0; + } + + h[0] = h[0]+h0 | 0; + h[1] = h[1]+h1 | 0; + h[2] = h[2]+h2 | 0; + h[3] = h[3]+h3 | 0; + h[4] = h[4]+h4 | 0; + h[5] = h[5]+h5 | 0; + h[6] = h[6]+h6 | 0; + h[7] = h[7]+h7 | 0; + } +}; -- 2.41.0