mirror of
https://github.com/logos-messaging/lab.waku.org.git
synced 2026-01-06 15:53:12 +00:00
25 lines
86 KiB
JavaScript
25 lines
86 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
exports.id = "vendor-chunks/js-sha3";
|
|
exports.ids = ["vendor-chunks/js-sha3"];
|
|
exports.modules = {
|
|
|
|
/***/ "(ssr)/./node_modules/js-sha3/src/sha3.js":
|
|
/*!******************************************!*\
|
|
!*** ./node_modules/js-sha3/src/sha3.js ***!
|
|
\******************************************/
|
|
/***/ ((module, exports, __webpack_require__) => {
|
|
|
|
eval("var __WEBPACK_AMD_DEFINE_RESULT__;\n/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.9.2\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2023\n * @license MIT\n */ /*jslint bitwise: true */ (function() {\n \"use strict\";\n var INPUT_ERROR = \"input is invalid type\";\n var FINALIZE_ERROR = \"finalize already called\";\n var WINDOW = \"undefined\" === \"object\";\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === \"object\";\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === \"object\" && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && \"object\" === \"object\" && module.exports;\n var AMD = true && __webpack_require__.amdO;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== \"undefined\";\n var HEX_CHARS = \"0123456789abcdef\".split(\"\");\n var SHAKE_PADDING = [\n 31,\n 7936,\n 2031616,\n 520093696\n ];\n var CSHAKE_PADDING = [\n 4,\n 1024,\n 262144,\n 67108864\n ];\n var KECCAK_PADDING = [\n 1,\n 256,\n 65536,\n 16777216\n ];\n var PADDING = [\n 6,\n 1536,\n 393216,\n 100663296\n ];\n var SHIFT = [\n 0,\n 8,\n 16,\n 24\n ];\n var RC = [\n 1,\n 0,\n 32898,\n 0,\n 32906,\n 2147483648,\n 2147516416,\n 2147483648,\n 32907,\n 0,\n 2147483649,\n 0,\n 2147516545,\n 2147483648,\n 32777,\n 2147483648,\n 138,\n 0,\n 136,\n 0,\n 2147516425,\n 0,\n 2147483658,\n 0,\n 2147516555,\n 0,\n 139,\n 2147483648,\n 32905,\n 2147483648,\n 32771,\n 2147483648,\n 32770,\n 2147483648,\n 128,\n 2147483648,\n 32778,\n 0,\n 2147483658,\n 2147483648,\n 2147516545,\n 2147483648,\n 32896,\n 2147483648,\n 2147483649,\n 0,\n 2147516424,\n 2147483648\n ];\n var BITS = [\n 224,\n 256,\n 384,\n 512\n ];\n var SHAKE_BITS = [\n 128,\n 256\n ];\n var OUTPUT_TYPES = [\n \"hex\",\n \"buffer\",\n \"arrayBuffer\",\n \"array\",\n \"digest\"\n ];\n var CSHAKE_BYTEPAD = {\n \"128\": 168,\n \"256\": 136\n };\n var isArray = root.JS_SHA3_NO_NODE_JS || !Array.isArray ? function(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } : Array.isArray;\n var isView = ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView) ? function(obj) {\n return typeof obj === \"object\" && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n } : ArrayBuffer.isView;\n // [message: string, isString: bool]\n var formatMessage = function(message) {\n var type = typeof message;\n if (type === \"string\") {\n return [\n message,\n true\n ];\n }\n if (type !== \"object\" || message === null) {\n throw new Error(INPUT_ERROR);\n }\n if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n return [\n new Uint8Array(message),\n false\n ];\n }\n if (!isArray(message) && !isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n return [\n message,\n false\n ];\n };\n var empty = function(message) {\n return formatMessage(message)[0].length === 0;\n };\n var createOutputMethod = function(bits, padding, outputType) {\n return function(message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n var createShakeOutputMethod = function(bits, padding, outputType) {\n return function(message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n var createCshakeOutputMethod = function(bits, padding, outputType) {\n return function(message, outputBits, n, s) {\n return methods[\"cshake\" + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n var createKmacOutputMethod = function(bits, padding, outputType) {\n return function(key, message, outputBits, s) {\n return methods[\"kmac\" + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n var createOutputMethods = function(method, createMethod, bits, padding) {\n for(var i = 0; i < OUTPUT_TYPES.length; ++i){\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n var createMethod = function(bits, padding) {\n var method = createOutputMethod(bits, padding, \"hex\");\n method.create = function() {\n return new Keccak(bits, padding, bits);\n };\n method.update = function(message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n var createShakeMethod = function(bits, padding) {\n var method = createShakeOutputMethod(bits, padding, \"hex\");\n method.create = function(outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function(message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n var createCshakeMethod = function(bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, \"hex\");\n method.create = function(outputBits, n, s) {\n if (empty(n) && empty(s)) {\n return methods[\"shake\" + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([\n n,\n s\n ], w);\n }\n };\n method.update = function(message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n var createKmacMethod = function(bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, \"hex\");\n method.create = function(key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad([\n \"KMAC\",\n s\n ], w).bytepad([\n key\n ], w);\n };\n method.update = function(key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n var algorithms = [\n {\n name: \"keccak\",\n padding: KECCAK_PADDING,\n bits: BITS,\n createMethod: createMethod\n },\n {\n name: \"sha3\",\n padding: PADDING,\n bits: BITS,\n createMethod: createMethod\n },\n {\n name: \"shake\",\n padding: SHAKE_PADDING,\n bits: SHAKE_BITS,\n createMethod: createShakeMethod\n },\n {\n name: \"cshake\",\n padding: CSHAKE_PADDING,\n bits: SHAKE_BITS,\n createMethod: createCshakeMethod\n },\n {\n name: \"kmac\",\n padding: CSHAKE_PADDING,\n bits: SHAKE_BITS,\n createMethod: createKmacMethod\n }\n ];\n var methods = {}, methodNames = [];\n for(var i = 0; i < algorithms.length; ++i){\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for(var j = 0; j < bits.length; ++j){\n var methodName = algorithm.name + \"_\" + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== \"sha3\") {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = 1600 - (bits << 1) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n for(var i = 0; i < 50; ++i){\n this.s[i] = 0;\n }\n }\n Keccak.prototype.update = function(message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var result = formatMessage(message);\n message = result[0];\n var isString = result[1];\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length, blockCount = this.blockCount, index = 0, s = this.s, i, code;\n while(index < length){\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for(i = 1; i < blockCount + 1; ++i){\n blocks[i] = 0;\n }\n }\n if (isString) {\n for(i = this.start; index < length && i < byteCount; ++index){\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | code >> 6) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | code >> 12) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n blocks[i >> 2] |= (0xf0 | code >> 18) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 12 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n }\n }\n } else {\n for(i = this.start; index < length && i < byteCount; ++index){\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for(i = 0; i < blockCount; ++i){\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n Keccak.prototype.encode = function(x, right) {\n var o = x & 255, n = 1;\n var bytes = [\n o\n ];\n x = x >> 8;\n o = x & 255;\n while(o > 0){\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n Keccak.prototype.encodeString = function(str) {\n var result = formatMessage(str);\n str = result[0];\n var isString = result[1];\n var bytes = 0, length = str.length;\n if (isString) {\n for(var i = 0; i < str.length; ++i){\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | str.charCodeAt(++i) & 0x3ff);\n bytes += 4;\n }\n }\n } else {\n bytes = length;\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n Keccak.prototype.bytepad = function(strs, w) {\n var bytes = this.encode(w);\n for(var i = 0; i < strs.length; ++i){\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = (w - bytes % w) % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n Keccak.prototype.finalize = function() {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for(i = 1; i < blockCount + 1; ++i){\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for(i = 0; i < blockCount; ++i){\n s[i] ^= blocks[i];\n }\n f(s);\n };\n Keccak.prototype.toString = Keccak.prototype.hex = function() {\n this.finalize();\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = \"\", block;\n while(j < outputBlocks){\n for(i = 0; i < blockCount && j < outputBlocks; ++i, ++j){\n block = s[i];\n hex += HEX_CHARS[block >> 4 & 0x0F] + HEX_CHARS[block & 0x0F] + HEX_CHARS[block >> 12 & 0x0F] + HEX_CHARS[block >> 8 & 0x0F] + HEX_CHARS[block >> 20 & 0x0F] + HEX_CHARS[block >> 16 & 0x0F] + HEX_CHARS[block >> 28 & 0x0F] + HEX_CHARS[block >> 24 & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[block >> 4 & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[block >> 12 & 0x0F] + HEX_CHARS[block >> 8 & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[block >> 20 & 0x0F] + HEX_CHARS[block >> 16 & 0x0F];\n }\n }\n return hex;\n };\n Keccak.prototype.arrayBuffer = function() {\n this.finalize();\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer(outputBlocks + 1 << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while(j < outputBlocks){\n for(i = 0; i < blockCount && j < outputBlocks; ++i, ++j){\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n Keccak.prototype.digest = Keccak.prototype.array = function() {\n this.finalize();\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while(j < outputBlocks){\n for(i = 0; i < blockCount && j < outputBlocks; ++i, ++j){\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = block >> 8 & 0xFF;\n array[offset + 2] = block >> 16 & 0xFF;\n array[offset + 3] = block >> 24 & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = block >> 8 & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = block >> 16 & 0xFF;\n }\n }\n return array;\n };\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n Kmac.prototype = new Keccak();\n Kmac.prototype.finalize = function() {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n var f = function(s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for(n = 0; n < 48; n += 2){\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n h = c8 ^ (c2 << 1 | c3 >>> 31);\n l = c9 ^ (c3 << 1 | c2 >>> 31);\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ (c4 << 1 | c5 >>> 31);\n l = c1 ^ (c5 << 1 | c4 >>> 31);\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ (c6 << 1 | c7 >>> 31);\n l = c3 ^ (c7 << 1 | c6 >>> 31);\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ (c8 << 1 | c9 >>> 31);\n l = c5 ^ (c9 << 1 | c8 >>> 31);\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ (c0 << 1 | c1 >>> 31);\n l = c7 ^ (c1 << 1 | c0 >>> 31);\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n b0 = s[0];\n b1 = s[1];\n b32 = s[11] << 4 | s[10] >>> 28;\n b33 = s[10] << 4 | s[11] >>> 28;\n b14 = s[20] << 3 | s[21] >>> 29;\n b15 = s[21] << 3 | s[20] >>> 29;\n b46 = s[31] << 9 | s[30] >>> 23;\n b47 = s[30] << 9 | s[31] >>> 23;\n b28 = s[40] << 18 | s[41] >>> 14;\n b29 = s[41] << 18 | s[40] >>> 14;\n b20 = s[2] << 1 | s[3] >>> 31;\n b21 = s[3] << 1 | s[2] >>> 31;\n b2 = s[13] << 12 | s[12] >>> 20;\n b3 = s[12] << 12 | s[13] >>> 20;\n b34 = s[22] << 10 | s[23] >>> 22;\n b35 = s[23] << 10 | s[22] >>> 22;\n b16 = s[33] << 13 | s[32] >>> 19;\n b17 = s[32] << 13 | s[33] >>> 19;\n b48 = s[42] << 2 | s[43] >>> 30;\n b49 = s[43] << 2 | s[42] >>> 30;\n b40 = s[5] << 30 | s[4] >>> 2;\n b41 = s[4] << 30 | s[5] >>> 2;\n b22 = s[14] << 6 | s[15] >>> 26;\n b23 = s[15] << 6 | s[14] >>> 26;\n b4 = s[25] << 11 | s[24] >>> 21;\n b5 = s[24] << 11 | s[25] >>> 21;\n b36 = s[34] << 15 | s[35] >>> 17;\n b37 = s[35] << 15 | s[34] >>> 17;\n b18 = s[45] << 29 | s[44] >>> 3;\n b19 = s[44] << 29 | s[45] >>> 3;\n b10 = s[6] << 28 | s[7] >>> 4;\n b11 = s[7] << 28 | s[6] >>> 4;\n b42 = s[17] << 23 | s[16] >>> 9;\n b43 = s[16] << 23 | s[17] >>> 9;\n b24 = s[26] << 25 | s[27] >>> 7;\n b25 = s[27] << 25 | s[26] >>> 7;\n b6 = s[36] << 21 | s[37] >>> 11;\n b7 = s[37] << 21 | s[36] >>> 11;\n b38 = s[47] << 24 | s[46] >>> 8;\n b39 = s[46] << 24 | s[47] >>> 8;\n b30 = s[8] << 27 | s[9] >>> 5;\n b31 = s[9] << 27 | s[8] >>> 5;\n b12 = s[18] << 20 | s[19] >>> 12;\n b13 = s[19] << 20 | s[18] >>> 12;\n b44 = s[29] << 7 | s[28] >>> 25;\n b45 = s[28] << 7 | s[29] >>> 25;\n b26 = s[38] << 8 | s[39] >>> 24;\n b27 = s[39] << 8 | s[38] >>> 24;\n b8 = s[48] << 14 | s[49] >>> 18;\n b9 = s[49] << 14 | s[48] >>> 18;\n s[0] = b0 ^ ~b2 & b4;\n s[1] = b1 ^ ~b3 & b5;\n s[10] = b10 ^ ~b12 & b14;\n s[11] = b11 ^ ~b13 & b15;\n s[20] = b20 ^ ~b22 & b24;\n s[21] = b21 ^ ~b23 & b25;\n s[30] = b30 ^ ~b32 & b34;\n s[31] = b31 ^ ~b33 & b35;\n s[40] = b40 ^ ~b42 & b44;\n s[41] = b41 ^ ~b43 & b45;\n s[2] = b2 ^ ~b4 & b6;\n s[3] = b3 ^ ~b5 & b7;\n s[12] = b12 ^ ~b14 & b16;\n s[13] = b13 ^ ~b15 & b17;\n s[22] = b22 ^ ~b24 & b26;\n s[23] = b23 ^ ~b25 & b27;\n s[32] = b32 ^ ~b34 & b36;\n s[33] = b33 ^ ~b35 & b37;\n s[42] = b42 ^ ~b44 & b46;\n s[43] = b43 ^ ~b45 & b47;\n s[4] = b4 ^ ~b6 & b8;\n s[5] = b5 ^ ~b7 & b9;\n s[14] = b14 ^ ~b16 & b18;\n s[15] = b15 ^ ~b17 & b19;\n s[24] = b24 ^ ~b26 & b28;\n s[25] = b25 ^ ~b27 & b29;\n s[34] = b34 ^ ~b36 & b38;\n s[35] = b35 ^ ~b37 & b39;\n s[44] = b44 ^ ~b46 & b48;\n s[45] = b45 ^ ~b47 & b49;\n s[6] = b6 ^ ~b8 & b0;\n s[7] = b7 ^ ~b9 & b1;\n s[16] = b16 ^ ~b18 & b10;\n s[17] = b17 ^ ~b19 & b11;\n s[26] = b26 ^ ~b28 & b20;\n s[27] = b27 ^ ~b29 & b21;\n s[36] = b36 ^ ~b38 & b30;\n s[37] = b37 ^ ~b39 & b31;\n s[46] = b46 ^ ~b48 & b40;\n s[47] = b47 ^ ~b49 & b41;\n s[8] = b8 ^ ~b0 & b2;\n s[9] = b9 ^ ~b1 & b3;\n s[18] = b18 ^ ~b10 & b12;\n s[19] = b19 ^ ~b11 & b13;\n s[28] = b28 ^ ~b20 & b22;\n s[29] = b29 ^ ~b21 & b23;\n s[38] = b38 ^ ~b30 & b32;\n s[39] = b39 ^ ~b31 & b33;\n s[48] = b48 ^ ~b40 & b42;\n s[49] = b49 ^ ~b41 & b43;\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for(i = 0; i < methodNames.length; ++i){\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return methods;\n }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n }\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QyxJQUFJQyxJQUFJQyxJQUFJQyxJQUMvQ0MsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSUMsS0FBS0MsS0FBS0MsS0FBS0MsS0FBS0MsS0FBS0MsS0FBS0MsS0FBS0MsS0FDM0VDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQUtDLEtBQzNFQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQyxLQUFLQztRQUM3RSxJQUFLeEgsSUFBSSxHQUFHQSxJQUFJLElBQUlBLEtBQUssRUFBRztZQUMxQjZELEtBQUs1RCxDQUFDLENBQUMsRUFBRSxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRztZQUN6QzZELEtBQUs3RCxDQUFDLENBQUMsRUFBRSxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRztZQUN6QzhELEtBQUs5RCxDQUFDLENBQUMsRUFBRSxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRztZQUN6QytELEtBQUsvRCxDQUFDLENBQUMsRUFBRSxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRztZQUN6Q2dFLEtBQUtoRSxDQUFDLENBQUMsRUFBRSxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFHQSxDQUFDLENBQUMsR0FBRyxHQUFH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O1FBQ0o7SUFDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZmx1c2gtbm90ZXMvLi9ub2RlX21vZHVsZXMvanMtc2hhMy9zcmMvc2hhMy5qcz83ODFjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogW2pzLXNoYTNde0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9lbW4xNzgvanMtc2hhM31cbiAqXG4gKiBAdmVyc2lvbiAwLjkuMlxuICogQGF1dGhvciBDaGVuLCBZaS1DeXVhbiBbZW1uMTc4QGdtYWlsLmNvbV1cbiAqIEBjb3B5cmlnaHQgQ2hlbiwgWWktQ3l1YW4gMjAxNS0yMDIzXG4gKiBAbGljZW5zZSBNSVRcbiAqL1xuLypqc2xpbnQgYml0d2lzZTogdHJ1ZSAqL1xuKGZ1bmN0aW9uICgpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIHZhciBJTlBVVF9FUlJPUiA9ICdpbnB1dCBpcyBpbnZhbGlkIHR5cGUnO1xuICB2YXIgRklOQUxJWkVfRVJST1IgPSAnZmluYWxpemUgYWxyZWFkeSBjYWxsZWQnO1xuICB2YXIgV0lORE9XID0gdHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCc7XG4gIHZhciByb290ID0gV0lORE9XID8gd2luZG93IDoge307XG4gIGlmIChyb290LkpTX1NIQTNfTk9fV0lORE9XKSB7XG4gICAgV0lORE9XID0gZmFsc2U7XG4gIH1cbiAgdmFyIFdFQl9XT1JLRVIgPSAhV0lORE9XICYmIHR5cGVvZiBzZWxmID09PSAnb2JqZWN0JztcbiAgdmFyIE5PREVfSlMgPSAhcm9vdC5KU19TSEEzX05PX05PREVfSlMgJiYgdHlwZW9mIHByb2Nlc3MgPT09ICdvYmplY3QnICYmIHByb2Nlc3MudmVyc2lvbnMgJiYgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlO1xuICBpZiAoTk9ERV9KUykge1xuICAgIHJvb3QgPSBnbG9iYWw7XG4gIH0gZWxzZSBpZiAoV0VCX1dPUktFUikge1xuICAgIHJvb3QgPSBzZWxmO1xuICB9XG4gIHZhciBDT01NT05fSlMgPSAhcm9vdC5KU19TSEEzX05PX0NPTU1PTl9KUyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JyAmJiBtb2R1bGUuZXhwb3J0cztcbiAgdmFyIEFNRCA9IHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZDtcbiAgdmFyIEFSUkFZX0JVRkZFUiA9ICFyb290LkpTX1NIQTNfTk9fQVJSQVlfQlVGRkVSICYmIHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCc7XG4gIHZhciBIRVhfQ0hBUlMgPSAnMDEyMzQ1Njc4OWFiY2RlZicuc3BsaXQoJycpO1xuICB2YXIgU0hBS0VfUEFERElORyA9IFszMSwgNzkzNiwgMjAzMTYxNiwgNTIwMDkzNjk2XTtcbiAgdmFyIENTSEFLRV9QQURESU5HID0gWzQsIDEwMjQsIDI2MjE0NCwgNjcxMDg4NjRdO1xuICB2YXIgS0VDQ0FLX1BBRERJTkcgPSBbMSwgMjU2LCA2NTUzNiwgMTY3NzcyMTZdO1xuICB2YXIgUEFERElORyA9IFs2LCAxNTM2LCAzOTMyMTYsIDEwMDY2MzI5Nl07XG4gIHZhciBTSElGVCA9IFswLCA4LCAxNiwgMjRdO1xuICB2YXIgUkMgPSBbMSwgMCwgMzI4OTgsIDAsIDMyOTA2LCAyMTQ3NDgzNjQ4LCAyMTQ3NTE2NDE2LCAyMTQ3NDgzNjQ4LCAzMjkwNywgMCwgMjE0NzQ4MzY0OSxcbiAgICAwLCAyMTQ3NTE2NTQ1LCAyMTQ3NDgzNjQ4LCAzMjc3NywgMjE0NzQ4MzY0OCwgMTM4LCAwLCAxMzYsIDAsIDIxNDc1MTY0MjUsIDAsXG4gICAgMjE0NzQ4MzY1OCwgMCwgMjE0NzUxNjU1NSwgMCwgMTM5LCAyMTQ3NDgzNjQ4LCAzMjkwNSwgMjE0NzQ4MzY0OCwgMzI3NzEsXG4gICAgMjE0NzQ4MzY0OCwgMzI3NzAsIDIxNDc0ODM2NDgsIDEyOCwgMjE0NzQ4MzY0OCwgMzI3NzgsIDAsIDIxNDc0ODM2NTgsIDIxNDc0ODM2NDgsXG4gICAgMjE0NzUxNjU0NSwgMjE0NzQ4MzY0OCwgMzI4OTYsIDIxNDc0ODM2NDgsIDIxNDc0ODM2NDksIDAsIDIxNDc1MTY0MjQsIDIxNDc0ODM2NDhdO1xuICB2YXIgQklUUyA9IFsyMjQsIDI1NiwgMzg0LCA1MTJdO1xuICB2YXIgU0hBS0VfQklUUyA9IFsxMjgsIDI1Nl07XG4gIHZhciBPVVRQVVRfVFlQRVMgPSBbJ2hleCcsICdidWZmZXInLCAnYXJyYXlCdWZmZXInLCAnYXJyYXknLCAnZGlnZXN0J107XG4gIHZhciBDU0hBS0VfQllURVBBRCA9IHtcbiAgICAnMTI4JzogMTY4LFxuICAgICcyNTYnOiAxMzZcbiAgfTtcblxuXG4gIHZhciBpc0FycmF5ID0gcm9vdC5KU19TSEEzX05PX05PREVfSlMgfHwgIUFycmF5LmlzQXJyYXlcbiAgICA/IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBBcnJheV0nO1xuICAgICAgfVxuICAgIDogQXJyYXkuaXNBcnJheTtcblxuICB2YXIgaXNWaWV3ID0gKEFSUkFZX0JVRkZFUiAmJiAocm9vdC5KU19TSEEzX05PX0FSUkFZX0JVRkZFUl9JU19WSUVXIHx8ICFBcnJheUJ1ZmZlci5pc1ZpZXcpKVxuICAgID8gZnVuY3Rpb24gKG9iaikge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqLmJ1ZmZlciAmJiBvYmouYnVmZmVyLmNvbnN0cnVjdG9yID09PSBBcnJheUJ1ZmZlcjtcbiAgICAgIH1cbiAgICA6IEFycmF5QnVmZmVyLmlzVmlldztcblxuICAvLyBbbWVzc2FnZTogc3RyaW5nLCBpc1N0cmluZzogYm9vbF1cbiAgdmFyIGZvcm1hdE1lc3NhZ2UgPSBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgIHZhciB0eXBlID0gdHlwZW9mIG1lc3NhZ2U7XG4gICAgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gW21lc3NhZ2UsIHRydWVdO1xuICAgIH1cbiAgICBpZiAodHlwZSAhPT0gJ29iamVjdCcgfHwgbWVzc2FnZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKElOUFVUX0VSUk9SKTtcbiAgICB9XG4gICAgaWYgKEFSUkFZX0JVRkZFUiAmJiBtZXNzYWdlLmNvbnN0cnVjdG9yID09PSBBcnJheUJ1ZmZlcikge1xuICAgICAgcmV0dXJuIFtuZXcgVWludDhBcnJheShtZXNzYWdlKSwgZmFsc2VdO1xuICAgIH1cbiAgICBpZiAoIWlzQXJyYXkobWVzc2FnZSkgJiYgIWlzVmlldyhtZXNzYWdlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKElOUFVUX0VSUk9SKTtcbiAgICB9XG4gICAgcmV0dXJuIFttZXNzYWdlLCBmYWxzZV07XG4gIH1cblxuICB2YXIgZW1wdHkgPSBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UpWzBdLmxlbmd0aCA9PT0gMDtcbiAgfTtcblxuICB2YXIgY3JlYXRlT3V0cHV0TWV0aG9kID0gZnVuY3Rpb24gKGJpdHMsIHBhZGRpbmcsIG91dHB1dFR5cGUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiBuZXcgS2VjY2FrKGJpdHMsIHBhZGRpbmcsIGJpdHMpLnVwZGF0ZShtZXNzYWdlKVtvdXRwdXRUeXBlXSgpO1xuICAgIH07XG4gIH07XG5cbiAgdmFyIGNyZWF0ZVNoYWtlT3V0cHV0TWV0aG9kID0gZnVuY3Rpb24gKGJpdHMsIHBhZGRpbmcsIG91dHB1dFR5cGUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG1lc3NhZ2UsIG91dHB1dEJpdHMpIHtcbiAgICAgIHJldHVybiBuZXcgS2VjY2FrKGJpdHMsIHBhZGRpbmcsIG91dHB1dEJpdHMpLnVwZGF0ZShtZXNzYWdlKVtvdXRwdXRUeXBlXSgpO1xuICAgIH07XG4gIH07XG5cbiAgdmFyIGNyZWF0ZUNzaGFrZU91dHB1dE1ldGhvZCA9IGZ1bmN0aW9uIChiaXRzLCBwYWRkaW5nLCBvdXRwdXRUeXBlKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChtZXNzYWdlLCBvdXRwdXRCaXRzLCBuLCBzKSB7XG4gICAgICByZXR1cm4gbWV0aG9kc1snY3NoYWtlJyArIGJpdHNdLnVwZGF0ZShtZXNzYWdlLCBvdXRwdXRCaXRzLCBuLCBzKVtvdXRwdXRUeXBlXSgpO1xuICAgIH07XG4gIH07XG5cbiAgdmFyIGNyZWF0ZUttYWNPdXRwdXRNZXRob2QgPSBmdW5jdGlvbiAoYml0cywgcGFkZGluZywgb3V0cHV0VHlwZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoa2V5LCBtZXNzYWdlLCBvdXRwdXRCaXRzLCBzKSB7XG4gICAgICByZXR1cm4gbWV0aG9kc1sna21hYycgKyBiaXRzXS51cGRhdGUoa2V5LCBtZXNzYWdlLCBvdXRwdXRCaXRzLCBzKVtvdXRwdXRUeXBlXSgpO1xuICAgIH07XG4gIH07XG5cbiAgdmFyIGNyZWF0ZU91dHB1dE1ldGhvZHMgPSBmdW5jdGlvbiAobWV0aG9kLCBjcmVhdGVNZXRob2QsIGJpdHMsIHBhZGRpbmcpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE9VVFBVVF9UWVBFUy5sZW5ndGg7ICsraSkge1xuICAgICAgdmFyIHR5cGUgPSBPVVRQVVRfVFlQRVNbaV07XG4gICAgICBtZXRob2RbdHlwZV0gPSBjcmVhdGVNZXRob2QoYml0cywgcGFkZGluZywgdHlwZSk7XG4gICAgfVxuICAgIHJldHVybiBtZXRob2Q7XG4gIH07XG5cbiAgdmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChiaXRzLCBwYWRkaW5nKSB7XG4gICAgdmFyIG1ldGhvZCA9IGNyZWF0ZU91dHB1dE1ldGhvZChiaXRzLCBwYWRkaW5nLCAnaGV4Jyk7XG4gICAgbWV0aG9kLmNyZWF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBuZXcgS2VjY2FrKGJpdHMsIHBhZGRpbmcsIGJpdHMpO1xuICAgIH07XG4gICAgbWV0aG9kLnVwZGF0ZSA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gICAgICByZXR1cm4gbWV0aG9kLmNyZWF0ZSgpLnVwZGF0ZShtZXNzYWdlKTtcbiAgICB9O1xuICAgIHJldHVybiBjcmVhdGVPdXRwdXRNZXRob2RzKG1ldGhvZCwgY3JlYXRlT3V0cHV0TWV0aG9kLCBiaXRzLCBwYWRkaW5nKTtcbiAgfTtcblxuICB2YXIgY3JlYXRlU2hha2VNZXRob2QgPSBmdW5jdGlvbiAoYml0cywgcGFkZGluZykge1xuICAgIHZhciBtZXRob2QgPSBjcmVhdGVTaGFrZU91dHB1dE1ldGhvZChiaXRzLCBwYWRkaW5nLCAnaGV4Jyk7XG4gICAgbWV0aG9kLmNyZWF0ZSA9IGZ1bmN0aW9uIChvdXRwdXRCaXRzKSB7XG4gICAgICByZXR1cm4gbmV3IEtlY2NhayhiaXRzLCBwYWRkaW5nLCBvdXRwdXRCaXRzKTtcbiAgICB9O1xuICAgIG1ldGhvZC51cGRhdGUgPSBmdW5jdGlvbiAobWVzc2FnZSwgb3V0cHV0Qml0cykge1xuICAgICAgcmV0dXJuIG1ldGhvZC5jcmVhdGUob3V0cHV0Qml0cykudXBkYXRlKG1lc3NhZ2UpO1xuICAgIH07XG4gICAgcmV0dXJuIGNyZWF0ZU91dHB1dE1ldGhvZHMobWV0aG9kLCBjcmVhdGVTaGFrZU91dHB1dE1ldGhvZCwgYml0cywgcGFkZGluZyk7XG4gIH07XG5cbiAgdmFyIGNyZWF0ZUNzaGFrZU1ldGhvZCA9IGZ1bmN0aW9uIChiaXRzLCBwYWRkaW5nKSB7XG4gICAgdmFyIHcgPSBDU0hBS0VfQllURVBBRFtiaXRzXTtcbiAgICB2YXIgbWV0aG9kID0gY3JlYXRlQ3NoYWtlT3V0cHV0TWV0aG9kKGJpdHMsIHBhZGRpbmcsICdoZXgnKTtcbiAgICBtZXRob2QuY3JlYXRlID0gZnVuY3Rpb24gKG91dHB1dEJpdHMsIG4sIHMpIHtcbiAgICAgIGlmIChlbXB0eShuKSAmJiBlbXB0eShzKSkge1xuICAgICAgICByZXR1cm4gbWV0aG9kc1snc2hha2UnICsgYml0c10uY3JlYXRlKG91dHB1dEJpdHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBLZWNjYWsoYml0cywgcGFkZGluZywgb3V0cHV0Qml0cykuYnl0ZXBhZChbbiwgc10sIHcpO1xuICAgICAgfVxuICAgIH07XG4gICAgbWV0aG9kLnVwZGF0ZSA9IGZ1bmN0aW9uIChtZXNzYWdlLCBvdXRwdXRCaXRzLCBuLCBzKSB7XG4gICAgICByZXR1cm4gbWV0aG9kLmNyZWF0ZShvdXRwdXRCaXRzLCBuLCBzKS51cGRhdGUobWVzc2FnZSk7XG4gICAgfTtcbiAgICByZXR1cm4gY3JlYXRlT3V0cHV0TWV0aG9kcyhtZXRob2QsIGNyZWF0ZUNzaGFrZU91dHB1dE1ldGhvZCwgYml0cywgcGFkZGluZyk7XG4gIH07XG5cbiAgdmFyIGNyZWF0ZUttYWNNZXRob2QgPSBmdW5jdGlvbiAoYml0cywgcGFkZGluZykge1xuICAgIHZhciB3ID0gQ1NIQUtFX0JZVEVQQURbYml0c107XG4gICAgdmFyIG1ldGhvZCA9IGNyZWF0ZUttYWNPdXRwdXRNZXRob2QoYml0cywgcGFkZGluZywgJ2hleCcpO1xuICAgIG1ldGhvZC5jcmVhdGUgPSBmdW5jdGlvbiAoa2V5LCBvdXRwdXRCaXRzLCBzKSB7XG4gICAgICByZXR1cm4gbmV3IEttYWMoYml0cywgcGFkZGluZywgb3V0cHV0Qml0cykuYnl0ZXBhZChbJ0tNQUMnLCBzXSwgdykuYnl0ZXBhZChba2V5XSwgdyk7XG4gICAgfTtcbiAgICBtZXRob2QudXBkYXRlID0gZnVuY3Rpb24gKGtleSwgbWVzc2FnZSwgb3V0cHV0Qml0cywgcykge1xuICAgICAgcmV0dXJuIG1ldGhvZC5jcmVhdGUoa2V5LCBvdXRwdXRCaXRzLCBzKS51cGRhdGUobWVzc2FnZSk7XG4gICAgfTtcbiAgICByZXR1cm4gY3JlYXRlT3V0cHV0TWV0aG9kcyhtZXRob2QsIGNyZWF0ZUttYWNPdXRwdXRNZXRob2QsIGJpdHMsIHBhZGRpbmcpO1xuICB9O1xuXG4gIHZhciBhbGdvcml0aG1zID0gW1xuICAgIHsgbmFtZTogJ2tlY2NhaycsIHBhZGRpbmc6IEtFQ0NBS19QQURESU5HLCBiaXRzOiBCSVRTLCBjcmVhdGVNZXRob2Q6IGNyZWF0ZU1ldGhvZCB9LFxuICAgIHsgbmFtZTogJ3NoYTMnLCBwYWRkaW5nOiBQQURESU5HLCBiaXRzOiBCSVRTLCBjcmVhdGVNZXRob2Q6IGNyZWF0ZU1ldGhvZCB9LFxuICAgIHsgbmFtZTogJ3NoYWtlJywgcGFkZGluZzogU0hBS0VfUEFERElORywgYml0czogU0hBS0VfQklUUywgY3JlYXRlTWV0aG9kOiBjcmVhdGVTaGFrZU1ldGhvZCB9LFxuICAgIHsgbmFtZTogJ2NzaGFrZScsIHBhZGRpbmc6IENTSEFLRV9QQURESU5HLCBiaXRzOiBTSEFLRV9CSVRTLCBjcmVhdGVNZXRob2Q6IGNyZWF0ZUNzaGFrZU1ldGhvZCB9LFxuICAgIHsgbmFtZTogJ2ttYWMnLCBwYWRkaW5nOiBDU0hBS0VfUEFERElORywgYml0czogU0hBS0VfQklUUywgY3JlYXRlTWV0aG9kOiBjcmVhdGVLbWFjTWV0aG9kIH1cbiAgXTtcblxuICB2YXIgbWV0aG9kcyA9IHt9LCBtZXRob2ROYW1lcyA9IFtdO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYWxnb3JpdGhtcy5sZW5ndGg7ICsraSkge1xuICAgIHZhciBhbGdvcml0aG0gPSBhbGdvcml0aG1zW2ldO1xuICAgIHZhciBiaXRzID0gYWxnb3JpdGhtLmJpdHM7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBiaXRzLmxlbmd0aDsgKytqKSB7XG4gICAgICB2YXIgbWV0aG9kTmFtZSA9IGFsZ29yaXRobS5uYW1lICsgJ18nICsgYml0c1tqXTtcbiAgICAgIG1ldGhvZE5hbWVzLnB1c2gobWV0aG9kTmFtZSk7XG4gICAgICBtZXRob2RzW21ldGhvZE5hbWVdID0gYWxnb3JpdGhtLmNyZWF0ZU1ldGhvZChiaXRzW2pdLCBhbGdvcml0aG0ucGFkZGluZyk7XG4gICAgICBpZiAoYWxnb3JpdGhtLm5hbWUgIT09ICdzaGEzJykge1xuICAgICAgICB2YXIgbmV3TWV0aG9kTmFtZSA9IGFsZ29yaXRobS5uYW1lICsgYml0c1tqXTtcbiAgICAgICAgbWV0aG9kTmFtZXMucHVzaChuZXdNZXRob2ROYW1lKTtcbiAgICAgICAgbWV0aG9kc1tuZXdNZXRob2ROYW1lXSA9IG1ldGhvZHNbbWV0aG9kTmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gS2VjY2FrKGJpdHMsIHBhZGRpbmcsIG91dHB1dEJpdHMpIHtcbiAgICB0aGlzLmJsb2NrcyA9IFtdO1xuICAgIHRoaXMucyA9IFtdO1xuICAgIHRoaXMucGFkZGluZyA9IHBhZGRpbmc7XG4gICAgdGhpcy5vdXRwdXRCaXRzID0gb3V0cHV0Qml0cztcbiAgICB0aGlzLnJlc2V0ID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmFsaXplZCA9IGZhbHNlO1xuICAgIHRoaXMuYmxvY2sgPSAwO1xuICAgIHRoaXMuc3RhcnQgPSAwO1xuICAgIHRoaXMuYmxvY2tDb3VudCA9ICgxNjAwIC0gKGJpdHMgPDwgMSkpID4+IDU7XG4gICAgdGhpcy5ieXRlQ291bnQgPSB0aGlzLmJsb2NrQ291bnQgPDwgMjtcbiAgICB0aGlzLm91dHB1dEJsb2NrcyA9IG91dHB1dEJpdHMgPj4gNTtcbiAgICB0aGlzLmV4dHJhQnl0ZXMgPSAob3V0cHV0Qml0cyAmIDMxKSA+PiAzO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgKytpKSB7XG4gICAgICB0aGlzLnNbaV0gPSAwO1xuICAgIH1cbiAgfVxuXG4gIEtlY2Nhay5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICBpZiAodGhpcy5maW5hbGl6ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihGSU5BTElaRV9FUlJPUik7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UpO1xuICAgIG1lc3NhZ2UgPSByZXN1bHRbMF07XG4gICAgdmFyIGlzU3RyaW5nID0gcmVzdWx0WzFdO1xuICAgIHZhciBibG9ja3MgPSB0aGlzLmJsb2NrcywgYnl0ZUNvdW50ID0gdGhpcy5ieXRlQ291bnQsIGxlbmd0aCA9IG1lc3NhZ2UubGVuZ3RoLFxuICAgICAgYmxvY2tDb3VudCA9IHRoaXMuYmxvY2tDb3VudCwgaW5kZXggPSAwLCBzID0gdGhpcy5zLCBpLCBjb2RlO1xuXG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5yZXNldCkge1xuICAgICAgICB0aGlzLnJlc2V0ID0gZmFsc2U7XG4gICAgICAgIGJsb2Nrc1swXSA9IHRoaXMuYmxvY2s7XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBibG9ja0NvdW50ICsgMTsgKytpKSB7XG4gICAgICAgICAgYmxvY2tzW2ldID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzU3RyaW5nKSB7XG4gICAgICAgIGZvciAoaSA9IHRoaXMuc3RhcnQ7IGluZGV4IDwgbGVuZ3RoICYmIGkgPCBieXRlQ291bnQ7ICsraW5kZXgpIHtcbiAgICAgICAgICBjb2RlID0gbWVzc2FnZS5jaGFyQ29kZUF0KGluZGV4KTtcbiAgICAgICAgICBpZiAoY29kZSA8IDB4ODApIHtcbiAgICAgICAgICAgIGJsb2Nrc1tpID4+IDJdIHw9IGNvZGUgPDwgU0hJRlRbaSsrICYgM107XG4gICAgICAgICAgfSBlbHNlIGlmIChjb2RlIDwgMHg4MDApIHtcbiAgICAgICAgICAgIGJsb2Nrc1tpID4+IDJdIHw9ICgweGMwIHwgKGNvZGUgPj4gNikpIDw8IFNISUZUW2krKyAmIDNdO1xuICAgICAgICAgICAgYmxvY2tzW2kgPj4gMl0gfD0gKDB4ODAgfCAoY29kZSAmIDB4M2YpKSA8PCBTSElGVFtpKysgJiAzXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPCAweGQ4MDAgfHwgY29kZSA+PSAweGUwMDApIHtcbiAgICAgICAgICAgIGJsb2Nrc1tpID4+IDJdIHw9ICgweGUwIHwgKGNvZGUgPj4gMTIpKSA8PCBTSElGVFtpKysgJiAzXTtcbiAgICAgICAgICAgIGJsb2Nrc1tpID4+IDJdIHw9ICgweDgwIHwgKChjb2RlID4+IDYpICYgMHgzZikpIDw8IFNISUZUW2krKyAmIDNdO1xuICAgICAgICAgICAgYmxvY2tzW2kgPj4gMl0gfD0gKDB4ODAgfCAoY29kZSAmIDB4M2YpKSA8PCBTSElGVFtpKysgJiAzXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29kZSA9IDB4MTAwMDAgKyAoKChjb2RlICYgMHgzZmYpIDw8IDEwKSB8IChtZXNzYWdlLmNoYXJDb2RlQXQoKytpbmRleCkgJiAweDNmZikpO1xuICAgICAgICAgICAgYmxvY2tzW2kgPj4gMl0gfD0gKDB4ZjAgfCAoY29kZSA+PiAxOCkpIDw8IFNISUZUW2krKyAmIDNdO1xuICAgICAgICAgICAgYmxvY2tzW2kgPj4gMl0gfD0gKDB4ODAgfCAoKGNvZGUgPj4gMTIpICYgMHgzZikpIDw8IFNISUZUW2krKyAmIDNdO1xuICAgICAgICAgICAgYmxvY2tzW2kgPj4gMl0gfD0gKDB4ODAgfCAoKGNvZGUgPj4gNikgJiAweDNmKSkgPDwgU0hJRlRbaSsrICYgM107XG4gICAgICAgICAgICBibG9ja3NbaSA+PiAyXSB8PSAoMHg4MCB8IChjb2RlICYgMHgzZikpIDw8IFNISUZUW2krKyAmIDNdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChpID0gdGhpcy5zdGFydDsgaW5kZXggPCBsZW5ndGggJiYgaSA8IGJ5dGVDb3VudDsgKytpbmRleCkge1xuICAgICAgICAgIGJsb2Nrc1tpID4+IDJdIHw9IG1lc3NhZ2VbaW5kZXhdIDw8IFNISUZUW2krKyAmIDNdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmxhc3RCeXRlSW5kZXggPSBpO1xuICAgICAgaWYgKGkgPj0gYnl0ZUNvdW50KSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBpIC0gYnl0ZUNvdW50O1xuICAgICAgICB0aGlzLmJsb2NrID0gYmxvY2tzW2Jsb2NrQ291bnRdO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYmxvY2tDb3VudDsgKytpKSB7XG4gICAgICAgICAgc1tpXSBePSBibG9ja3NbaV07XG4gICAgICAgIH1cbiAgICAgICAgZihzKTtcbiAgICAgICAgdGhpcy5yZXNldCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXJ0ID0gaTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgS2VjY2FrLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbiAoeCwgcmlnaHQpIHtcbiAgICB2YXIgbyA9IHggJiAyNTUsIG4gPSAxO1xuICAgIHZhciBieXRlcyA9IFtvXTtcbiAgICB4ID0geCA+PiA4O1xuICAgIG8gPSB4ICYgMjU1O1xuICAgIHdoaWxlIChvID4gMCkge1xuICAgICAgYnl0ZXMudW5zaGlmdChvKTtcbiAgICAgIHggPSB4ID4+IDg7XG4gICAgICBvID0geCAmIDI1NTtcbiAgICAgICsrbjtcbiAgICB9XG4gICAgaWYgKHJpZ2h0KSB7XG4gICAgICBieXRlcy5wdXNoKG4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy51bnNoaWZ0KG4pO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZShieXRlcyk7XG4gICAgcmV0dXJuIGJ5dGVzLmxlbmd0aDtcbiAgfTtcblxuICBLZWNjYWsucHJvdG90eXBlLmVuY29kZVN0cmluZyA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICB2YXIgcmVzdWx0ID0gZm9ybWF0TWVzc2FnZShzdHIpO1xuICAgIHN0ciA9IHJlc3VsdFswXTtcbiAgICB2YXIgaXNTdHJpbmcgPSByZXN1bHRbMV07XG4gICAgdmFyIGJ5dGVzID0gMCwgbGVuZ3RoID0gc3RyLmxlbmd0aDtcbiAgICBpZiAoaXNTdHJpbmcpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGlmIChjb2RlIDwgMHg4MCkge1xuICAgICAgICAgIGJ5dGVzICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoY29kZSA8IDB4ODAwKSB7XG4gICAgICAgICAgYnl0ZXMgKz0gMjtcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlIDwgMHhkODAwIHx8IGNvZGUgPj0gMHhlMDAwKSB7XG4gICAgICAgICAgYnl0ZXMgKz0gMztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb2RlID0gMHgxMDAwMCArICgoKGNvZGUgJiAweDNmZikgPDwgMTApIHwgKHN0ci5jaGFyQ29kZUF0KCsraSkgJiAweDNmZikpO1xuICAgICAgICAgIGJ5dGVzICs9IDQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYnl0ZXMgPSBsZW5ndGg7XG4gICAgfVxuICAgIGJ5dGVzICs9IHRoaXMuZW5jb2RlKGJ5dGVzICogOCk7XG4gICAgdGhpcy51cGRhdGUoc3RyKTtcbiAgICByZXR1cm4gYnl0ZXM7XG4gIH07XG5cbiAgS2VjY2FrLnByb3RvdHlwZS5ieXRlcGFkID0gZnVuY3Rpb24gKHN0cnMsIHcpIHtcbiAgICB2YXIgYnl0ZXMgPSB0aGlzLmVuY29kZSh3KTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cnMubGVuZ3RoOyArK2kpIHtcbiAgICAgIGJ5dGVzICs9IHRoaXMuZW5jb2RlU3RyaW5nKHN0cnNbaV0pO1xuICAgIH1cbiAgICB2YXIgcGFkZGluZ0J5dGVzID0gKHcgLSBieXRlcyAlIHcpICUgdztcbiAgICB2YXIgemVyb3MgPSBbXTtcbiAgICB6ZXJvcy5sZW5ndGggPSBwYWRkaW5nQnl0ZXM7XG4gICAgdGhpcy51cGRhdGUoemVyb3MpO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEtlY2Nhay5wcm90b3R5cGUuZmluYWxpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuZmluYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmluYWxpemVkID0gdHJ1ZTtcbiAgICB2YXIgYmxvY2tzID0gdGhpcy5ibG9ja3MsIGkgPSB0aGlzLmxhc3RCeXRlSW5kZXgsIGJsb2NrQ291bnQgPSB0aGlzLmJsb2NrQ291bnQsIHMgPSB0aGlzLnM7XG4gICAgYmxvY2tzW2kgPj4gMl0gfD0gdGhpcy5wYWRkaW5nW2kgJiAzXTtcbiAgICBpZiAodGhpcy5sYXN0Qnl0ZUluZGV4ID09PSB0aGlzLmJ5dGVDb3VudCkge1xuICAgICAgYmxvY2tzWzBdID0gYmxvY2tzW2Jsb2NrQ291bnRdO1xuICAgICAgZm9yIChpID0gMTsgaSA8IGJsb2NrQ291bnQgKyAxOyArK2kpIHtcbiAgICAgICAgYmxvY2tzW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgYmxvY2tzW2Jsb2NrQ291bnQgLSAxXSB8PSAweDgwMDAwMDAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCBibG9ja0NvdW50OyArK2kpIHtcbiAgICAgIHNbaV0gXj0gYmxvY2tzW2ldO1xuICAgIH1cbiAgICBmKHMpO1xuICB9O1xuXG4gIEtlY2Nhay5wcm90b3R5cGUudG9TdHJpbmcgPSBLZWNjYWsucHJvdG90eXBlLmhleCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpbmFsaXplKCk7XG5cbiAgICB2YXIgYmxvY2tDb3VudCA9IHRoaXMuYmxvY2tDb3VudCwgcyA9IHRoaXMucywgb3V0cHV0QmxvY2tzID0gdGhpcy5vdXRwdXRCbG9ja3MsXG4gICAgICBleHRyYUJ5dGVzID0gdGhpcy5leHRyYUJ5dGVzLCBpID0gMCwgaiA9IDA7XG4gICAgdmFyIGhleCA9ICcnLCBibG9jaztcbiAgICB3aGlsZSAoaiA8IG91dHB1dEJsb2Nrcykge1xuICAgICAgZm9yIChpID0gMDsgaSA8IGJsb2NrQ291bnQgJiYgaiA8IG91dHB1dEJsb2NrczsgKytpLCArK2opIHtcbiAgICAgICAgYmxvY2sgPSBzW2ldO1xuICAgICAgICBoZXggKz0gSEVYX0NIQVJTWyhibG9jayA+PiA0KSAmIDB4MEZdICsgSEVYX0NIQVJTW2Jsb2NrICYgMHgwRl0gK1xuICAgICAgICAgIEhFWF9DSEFSU1soYmxvY2sgPj4gMTIpICYgMHgwRl0gKyBIRVhfQ0hBUlNbKGJsb2NrID4+IDgpICYgMHgwRl0gK1xuICAgICAgICAgIEhFWF9DSEFSU1soYmxvY2sgPj4gMjApICYgMHgwRl0gKyBIRVhfQ0hBUlNbKGJsb2NrID4+IDE2KSAmIDB4MEZdICtcbiAgICAgICAgICBIRVhfQ0hBUlNbKGJsb2NrID4+IDI4KSAmIDB4MEZdICsgSEVYX0NIQVJTWyhibG9jayA+PiAyNCkgJiAweDBGXTtcbiAgICAgIH1cbiAgICAgIGlmIChqICUgYmxvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICBmKHMpO1xuICAgICAgICBpID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV4dHJhQnl0ZXMpIHtcbiAgICAgIGJsb2NrID0gc1tpXTtcbiAgICAgIGhleCArPSBIRVhfQ0hBUlNbKGJsb2NrID4+IDQpICYgMHgwRl0gKyBIRVhfQ0hBUlNbYmxvY2sgJiAweDBGXTtcbiAgICAgIGlmIChleHRyYUJ5dGVzID4gMSkge1xuICAgICAgICBoZXggKz0gSEVYX0NIQVJTWyhibG9jayA+PiAxMikgJiAweDBGXSArIEhFWF9DSEFSU1soYmxvY2sgPj4gOCkgJiAweDBGXTtcbiAgICAgIH1cbiAgICAgIGlmIChleHRyYUJ5dGVzID4gMikge1xuICAgICAgICBoZXggKz0gSEVYX0NIQVJTWyhibG9jayA+PiAyMCkgJiAweDBGXSArIEhFWF9DSEFSU1soYmxvY2sgPj4gMTYpICYgMHgwRl07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoZXg7XG4gIH07XG5cbiAgS2VjY2FrLnByb3RvdHlwZS5hcnJheUJ1ZmZlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpbmFsaXplKCk7XG5cbiAgICB2YXIgYmxvY2tDb3VudCA9IHRoaXMuYmxvY2tDb3VudCwgcyA9IHRoaXMucywgb3V0cHV0QmxvY2tzID0gdGhpcy5vdXRwdXRCbG9ja3MsXG4gICAgICBleHRyYUJ5dGVzID0gdGhpcy5leHRyYUJ5dGVzLCBpID0gMCwgaiA9IDA7XG4gICAgdmFyIGJ5dGVzID0gdGhpcy5vdXRwdXRCaXRzID4+IDM7XG4gICAgdmFyIGJ1ZmZlcjtcbiAgICBpZiAoZXh0cmFCeXRlcykge1xuICAgICAgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKChvdXRwdXRCbG9ja3MgKyAxKSA8PCAyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVzKTtcbiAgICB9XG4gICAgdmFyIGFycmF5ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlcik7XG4gICAgd2hpbGUgKGogPCBvdXRwdXRCbG9ja3MpIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBibG9ja0NvdW50ICYmIGogPCBvdXRwdXRCbG9ja3M7ICsraSwgKytqKSB7XG4gICAgICAgIGFycmF5W2pdID0gc1tpXTtcbiAgICAgIH1cbiAgICAgIGlmIChqICUgYmxvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICBmKHMpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZXh0cmFCeXRlcykge1xuICAgICAgYXJyYXlbaV0gPSBzW2ldO1xuICAgICAgYnVmZmVyID0gYnVmZmVyLnNsaWNlKDAsIGJ5dGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfTtcblxuICBLZWNjYWsucHJvdG90eXBlLmJ1ZmZlciA9IEtlY2Nhay5wcm90b3R5cGUuYXJyYXlCdWZmZXI7XG5cbiAgS2VjY2FrLnByb3RvdHlwZS5kaWdlc3QgPSBLZWNjYWsucHJvdG90eXBlLmFycmF5ID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmluYWxpemUoKTtcblxuICAgIHZhciBibG9ja0NvdW50ID0gdGhpcy5ibG9ja0NvdW50LCBzID0gdGhpcy5zLCBvdXRwdXRCbG9ja3MgPSB0aGlzLm91dHB1dEJsb2NrcyxcbiAgICAgIGV4dHJhQnl0ZXMgPSB0aGlzLmV4dHJhQnl0ZXMsIGkgPSAwLCBqID0gMDtcbiAgICB2YXIgYXJyYXkgPSBbXSwgb2Zmc2V0LCBibG9jaztcbiAgICB3aGlsZSAoaiA8IG91dHB1dEJsb2Nrcykge1xuICAgICAgZm9yIChpID0gMDsgaSA8IGJsb2NrQ291bnQgJiYgaiA8IG91dHB1dEJsb2NrczsgKytpLCArK2opIHtcbiAgICAgICAgb2Zmc2V0ID0gaiA8PCAyO1xuICAgICAgICBibG9jayA9IHNbaV07XG4gICAgICAgIGFycmF5W29mZnNldF0gPSBibG9jayAmIDB4RkY7XG4gICAgICAgIGFycmF5W29mZnNldCArIDFdID0gKGJsb2NrID4+IDgpICYgMHhGRjtcbiAgICAgICAgYXJyYXlbb2Zmc2V0ICsgMl0gPSAoYmxvY2sgPj4gMTYpICYgMHhGRjtcbiAgICAgICAgYXJyYXlbb2Zmc2V0ICsgM10gPSAoYmxvY2sgPj4gMjQpICYgMHhGRjtcbiAgICAgIH1cbiAgICAgIGlmIChqICUgYmxvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICBmKHMpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZXh0cmFCeXRlcykge1xuICAgICAgb2Zmc2V0ID0gaiA8PCAyO1xuICAgICAgYmxvY2sgPSBzW2ldO1xuICAgICAgYXJyYXlbb2Zmc2V0XSA9IGJsb2NrICYgMHhGRjtcbiAgICAgIGlmIChleHRyYUJ5dGVzID4gMSkge1xuICAgICAgICBhcnJheVtvZmZzZXQgKyAxXSA9IChibG9jayA+PiA4KSAmIDB4RkY7XG4gICAgICB9XG4gICAgICBpZiAoZXh0cmFCeXRlcyA+IDIpIHtcbiAgICAgICAgYXJyYXlbb2Zmc2V0ICsgMl0gPSAoYmxvY2sgPj4gMTYpICYgMHhGRjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9O1xuXG4gIGZ1bmN0aW9uIEttYWMoYml0cywgcGFkZGluZywgb3V0cHV0Qml0cykge1xuICAgIEtlY2Nhay5jYWxsKHRoaXMsIGJpdHMsIHBhZGRpbmcsIG91dHB1dEJpdHMpO1xuICB9XG5cbiAgS21hYy5wcm90b3R5cGUgPSBuZXcgS2VjY2FrKCk7XG5cbiAgS21hYy5wcm90b3R5cGUuZmluYWxpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5lbmNvZGUodGhpcy5vdXRwdXRCaXRzLCB0cnVlKTtcbiAgICByZXR1cm4gS2VjY2FrLnByb3RvdHlwZS5maW5hbGl6ZS5jYWxsKHRoaXMpO1xuICB9O1xuXG4gIHZhciBmID0gZnVuY3Rpb24gKHMpIHtcbiAgICB2YXIgaCwgbCwgbiwgYzAsIGMxLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCwgYzksXG4gICAgICBiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGI4LCBiOSwgYjEwLCBiMTEsIGIxMiwgYjEzLCBiMTQsIGIxNSwgYjE2LCBiMTcsXG4gICAgICBiMTgsIGIxOSwgYjIwLCBiMjEsIGIyMiwgYjIzLCBiMjQsIGIyNSwgYjI2LCBiMjcsIGIyOCwgYjI5LCBiMzAsIGIzMSwgYjMyLCBiMzMsXG4gICAgICBiMzQsIGIzNSwgYjM2LCBiMzcsIGIzOCwgYjM5LCBiNDAsIGI0MSwgYjQyLCBiNDMsIGI0NCwgYjQ1LCBiNDYsIGI0NywgYjQ4LCBiNDk7XG4gICAgZm9yIChuID0gMDsgbiA8IDQ4OyBuICs9IDIpIHtcbiAgICAgIGMwID0gc1swXSBeIHNbMTBdIF4gc1syMF0gXiBzWzMwXSBeIHNbNDBdO1xuICAgICAgYzEgPSBzWzFdIF4gc1sxMV0gXiBzWzIxXSBeIHNbMzFdIF4gc1s0MV07XG4gICAgICBjMiA9IHNbMl0gXiBzWzEyXSBeIHNbMjJdIF4gc1szMl0gXiBzWzQyXTtcbiAgICAgIGMzID0gc1szXSBeIHNbMTNdIF4gc1syM10gXiBzWzMzXSBeIHNbNDNdO1xuICAgICAgYzQgPSBzWzRdIF4gc1sxNF0gXiBzWzI0XSBeIHNbMzRdIF4gc1s0NF07XG4gICAgICBjNSA9IHNbNV0gXiBzWzE1XSBeIHNbMjVdIF4gc1szNV0gXiBzWzQ1XTtcbiAgICAgIGM2ID0gc1s2XSBeIHNbMTZdIF4gc1syNl0gXiBzWzM2XSBeIHNbNDZdO1xuICAgICAgYzcgPSBzWzddIF4gc1sxN10gXiBzWzI3XSBeIHNbMzddIF4gc1s0N107XG4gICAgICBjOCA9IHNbOF0gXiBzWzE4XSBeIHNbMjhdIF4gc1szOF0gXiBzWzQ4XTtcbiAgICAgIGM5ID0gc1s5XSBeIHNbMTldIF4gc1syOV0gXiBzWzM5XSBeIHNbNDldO1xuXG4gICAgICBoID0gYzggXiAoKGMyIDw8IDEpIHwgKGMzID4+PiAzMSkpO1xuICAgICAgbCA9IGM5IF4gKChjMyA8PCAxKSB8IChjMiA+Pj4gMzEpKTtcbiAgICAgIHNbMF0gXj0gaDtcbiAgICAgIHNbMV0gXj0gbDtcbiAgICAgIHNbMTBdIF49IGg7XG4gICAgICBzWzExXSBePSBsO1xuICAgICAgc1syMF0gXj0gaDtcbiAgICAgIHNbMjFdIF49IGw7XG4gICAgICBzWzMwXSBePSBoO1xuICAgICAgc1szMV0gXj0gbDtcbiAgICAgIHNbNDBdIF49IGg7XG4gICAgICBzWzQxXSBePSBsO1xuICAgICAgaCA9IGMwIF4gKChjNCA8PCAxKSB8IChjNSA+Pj4gMzEpKTtcbiAgICAgIGwgPSBjMSBeICgoYzUgPDwgMSkgfCAoYzQgPj4+IDMxKSk7XG4gICAgICBzWzJdIF49IGg7XG4gICAgICBzWzNdIF49IGw7XG4gICAgICBzWzEyXSBePSBoO1xuICAgICAgc1sxM10gXj0gbDtcbiAgICAgIHNbMjJdIF49IGg7XG4gICAgICBzWzIzXSBePSBsO1xuICAgICAgc1szMl0gXj0gaDtcbiAgICAgIHNbMzNdIF49IGw7XG4gICAgICBzWzQyXSBePSBoO1xuICAgICAgc1s0M10gXj0gbDtcbiAgICAgIGggPSBjMiBeICgoYzYgPDwgMSkgfCAoYzcgPj4+IDMxKSk7XG4gICAgICBsID0gYzMgXiAoKGM3IDw8IDEpIHwgKGM2ID4+PiAzMSkpO1xuICAgICAgc1s0XSBePSBoO1xuICAgICAgc1s1XSBePSBsO1xuICAgICAgc1sxNF0gXj0gaDtcbiAgICAgIHNbMTVdIF49IGw7XG4gICAgICBzWzI0XSBePSBoO1xuICAgICAgc1syNV0gXj0gbDtcbiAgICAgIHNbMzRdIF49IGg7XG4gICAgICBzWzM1XSBePSBsO1xuICAgICAgc1s0NF0gXj0gaDtcbiAgICAgIHNbNDVdIF49IGw7XG4gICAgICBoID0gYzQgXiAoKGM4IDw8IDEpIHwgKGM5ID4+PiAzMSkpO1xuICAgICAgbCA9IGM1IF4gKChjOSA8PCAxKSB8IChjOCA+Pj4gMzEpKTtcbiAgICAgIHNbNl0gXj0gaDtcbiAgICAgIHNbN10gXj0gbDtcbiAgICAgIHNbMTZdIF49IGg7XG4gICAgICBzWzE3XSBePSBsO1xuICAgICAgc1syNl0gXj0gaDtcbiAgICAgIHNbMjddIF49IGw7XG4gICAgICBzWzM2XSBePSBoO1xuICAgICAgc1szN10gXj0gbDtcbiAgICAgIHNbNDZdIF49IGg7XG4gICAgICBzWzQ3XSBePSBsO1xuICAgICAgaCA9IGM2IF4gKChjMCA8PCAxKSB8IChjMSA+Pj4gMzEpKTtcbiAgICAgIGwgPSBjNyBeICgoYzEgPDwgMSkgfCAoYzAgPj4+IDMxKSk7XG4gICAgICBzWzhdIF49IGg7XG4gICAgICBzWzldIF49IGw7XG4gICAgICBzWzE4XSBePSBoO1xuICAgICAgc1sxOV0gXj0gbDtcbiAgICAgIHNbMjhdIF49IGg7XG4gICAgICBzWzI5XSBePSBsO1xuICAgICAgc1szOF0gXj0gaDtcbiAgICAgIHNbMzldIF49IGw7XG4gICAgICBzWzQ4XSBePSBoO1xuICAgICAgc1s0OV0gXj0gbDtcblxuICAgICAgYjAgPSBzWzBdO1xuICAgICAgYjEgPSBzWzFdO1xuICAgICAgYjMyID0gKHNbMTFdIDw8IDQpIHwgKHNbMTBdID4+PiAyOCk7XG4gICAgICBiMzMgPSAoc1sxMF0gPDwgNCkgfCAoc1sxMV0gPj4+IDI4KTtcbiAgICAgIGIxNCA9IChzWzIwXSA8PCAzKSB8IChzWzIxXSA+Pj4gMjkpO1xuICAgICAgYjE1ID0gKHNbMjFdIDw8IDMpIHwgKHNbMjBdID4+PiAyOSk7XG4gICAgICBiNDYgPSAoc1szMV0gPDwgOSkgfCAoc1szMF0gPj4+IDIzKTtcbiAgICAgIGI0NyA9IChzWzMwXSA8PCA5KSB8IChzWzMxXSA+Pj4gMjMpO1xuICAgICAgYjI4ID0gKHNbNDBdIDw8IDE4KSB8IChzWzQxXSA+Pj4gMTQpO1xuICAgICAgYjI5ID0gKHNbNDFdIDw8IDE4KSB8IChzWzQwXSA+Pj4gMTQpO1xuICAgICAgYjIwID0gKHNbMl0gPDwgMSkgfCAoc1szXSA+Pj4gMzEpO1xuICAgICAgYjIxID0gKHNbM10gPDwgMSkgfCAoc1syXSA+Pj4gMzEpO1xuICAgICAgYjIgPSAoc1sxM10gPDwgMTIpIHwgKHNbMTJdID4+PiAyMCk7XG4gICAgICBiMyA9IChzWzEyXSA8PCAxMikgfCAoc1sxM10gPj4+IDIwKTtcbiAgICAgIGIzNCA9IChzWzIyXSA8PCAxMCkgfCAoc1syM10gPj4+IDIyKTtcbiAgICAgIGIzNSA9IChzWzIzXSA8PCAxMCkgfCAoc1syMl0gPj4+IDIyKTtcbiAgICAgIGIxNiA9IChzWzMzXSA8PCAxMykgfCAoc1szMl0gPj4+IDE5KTtcbiAgICAgIGIxNyA9IChzWzMyXSA8PCAxMykgfCAoc1szM10gPj4+IDE5KTtcbiAgICAgIGI0OCA9IChzWzQyXSA8PCAyKSB8IChzWzQzXSA+Pj4gMzApO1xuICAgICAgYjQ5ID0gKHNbNDNdIDw8IDIpIHwgKHNbNDJdID4+PiAzMCk7XG4gICAgICBiNDAgPSAoc1s1XSA8PCAzMCkgfCAoc1s0XSA+Pj4gMik7XG4gICAgICBiNDEgPSAoc1s0XSA8PCAzMCkgfCAoc1s1XSA+Pj4gMik7XG4gICAgICBiMjIgPSAoc1sxNF0gPDwgNikgfCAoc1sxNV0gPj4+IDI2KTtcbiAgICAgIGIyMyA9IChzWzE1XSA8PCA2KSB8IChzWzE0XSA+Pj4gMjYpO1xuICAgICAgYjQgPSAoc1syNV0gPDwgMTEpIHwgKHNbMjRdID4+PiAyMSk7XG4gICAgICBiNSA9IChzWzI0XSA8PCAxMSkgfCAoc1syNV0gPj4+IDIxKTtcbiAgICAgIGIzNiA9IChzWzM0XSA8PCAxNSkgfCAoc1szNV0gPj4+IDE3KTtcbiAgICAgIGIzNyA9IChzWzM1XSA8PCAxNSkgfCAoc1szNF0gPj4+IDE3KTtcbiAgICAgIGIxOCA9IChzWzQ1XSA8PCAyOSkgfCAoc1s0NF0gPj4+IDMpO1xuICAgICAgYjE5ID0gKHNbNDRdIDw8IDI5KSB8IChzWzQ1XSA+Pj4gMyk7XG4gICAgICBiMTAgPSAoc1s2XSA8PCAyOCkgfCAoc1s3XSA+Pj4gNCk7XG4gICAgICBiMTEgPSAoc1s3XSA8PCAyOCkgfCAoc1s2XSA+Pj4gNCk7XG4gICAgICBiNDIgPSAoc1sxN10gPDwgMjMpIHwgKHNbMTZdID4+PiA5KTtcbiAgICAgIGI0MyA9IChzWzE2XSA8PCAyMykgfCAoc1sxN10gPj4+IDkpO1xuICAgICAgYjI0ID0gKHNbMjZdIDw8IDI1KSB8IChzWzI3XSA+Pj4gNyk7XG4gICAgICBiMjUgPSAoc1syN10gPDwgMjUpIHwgKHNbMjZdID4+PiA3KTtcbiAgICAgIGI2ID0gKHNbMzZdIDw8IDIxKSB8IChzWzM3XSA+Pj4gMTEpO1xuICAgICAgYjcgPSAoc1szN10gPDwgMjEpIHwgKHNbMzZdID4+PiAxMSk7XG4gICAgICBiMzggPSAoc1s0N10gPDwgMjQpIHwgKHNbNDZdID4+PiA4KTtcbiAgICAgIGIzOSA9IChzWzQ2XSA8PCAyNCkgfCAoc1s0N10gPj4+IDgpO1xuICAgICAgYjMwID0gKHNbOF0gPDwgMjcpIHwgKHNbOV0gPj4+IDUpO1xuICAgICAgYjMxID0gKHNbOV0gPDwgMjcpIHwgKHNbOF0gPj4+IDUpO1xuICAgICAgYjEyID0gKHNbMThdIDw8IDIwKSB8IChzWzE5XSA+Pj4gMTIpO1xuICAgICAgYjEzID0gKHNbMTldIDw8IDIwKSB8IChzWzE4XSA+Pj4gMTIpO1xuICAgICAgYjQ0ID0gKHNbMjldIDw8IDcpIHwgKHNbMjhdID4+PiAyNSk7XG4gICAgICBiNDUgPSAoc1syOF0gPDwgNykgfCAoc1syOV0gPj4+IDI1KTtcbiAgICAgIGIyNiA9IChzWzM4XSA8PCA4KSB8IChzWzM5XSA+Pj4gMjQpO1xuICAgICAgYjI3ID0gKHNbMzldIDw8IDgpIHwgKHNbMzhdID4+PiAyNCk7XG4gICAgICBiOCA9IChzWzQ4XSA8PCAxNCkgfCAoc1s0OV0gPj4+IDE4KTtcbiAgICAgIGI5ID0gKHNbNDldIDw8IDE0KSB8IChzWzQ4XSA+Pj4gMTgpO1xuXG4gICAgICBzWzBdID0gYjAgXiAofmIyICYgYjQpO1xuICAgICAgc1sxXSA9IGIxIF4gKH5iMyAmIGI1KTtcbiAgICAgIHNbMTBdID0gYjEwIF4gKH5iMTIgJiBiMTQpO1xuICAgICAgc1sxMV0gPSBiMTEgXiAofmIxMyAmIGIxNSk7XG4gICAgICBzWzIwXSA9IGIyMCBeICh+YjIyICYgYjI0KTtcbiAgICAgIHNbMjFdID0gYjIxIF4gKH5iMjMgJiBiMjUpO1xuICAgICAgc1szMF0gPSBiMzAgXiAofmIzMiAmIGIzNCk7XG4gICAgICBzWzMxXSA9IGIzMSBeICh+YjMzICYgYjM1KTtcbiAgICAgIHNbNDBdID0gYjQwIF4gKH5iNDIgJiBiNDQpO1xuICAgICAgc1s0MV0gPSBiNDEgXiAofmI0MyAmIGI0NSk7XG4gICAgICBzWzJdID0gYjIgXiAofmI0ICYgYjYpO1xuICAgICAgc1szXSA9IGIzIF4gKH5iNSAmIGI3KTtcbiAgICAgIHNbMTJdID0gYjEyIF4gKH5iMTQgJiBiMTYpO1xuICAgICAgc1sxM10gPSBiMTMgXiAofmIxNSAmIGIxNyk7XG4gICAgICBzWzIyXSA9IGIyMiBeICh+YjI0ICYgYjI2KTtcbiAgICAgIHNbMjNdID0gYjIzIF4gKH5iMjUgJiBiMjcpO1xuICAgICAgc1szMl0gPSBiMzIgXiAofmIzNCAmIGIzNik7XG4gICAgICBzWzMzXSA9IGIzMyBeICh+YjM1ICYgYjM3KTtcbiAgICAgIHNbNDJdID0gYjQyIF4gKH5iNDQgJiBiNDYpO1xuICAgICAgc1s0M10gPSBiNDMgXiAofmI0NSAmIGI0Nyk7XG4gICAgICBzWzRdID0gYjQgXiAofmI2ICYgYjgpO1xuICAgICAgc1s1XSA9IGI1IF4gKH5iNyAmIGI5KTtcbiAgICAgIHNbMTRdID0gYjE0IF4gKH5iMTYgJiBiMTgpO1xuICAgICAgc1sxNV0gPSBiMTUgXiAofmIxNyAmIGIxOSk7XG4gICAgICBzWzI0XSA9IGIyNCBeICh+YjI2ICYgYjI4KTtcbiAgICAgIHNbMjVdID0gYjI1IF4gKH5iMjcgJiBiMjkpO1xuICAgICAgc1szNF0gPSBiMzQgXiAofmIzNiAmIGIzOCk7XG4gICAgICBzWzM1XSA9IGIzNSBeICh+YjM3ICYgYjM5KTtcbiAgICAgIHNbNDRdID0gYjQ0IF4gKH5iNDYgJiBiNDgpO1xuICAgICAgc1s0NV0gPSBiNDUgXiAofmI0NyAmIGI0OSk7XG4gICAgICBzWzZdID0gYjYgXiAofmI4ICYgYjApO1xuICAgICAgc1s3XSA9IGI3IF4gKH5iOSAmIGIxKTtcbiAgICAgIHNbMTZdID0gYjE2IF4gKH5iMTggJiBiMTApO1xuICAgICAgc1sxN10gPSBiMTcgXiAofmIxOSAmIGIxMSk7XG4gICAgICBzWzI2XSA9IGIyNiBeICh+YjI4ICYgYjIwKTtcbiAgICAgIHNbMjddID0gYjI3IF4gKH5iMjkgJiBiMjEpO1xuICAgICAgc1szNl0gPSBiMzYgXiAofmIzOCAmIGIzMCk7XG4gICAgICBzWzM3XSA9IGIzNyBeICh+YjM5ICYgYjMxKTtcbiAgICAgIHNbNDZdID0gYjQ2IF4gKH5iNDggJiBiNDApO1xuICAgICAgc1s0N10gPSBiNDcgXiAofmI0OSAmIGI0MSk7XG4gICAgICBzWzhdID0gYjggXiAofmIwICYgYjIpO1xuICAgICAgc1s5XSA9IGI5IF4gKH5iMSAmIGIzKTtcbiAgICAgIHNbMThdID0gYjE4IF4gKH5iMTAgJiBiMTIpO1xuICAgICAgc1sxOV0gPSBiMTkgXiAofmIxMSAmIGIxMyk7XG4gICAgICBzWzI4XSA9IGIyOCBeICh+YjIwICYgYjIyKTtcbiAgICAgIHNbMjldID0gYjI5IF4gKH5iMjEgJiBiMjMpO1xuICAgICAgc1szOF0gPSBiMzggXiAofmIzMCAmIGIzMik7XG4gICAgICBzWzM5XSA9IGIzOSBeICh+YjMxICYgYjMzKTtcbiAgICAgIHNbNDhdID0gYjQ4IF4gKH5iNDAgJiBiNDIpO1xuICAgICAgc1s0OV0gPSBiNDkgXiAofmI0MSAmIGI0Myk7XG5cbiAgICAgIHNbMF0gXj0gUkNbbl07XG4gICAgICBzWzFdIF49IFJDW24gKyAxXTtcbiAgICB9XG4gIH07XG5cbiAgaWYgKENPTU1PTl9KUykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gbWV0aG9kcztcbiAgfSBlbHNlIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbWV0aG9kTmFtZXMubGVuZ3RoOyArK2kpIHtcbiAgICAgIHJvb3RbbWV0aG9kTmFtZXNbaV1dID0gbWV0aG9kc1ttZXRob2ROYW1lc1tpXV07XG4gICAgfVxuICAgIGlmIChBTUQpIHtcbiAgICAgIGRlZmluZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBtZXRob2RzO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59KSgpO1xuIl0sIm5hbWVzIjpbIklOUFVUX0VSUk9SIiwiRklOQUxJWkVfRVJST1IiLCJXSU5ET1ciLCJyb290Iiwid2luZG93IiwiSlNfU0hBM19OT19XSU5ET1ciLCJXRUJfV09SS0VSIiwic2VsZiIsIk5PREVfSlMiLCJKU19TSEEzX05PX05PREVfSlMiLCJwcm9jZXNzIiwidmVyc2lvbnMiLCJub2RlIiwiZ2xvYmFsIiwiQ09NTU9OX0pTIiwiSlNfU0hBM19OT19DT01NT05fSlMiLCJtb2R1bGUiLCJleHBvcnRzIiwiQU1EIiwiZGVmaW5lIiwiYW1kIiwiQVJSQVlfQlVGRkVSIiwiSlNfU0hBM19OT19BUlJBWV9CVUZGRVIiLCJBcnJheUJ1ZmZlciIsIkhFWF9DSEFSUyIsInNwbGl0IiwiU0hBS0VfUEFERElORyIsIkNTSEFLRV9QQURESU5HIiwiS0VDQ0FLX1BBRERJTkciLCJQQURESU5HIiwiU0hJRlQiLCJSQyIsIkJJVFMiLCJTSEFLRV9CSVRTIiwiT1VUUFVUX1RZUEVTIiwiQ1NIQUtFX0JZVEVQQUQiLCJpc0FycmF5IiwiQXJyYXkiLCJvYmoiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJpc1ZpZXciLCJKU19TSEEzX05PX0FSUkFZX0JVRkZFUl9JU19WSUVXIiwiYnVmZmVyIiwiY29uc3RydWN0b3IiLCJmb3JtYXRNZXNzYWdlIiwibWVzc2FnZSIsInR5cGUiLCJFcnJvciIsIlVpbnQ4QXJyYXkiLCJlbXB0eSIsImxlbmd0aCIsImNyZWF0ZU91dHB1dE1ldGhvZCIsImJpdHMiLCJwYWRkaW5nIiwib3V0cHV0VHlwZSIsIktlY2NhayIsInVwZGF0ZSIsImNyZWF0ZVNoYWtlT3V0cHV0TWV0aG9kIiwib3V0cHV0Qml0cyIsImNyZWF0ZUNzaGFrZU91dHB1dE1ldGhvZCIsIm4iLCJzIiwibWV0aG9kcyIsImNyZWF0ZUttYWNPdXRwdXRNZXRob2QiLCJrZXkiLCJjcmVhdGVPdXRwdXRNZXRob2RzIiwibWV0aG9kIiwiY3JlYXRlTWV0aG9kIiwiaSIsImNyZWF0ZSIsImNyZWF0ZVNoYWtlTWV0aG9kIiwiY3JlYXRlQ3NoYWtlTWV0aG9kIiwidyIsImJ5dGVwYWQiLCJjcmVhdGVLbWFjTWV0aG9kIiwiS21hYyIsImFsZ29yaXRobXMiLCJuYW1lIiwibWV0aG9kTmFtZXMiLCJhbGdvcml0aG0iLCJqIiwibWV0aG9kTmFtZSIsInB1c2giLCJuZXdNZXRob2ROYW1lIiwiYmxvY2tzIiwicmVzZXQiLCJmaW5hbGl6ZWQiLCJibG9jayIsInN0YXJ0IiwiYmxvY2tDb3VudCIsImJ5dGVDb3VudCIsIm91dHB1dEJsb2NrcyIsImV4dHJhQnl0ZXMiLCJyZXN1bHQiLCJpc1N0cmluZyIsImluZGV4IiwiY29kZSIsImNoYXJDb2RlQXQiLCJsYXN0Qnl0ZUluZGV4IiwiZiIsImVuY29kZSIsIngiLCJyaWdodCIsIm8iLCJieXRlcyIsInVuc2hpZnQiLCJlbmNvZGVTdHJpbmciLCJzdHIiLCJzdHJzIiwicGFkZGluZ0J5dGVzIiwiemVyb3MiLCJmaW5hbGl6ZSIsImhleCIsImFycmF5QnVmZmVyIiwiYXJyYXkiLCJVaW50MzJBcnJheSIsInNsaWNlIiwiZGlnZXN0Iiwib2Zmc2V0IiwiaCIsImwiLCJjMCIsImMxIiwiYzIiLCJjMyIsImM0IiwiYzUiLCJjNiIsImM3IiwiYzgiLCJjOSIsImIwIiwiYjEiLCJiMiIsImIzIiwiYjQiLCJiNSIsImI2IiwiYjciLCJiOCIsImI5IiwiYjEwIiwiYjExIiwiYjEyIiwiYjEzIiwiYjE0IiwiYjE1IiwiYjE2IiwiYjE3IiwiYjE4IiwiYjE5IiwiYjIwIiwiYjIxIiwiYjIyIiwiYjIzIiwiYjI0IiwiYjI1IiwiYjI2IiwiYjI3IiwiYjI4IiwiYjI5IiwiYjMwIiwiYjMxIiwiYjMyIiwiYjMzIiwiYjM0IiwiYjM1IiwiYjM2IiwiYjM3IiwiYjM4IiwiYjM5IiwiYjQwIiwiYjQxIiwiYjQyIiwiYjQzIiwiYjQ0IiwiYjQ1IiwiYjQ2IiwiYjQ3IiwiYjQ4IiwiYjQ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/js-sha3/src/sha3.js\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
; |