{"version":3,"file":"dvSCox-q.js","sources":["../../../../../../../../node_modules/uuid/dist/esm-browser/rng.js","../../../../../../../../node_modules/uuid/dist/esm-browser/regex.js","../../../../../../../../node_modules/uuid/dist/esm-browser/validate.js","../../../../../../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../../../../../../node_modules/uuid/dist/esm-browser/v1.js","../../../../../../../../node_modules/uuid/dist/esm-browser/parse.js","../../../../../../../../node_modules/uuid/dist/esm-browser/v35.js","../../../../../../../../node_modules/uuid/dist/esm-browser/md5.js","../../../../../../../../node_modules/uuid/dist/esm-browser/v3.js","../../../../../../../../node_modules/uuid/dist/esm-browser/sha1.js","../../../../../../../../node_modules/uuid/dist/esm-browser/v5.js","../../../../../../../../node_modules/uuid/dist/esm-browser/nil.js","../../../../../../../../node_modules/uuid/dist/esm-browser/v4.js","../../../../../../../../node_modules/uuid/dist/esm-browser/version.js","../../../../../../../../node_modules/hyperid/node_modules/buffer/index.js","../../../../../../../../node_modules/hyperid/hyperid.js","../../../../../../../../node_modules/hyperid/uuid-browser.js","../../../../../../../../node_modules/uuid-parse/uuid-parse.js","../../../../../../src/lib/stores/swapStore.ts","../../../../../../src/lib/services/swap/SwapMonitor.ts","../../../../../../src/lib/services/swap/SwapService.ts","../../../../../../src/lib/services/swap/SwapStateService.ts","../../../../../../src/lib/components/swap/swap_ui/TokenItem.svelte","../../../../../../src/lib/utils/virtualScroll.ts","../../../../../../src/lib/components/swap/swap_ui/TokenSelectorDropdown.svelte"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || rng)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return stringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","'use strict'\n\nconst uuidv4 = require('./uuid-node')\nconst parser = require('uuid-parse')\nconst Buffer = loadBuffer()\nfunction loadBuffer () {\n const b = require('buffer')\n // use third party module if no buffer module\n return b && b.Buffer\n ? b.Buffer\n : require('buffer/').Buffer\n}\nconst base64Padding = Buffer.from('==', 'base64')\n\nfunction hyperid (opts) {\n let fixedLength = false\n let urlSafe = false\n // gaurd if instantiated using boolean for fixedLength or with no args\n let maxInt = Math.pow(2, 31) - 1\n if (typeof opts === 'boolean') {\n fixedLength = opts\n } else {\n opts = opts || {}\n maxInt = opts.maxInt || Math.pow(2, 31) - 1\n urlSafe = !!opts.urlSafe\n fixedLength = !!opts.fixedLength\n }\n\n generate.uuid = uuidv4()\n generate.decode = decode\n\n let id = baseId(generate.uuid, urlSafe)\n let count = Math.floor(opts.startFrom || 0)\n\n if (isNaN(maxInt)) throw new Error(`maxInt must be a number. recieved ${opts.maxInt}`)\n\n if (isNaN(count) || !(maxInt > count && count >= 0)) {\n throw new Error([\n `when passed, opts.startFrom must be a number between 0 and ${maxInt}.`,\n 'Only the integer part matters.',\n `- got: ${opts.startFrom}`\n ].join('\\n'))\n }\n\n return generate\n\n function generate () {\n let result\n if (count === maxInt) {\n generate.uuid = uuidv4()\n id = baseId(generate.uuid, urlSafe) // rebase\n count = 0\n }\n if (fixedLength) {\n result = id + `0000000000${count}`.slice(-10)\n } else {\n result = id + count\n }\n count = (count + 1) | 0\n return result\n }\n}\n\nfunction baseId (id, urlSafe) {\n const base64Id = Buffer.concat([Buffer.from(parser.parse(id)), base64Padding]).toString('base64')\n if (urlSafe) {\n return base64Id.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '-')\n }\n return base64Id.replace(/=+$/, '/')\n}\n\nfunction decode (id, opts) {\n opts = opts || {}\n const urlSafe = !!opts.urlSafe\n\n if (urlSafe) {\n id = id.replace(/-([^-]*)$/, '/' + '$1')\n .replace(/-/g, '+')\n .replace(/_/g, '/')\n }\n\n if (id.length < 22) {\n return null\n }\n const lastSlashIndex = id.lastIndexOf('/')\n if (lastSlashIndex === -1) {\n return null\n }\n const uuidPart = id.substring(0, lastSlashIndex)\n const countPart = Number(id.substring(lastSlashIndex + 1))\n if (!uuidPart || isNaN(countPart)) {\n return null\n }\n\n const result = {\n uuid: parser.unparse(Buffer.from(uuidPart + '==', 'base64')),\n count: countPart\n }\n\n return result\n}\n\nmodule.exports = hyperid\nmodule.exports.decode = decode\n","'use strict'\n\n// TODO use WebCrypto uuid() if it is available\nconst { v4: uuidv4 } = require('uuid')\nmodule.exports = uuidv4\n","'use strict';\n\n// Maps for number <-> hex string conversion\nvar _byteToHex = [];\nvar _hexToByte = {};\nfor (var i = 0; i < 256; i++) {\n _byteToHex[i] = (i + 0x100).toString(16).substr(1);\n _hexToByte[_byteToHex[i]] = i;\n}\n\n// **`parse()` - Parse a UUID into it's component bytes**\nfunction parse(s, buf, offset) {\n var i = (buf && offset) || 0;\n var ii = 0;\n\n buf = buf || [];\n s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {\n if (ii < 16) { // Don't overflow!\n buf[i + ii++] = _hexToByte[oct];\n }\n });\n\n // Zero out remaining bytes if string was short\n while (ii < 16) {\n buf[i + ii++] = 0;\n }\n\n return buf;\n}\n\n// **`unparse()` - Convert UUID byte array (ala parse()) into a string**\nfunction unparse(buf, offset) {\n var i = offset || 0;\n var bth = _byteToHex;\n return bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]];\n}\n\nmodule.exports = {\n parse: parse,\n unparse: unparse\n};\n","import { writable } from 'svelte/store';\nimport hyperid from 'hyperid';\nimport BigNumber from 'bignumber.js';\n\n// Configure BigNumber\nBigNumber.config({\n DECIMAL_PLACES: 36,\n ROUNDING_MODE: BigNumber.ROUND_DOWN,\n EXPONENTIAL_AT: [-50, 50]\n});\n\n// Initialize hyperid instance\nconst generateId = hyperid();\n\ninterface SwapStatus {\n swapId: string;\n status: string;\n isProcessing: boolean;\n error: string | null;\n lastPayAmount?: BigNumber;\n expectedReceiveAmount?: BigNumber;\n minReceiveAmount?: BigNumber;\n payToken?: FE.Token;\n receiveToken?: FE.Token;\n payDecimals?: number;\n receiveDecimals?: number;\n lastQuote?: any;\n shouldRefreshQuote?: boolean;\n priceImpact?: BigNumber;\n timestamp: number;\n route?: string[];\n fees?: {\n gas: BigNumber;\n lp: BigNumber;\n token?: string;\n };\n pay_symbol?: string;\n receive_symbol?: string;\n pay_amount?: bigint;\n receive_amount?: bigint;\n details?: {\n payAmount: string;\n payToken: FE.Token;\n receiveAmount: string;\n receiveToken: FE.Token;\n };\n}\n\nfunction createSwapStatusStore() {\n const { subscribe, set, update } = writable>({});\n\n return {\n subscribe,\n addSwap: (swapDetails: {\n lastPayAmount?: string | number | BigNumber;\n expectedReceiveAmount?: string | number | BigNumber;\n minReceiveAmount?: string | number | BigNumber;\n payToken?: FE.Token;\n receiveToken?: FE.Token;\n payDecimals?: number;\n receiveDecimals?: number;\n priceImpact?: string | number | BigNumber;\n route?: string[];\n fees?: {\n gas: string | number | BigNumber;\n lp: string | number | BigNumber;\n token?: string;\n };\n }) => {\n const swapId = generateId();\n update(swaps => ({\n ...swaps,\n [swapId]: {\n swapId,\n status: '',\n isProcessing: false,\n error: null,\n shouldRefreshQuote: false,\n timestamp: Date.now(),\n lastPayAmount: swapDetails.lastPayAmount ? new BigNumber(swapDetails.lastPayAmount) : undefined,\n expectedReceiveAmount: swapDetails.expectedReceiveAmount ? new BigNumber(swapDetails.expectedReceiveAmount) : undefined,\n minReceiveAmount: swapDetails.minReceiveAmount ? new BigNumber(swapDetails.minReceiveAmount) : undefined,\n payToken: swapDetails.payToken,\n receiveToken: swapDetails.receiveToken,\n payDecimals: swapDetails.payDecimals,\n receiveDecimals: swapDetails.receiveDecimals,\n priceImpact: swapDetails.priceImpact ? new BigNumber(swapDetails.priceImpact) : undefined,\n route: swapDetails.route,\n fees: swapDetails.fees ? {\n gas: new BigNumber(swapDetails.fees.gas),\n lp: new BigNumber(swapDetails.fees.lp),\n token: swapDetails.fees.token\n } : undefined\n }\n }));\n return swapId;\n },\n\n updateSwap: (swapId: string, updates: Partial<{\n status: string;\n isProcessing: boolean;\n error: string | null;\n payToken: FE.Token;\n receiveToken: FE.Token;\n payDecimals: number;\n payAmount: string | number | BigNumber;\n receiveAmount: string | number | BigNumber;\n receiveDecimals: number;\n lastPayAmount: string | number | BigNumber;\n expectedReceiveAmount: string | number | BigNumber;\n minReceiveAmount: string | number | BigNumber;\n shouldRefreshQuote: boolean;\n lastQuote: any;\n priceImpact: string | number | BigNumber;\n fees: {\n gas: string | number | BigNumber;\n lp: string | number | BigNumber;\n token?: string;\n };\n details: {\n payAmount: string;\n payToken: FE.Token;\n receiveAmount: string;\n receiveToken: FE.Token;\n };\n }>) => {\n update(swaps => {\n const currentSwap = swaps[swapId];\n if (!currentSwap) return swaps;\n\n const updatedSwap = { ...currentSwap };\n\n // Convert numeric values to BigNumber\n if (updates.lastPayAmount !== undefined) {\n updatedSwap.lastPayAmount = new BigNumber(updates.lastPayAmount);\n }\n if (updates.expectedReceiveAmount !== undefined) {\n updatedSwap.expectedReceiveAmount = new BigNumber(updates.expectedReceiveAmount);\n }\n if (updates.minReceiveAmount !== undefined) {\n updatedSwap.minReceiveAmount = new BigNumber(updates.minReceiveAmount);\n }\n if (updates.priceImpact !== undefined) {\n updatedSwap.priceImpact = new BigNumber(updates.priceImpact);\n }\n if (updates.fees) {\n updatedSwap.fees = {\n gas: new BigNumber(updates.fees.gas),\n lp: new BigNumber(updates.fees.lp),\n token: updates.fees.token\n };\n }\n\n // Update non-numeric values\n if (updates.status !== undefined) updatedSwap.status = updates.status;\n if (updates.isProcessing !== undefined) updatedSwap.isProcessing = updates.isProcessing;\n if (updates.error !== undefined) updatedSwap.error = updates.error;\n if (updates.shouldRefreshQuote !== undefined) updatedSwap.shouldRefreshQuote = updates.shouldRefreshQuote;\n if (updates.lastQuote !== undefined) updatedSwap.lastQuote = updates.lastQuote;\n if (updates.payToken !== undefined) updatedSwap.payToken = updates.payToken;\n if (updates.receiveToken !== undefined) updatedSwap.receiveToken = updates.receiveToken;\n if (updates.payDecimals !== undefined) updatedSwap.payDecimals = updates.payDecimals;\n if (updates.receiveDecimals !== undefined) updatedSwap.receiveDecimals = updates.receiveDecimals;\n if (updates.payAmount !== undefined) updatedSwap.lastPayAmount = new BigNumber(updates.payAmount);\n if (updates.receiveAmount !== undefined) updatedSwap.expectedReceiveAmount = new BigNumber(updates.receiveAmount);\n if (updates.details !== undefined) updatedSwap.details = updates.details;\n\n return {\n ...swaps,\n [swapId]: updatedSwap\n };\n });\n },\n\n removeSwap: (swapId: string) => {\n update(swaps => {\n const { [swapId]: _, ...rest } = swaps;\n return rest;\n });\n },\n\n clearOldSwaps: (maxAgeMs: number = 1000 * 60 * 60) => {\n const now = Date.now();\n update(swaps => {\n return Object.fromEntries(\n Object.entries(swaps).filter(([_, swap]) => \n now - swap.timestamp < maxAgeMs\n )\n );\n });\n },\n\n getSwap: (swapId: string) => {\n let currentSwap: SwapStatus | null = null;\n update(swaps => {\n currentSwap = swaps[swapId] || null;\n return swaps;\n });\n return currentSwap;\n },\n\n // Helper method to get formatted amounts\n getFormattedAmounts: (swapId: string) => {\n const swap = this.getSwap(swapId);\n if (!swap) return null;\n\n return {\n payAmount: swap.lastPayAmount?.toFormat(swap.payDecimals || 8),\n receiveAmount: swap.expectedReceiveAmount?.toFormat(swap.receiveDecimals || 8),\n minReceiveAmount: swap.minReceiveAmount?.toFormat(swap.receiveDecimals || 8),\n priceImpact: swap.priceImpact?.toFormat(2),\n fees: swap.fees ? {\n gas: swap.fees.gas.toFormat(swap.receiveDecimals || 8),\n lp: swap.fees.lp.toFormat(swap.receiveDecimals || 8),\n token: swap.fees.token\n } : undefined\n };\n }\n };\n}\n\n// Create and export the store\nexport const swapStatusStore = createSwapStatusStore();\n\n// Export types for use in other files\nexport type { SwapStatus };\n","import { toastStore } from \"$lib/stores/toastStore\";\nimport { swapStatusStore } from \"$lib/stores/swapStore\";\nimport { get } from \"svelte/store\";\nimport { loadBalances } from \"$lib/stores/tokenStore\";\nimport { auth } from \"$lib/stores/auth\";\nimport { SwapService } from \"./SwapService\";\nimport { swapState } from \"./SwapStateService\";\nimport { userTokens } from \"$lib/stores/userTokens\";\n\ninterface SwapStatus {\n status: string;\n pay_amount: bigint;\n pay_symbol: string;\n receive_amount: bigint;\n receive_symbol: string;\n}\n\ninterface SwapResponse {\n Swap: SwapStatus;\n}\n\ninterface RequestStatus {\n reply: SwapResponse;\n statuses: string[];\n}\n\ninterface RequestResponse {\n Ok: RequestStatus[];\n}\n\nexport class SwapMonitor {\n private static FAST_POLLING_INTERVAL = 100; // 100ms polling interval\n private static MAX_ATTEMPTS = 200; // 30 seconds total monitoring time\n private static pollingInterval: NodeJS.Timeout | null = null;\n private static startTime: number;\n\n public static async monitorTransaction(requestId: bigint, swapId: string, toastId: string) {\n this.stopPolling();\n this.startTime = Date.now();\n let attempts = 0;\n let shownStatuses = new Set();\n\n const poll = async () => {\n if (attempts >= this.MAX_ATTEMPTS) {\n this.stopPolling();\n swapStatusStore.updateSwap(swapId, {\n status: \"Timeout\",\n isProcessing: false,\n error: \"Swap timed out\",\n });\n toastStore.error(\"Swap timed out\");\n return;\n }\n\n try {\n const status: RequestResponse = await SwapService.requests([requestId]);\n\n if (status.Ok?.[0]?.reply) {\n const res: RequestStatus = status.Ok[0];\n\n // Only show toast for new status updates\n if (res.statuses && res.statuses.length > 0) { \n for (const status of res.statuses) {\n if (!shownStatuses.has(status)) {\n shownStatuses.add(status);\n \n if (status.toLowerCase() === \"swap success\") {\n toastStore.dismiss(toastId);\n const state = get(swapState);\n const token0 = state.payToken;\n const token1 = state.receiveToken;\n toastStore.success(`Swap of ${token0?.symbol} for ${token1?.symbol} completed successfully`);\n swapState.setShowSuccessModal(true);\n } else if (status === \"Success\") {\n toastStore.info(`Balances updated!`);\n } else if (status.toLowerCase().includes(\"failed\")) {\n toastStore.dismiss(toastId);\n toastStore.error(`${status}`);\n }\n }\n }\n }\n\n if (res.statuses.find((s) => s.includes(\"Failed\"))) {\n this.stopPolling();\n swapStatusStore.updateSwap(swapId, {\n status: \"Error\",\n isProcessing: false,\n error: res.statuses.find((s) => s.includes(\"Failed\")),\n });\n toastStore.dismiss(toastId);\n toastStore.error(res.statuses.find((s) => s.includes(\"Failed\")));\n return;\n }\n\n if (\"Swap\" in res.reply) {\n const swapStatus: SwapStatus = res.reply.Swap;\n swapStatusStore.updateSwap(swapId, {\n status: swapStatus.status,\n isProcessing: true,\n error: null,\n });\n\n if (swapStatus.status === \"Success\") {\n this.stopPolling();\n const token0 = get(userTokens).tokens.find(\n (t) => t.symbol === swapStatus.pay_symbol,\n );\n const token1 = get(userTokens).tokens.find(\n (t) => t.symbol === swapStatus.receive_symbol,\n );\n\n const formattedPayAmount = SwapService.fromBigInt(\n swapStatus.pay_amount,\n token0?.decimals || 0,\n );\n const formattedReceiveAmount = SwapService.fromBigInt(\n swapStatus.receive_amount,\n token1?.decimals || 0,\n );\n\n swapStatusStore.updateSwap(swapId, {\n status: \"Success\",\n isProcessing: false,\n shouldRefreshQuote: true,\n lastQuote: null,\n details: {\n payAmount: formattedPayAmount,\n payToken: token0,\n receiveAmount: formattedReceiveAmount,\n receiveToken: token1,\n },\n });\n\n // Load updated balances\n const tokens = get(userTokens).tokens;\n const payToken = tokens.find(\n (t) => t.symbol === swapStatus.pay_symbol,\n );\n const receiveToken = tokens.find(\n (t) => t.symbol === swapStatus.receive_symbol,\n );\n const walletId = auth?.pnp?.account?.owner?.toString();\n\n if (!payToken || !receiveToken || !walletId) {\n console.error(\"Missing token or wallet info for balance update\");\n return;\n }\n\n try {\n await loadBalances(\n [payToken, receiveToken],\n walletId.toString(),\n true\n );\n } catch (error) {\n console.error(\"Error updating balances:\", error);\n }\n\n return;\n } else if (swapStatus.status === \"Failed\") {\n this.stopPolling();\n swapStatusStore.updateSwap(swapId, {\n status: \"Failed\",\n isProcessing: false,\n error: \"Swap failed\",\n });\n toastStore.error(\"Swap failed\");\n return;\n }\n }\n }\n\n attempts++;\n this.pollingInterval = setTimeout(poll, this.FAST_POLLING_INTERVAL);\n } catch (error) {\n console.error(\"Error monitoring swap:\", error);\n this.stopPolling();\n swapStatusStore.updateSwap(swapId, {\n status: \"Error\",\n isProcessing: false,\n error: \"Failed to monitor swap status\",\n });\n toastStore.error(\"Failed to monitor swap status\");\n return;\n }\n };\n\n // Start polling\n poll();\n }\n\n private static stopPolling() {\n if (this.pollingInterval) {\n clearTimeout(this.pollingInterval);\n this.pollingInterval = null;\n }\n }\n\n // Clean up method to be called when component unmounts\n public static cleanup() {\n this.stopPolling();\n }\n}\n","// src/lib/services/swap/SwapService.ts\nimport { toastStore } from \"$lib/stores/toastStore\";\nimport { Principal } from \"@dfinity/principal\";\nimport BigNumber from \"bignumber.js\";\nimport { IcrcService } from \"$lib/services/icrc/IcrcService\";\nimport { swapStatusStore } from \"$lib/stores/swapStore\";\nimport { auth, canisterIDLs } from \"$lib/stores/auth\";\nimport { KONG_BACKEND_CANISTER_ID } from \"$lib/constants/canisterConstants\";\nimport { requireWalletConnection } from \"$lib/stores/auth\";\nimport { SwapMonitor } from \"./SwapMonitor\";\nimport { fetchTokensByCanisterId } from \"$lib/api/tokens\";\n\ninterface SwapExecuteParams {\n swapId: string;\n payToken: FE.Token;\n payAmount: string;\n receiveToken: FE.Token;\n receiveAmount: string;\n userMaxSlippage: number;\n backendPrincipal: Principal;\n lpFees: any[];\n}\n\ninterface SwapStatus {\n status: string;\n pay_amount: bigint;\n pay_symbol: string;\n receive_amount: bigint;\n receive_symbol: string;\n}\n\ninterface SwapResponse {\n Swap: SwapStatus;\n}\n\ninterface RequestStatus {\n reply: SwapResponse;\n statuses: string[];\n}\n\ninterface RequestResponse {\n Ok: RequestStatus[];\n}\n\ninterface TokenInfo {\n canister_id: string;\n fee?: bigint;\n fee_fixed: bigint;\n icrc1?: boolean;\n icrc2?: boolean;\n}\n\n// Base BigNumber configuration for internal calculations\n// Set this high enough to handle intermediate calculations without loss of precision\nBigNumber.config({\n DECIMAL_PLACES: 36, // High enough for internal calculations\n ROUNDING_MODE: BigNumber.ROUND_DOWN,\n EXPONENTIAL_AT: [-50, 50],\n});\n\nconst BLOCKED_TOKEN_IDS = [];\n\nexport class SwapService {\n private static isValidNumber(value: string | number): boolean {\n if (typeof value === \"number\") {\n return !isNaN(value) && isFinite(value);\n }\n if (typeof value === \"string\") {\n const num = Number(value);\n return !isNaN(num) && isFinite(num);\n }\n return false;\n }\n\n public static toBigInt(\n value: string | number | BigNumber,\n decimals?: number,\n ): bigint {\n try {\n // If decimals provided, handle scaling\n if (decimals !== undefined) {\n const multiplier = new BigNumber(10).pow(decimals);\n\n // If it's a BigNumber instance\n if (value instanceof BigNumber) {\n if (value.isNaN() || !value.isFinite()) {\n console.warn(\"Invalid BigNumber value:\", value);\n return BigInt(0);\n }\n return BigInt(\n value\n .times(multiplier)\n .integerValue(BigNumber.ROUND_DOWN)\n .toString(),\n );\n }\n\n // If it's a string or number\n if (!this.isValidNumber(value)) {\n console.warn(\"Invalid numeric value:\", value);\n return BigInt(0);\n }\n\n const bn = new BigNumber(value);\n if (bn.isNaN() || !bn.isFinite()) {\n console.warn(\"Invalid conversion to BigNumber:\", value);\n return BigInt(0);\n }\n\n return BigInt(\n bn.times(multiplier).integerValue(BigNumber.ROUND_DOWN).toString(),\n );\n }\n\n // Original logic for when no decimals provided\n if (value instanceof BigNumber) {\n return BigInt(value.integerValue(BigNumber.ROUND_DOWN).toString());\n }\n\n if (!this.isValidNumber(value)) {\n return BigInt(0);\n }\n\n const bn = new BigNumber(value);\n return BigInt(bn.integerValue(BigNumber.ROUND_DOWN).toString());\n } catch (error) {\n console.error(\"Error converting to BigInt:\", error);\n return BigInt(0);\n }\n }\n\n public static fromBigInt(amount: bigint, decimals: number): string {\n try {\n const result = new BigNumber(amount.toString())\n .div(new BigNumber(10).pow(decimals))\n .toString();\n return isNaN(Number(result)) ? \"0\" : result;\n } catch {\n return \"0\";\n }\n }\n\n /**\n * Gets swap quote from backend\n */\n public static async swap_amounts(\n payToken: FE.Token,\n payAmount: bigint,\n receiveToken: FE.Token,\n ): Promise {\n try {\n if (!payToken?.canister_id || !receiveToken?.canister_id) {\n throw new Error(\"Invalid tokens provided for swap quote\");\n }\n const actor = await auth.getActor(\n KONG_BACKEND_CANISTER_ID,\n canisterIDLs.kong_backend,\n { anon: true },\n );\n return await actor.swap_amounts(\n \"IC.\" + payToken.canister_id,\n payAmount,\n \"IC.\" + receiveToken.canister_id,\n );\n } catch (error) {\n console.error(\"Error getting swap amounts:\", error);\n throw error;\n }\n }\n\n /**\n * Gets quote details including price, fees, etc.\n */\n public static async getQuoteDetails(params: {\n payToken: FE.Token;\n payAmount: bigint;\n receiveToken: FE.Token;\n }): Promise<{\n receiveAmount: string;\n price: string;\n usdValue: string;\n lpFee: String;\n gasFee: String;\n tokenFee?: String;\n slippage: number;\n }> {\n const quote = await SwapService.swap_amounts(\n params.payToken,\n params.payAmount,\n params.receiveToken,\n );\n\n if (!(\"Ok\" in quote)) {\n throw new Error(quote.Err);\n }\n\n const tokens = await fetchTokensByCanisterId([params.payToken.canister_id, params.receiveToken.canister_id]);\n const receiveToken = tokens.find(\n (t) => t.canister_id === params.receiveToken.canister_id,\n );\n const payToken = tokens.find((t) => t.canister_id === params.payToken.canister_id);\n if (!receiveToken) throw new Error(\"Receive token not found\");\n\n const receiveAmount = SwapService.fromBigInt(\n quote.Ok.receive_amount,\n receiveToken.decimals,\n );\n\n let lpFee = \"0\";\n let gasFee = \"0\";\n let tokenFee = \"0\";\n\n if (quote.Ok.txs.length > 0) {\n const tx = quote.Ok.txs[0];\n lpFee = SwapService.fromBigInt(tx.lp_fee, receiveToken.decimals);\n gasFee = SwapService.fromBigInt(tx.gas_fee, receiveToken.decimals);\n tokenFee = payToken.fee_fixed.toString();\n }\n\n return {\n receiveAmount,\n price: quote.Ok.price.toString(),\n usdValue: new BigNumber(receiveAmount).times(quote.Ok.price).toFormat(2),\n lpFee,\n gasFee,\n tokenFee,\n slippage: quote.Ok.slippage,\n };\n }\n\n /**\n * Executes swap asynchronously\n */\n public static async swap_async(params: {\n pay_token: string;\n pay_amount: bigint;\n receive_token: string;\n receive_amount: bigint[];\n max_slippage: number[];\n receive_address?: string[];\n referred_by?: string[];\n pay_tx_id?: { BlockIndex: number }[];\n }): Promise {\n try {\n const actor = auth.pnp.getActor(\n KONG_BACKEND_CANISTER_ID,\n canisterIDLs.kong_backend,\n {\n anon: false,\n requiresSigning: auth.pnp.activeWallet.id === \"plug\",\n },\n );\n const result = await actor.swap_async(params);\n return result;\n } catch (error) {\n console.error(\"Error in swap_async:\", error);\n throw error;\n }\n }\n\n /**\n * Gets request status\n */\n public static async requests(requestIds: bigint[]): Promise {\n try {\n const actor = await auth.pnp.getActor(\n KONG_BACKEND_CANISTER_ID,\n canisterIDLs.kong_backend,\n { anon: true },\n );\n const result = await actor.requests(requestIds);\n return result;\n } catch (error) {\n console.error(\"Error getting request status:\", error);\n throw error;\n }\n }\n\n /**\n * Executes complete swap flow\n */\n public static async executeSwap(\n params: SwapExecuteParams,\n ): Promise {\n const swapId = params.swapId;\n try {\n // Add check for blocked tokens at the start\n if (BLOCKED_TOKEN_IDS.includes(params.payToken.canister_id) || \n BLOCKED_TOKEN_IDS.includes(params.receiveToken.canister_id)) {\n toastStore.warning(\n \"BIL token is currently in read-only mode. Trading will resume when the ledger is stable.\",\n {\n title: \"Token Temporarily Unavailable\",\n duration: 8000\n }\n );\n swapStatusStore.updateSwap(swapId, {\n status: \"Failed\",\n isProcessing: false,\n error: \"Token temporarily unavailable\"\n });\n return false;\n }\n\n requireWalletConnection();\n const payToken = params.payToken\n\n if (!payToken) {\n console.error(\"Pay token not found:\", params.payToken);\n throw new Error(`Pay token ${params.payToken.symbol} not found`);\n }\n\n const payAmount = SwapService.toBigInt(\n params.payAmount,\n payToken.decimals,\n );\n\n const receiveToken = params.receiveToken\n\n if (!receiveToken) {\n console.error(\"Receive token not found:\", params.receiveToken);\n throw new Error(\n `Receive token ${params.receiveToken.symbol} not found`,\n );\n }\n\n let txId: bigint | false;\n let approvalId: bigint | false;\n const toastId = toastStore.info(\n `Swapping ${params.payAmount} ${params.payToken.symbol} to ${params.receiveAmount} ${params.receiveToken.symbol}...`,\n { duration: 20000 },\n );\n if (payToken.icrc2) {\n const requiredAllowance = payAmount;\n approvalId = await IcrcService.checkAndRequestIcrc2Allowances(\n payToken,\n requiredAllowance,\n );\n } else if (payToken.icrc1) {\n const result = await IcrcService.transfer(\n payToken,\n params.backendPrincipal,\n payAmount,\n { fee: BigInt(payToken.fee_fixed) },\n );\n\n if (result?.Ok) {\n txId = result.Ok;\n } else {\n txId = false;\n }\n } else {\n throw new Error(\n `Token ${payToken.symbol} does not support ICRC1 or ICRC2`,\n );\n }\n\n if (txId === false || approvalId === false) {\n swapStatusStore.updateSwap(swapId, {\n status: \"Failed\",\n isProcessing: false,\n error: \"Transaction failed during transfer/approval\",\n });\n toastStore.error(\"Transaction failed during transfer/approval\");\n return false;\n }\n\n const swapParams = {\n pay_token: \"IC.\" + params.payToken.address,\n pay_amount: BigInt(payAmount),\n receive_token: \"IC.\" + params.receiveToken.address,\n receive_amount: [],\n max_slippage: [params.userMaxSlippage],\n receive_address: [],\n referred_by: [],\n pay_tx_id: txId ? [{ BlockIndex: Number(txId) }] : [],\n };\n\n const result = await SwapService.swap_async(swapParams);\n\n if (result.Ok) {\n SwapMonitor.monitorTransaction(result?.Ok, swapId, toastId);\n } else {\n console.error(\"Swap error:\", result.Err);\n return false;\n }\n return result.Ok;\n } catch (error) {\n swapStatusStore.updateSwap(swapId, {\n status: \"Failed\",\n isProcessing: false,\n error: error instanceof Error ? error.message : \"Swap failed\",\n });\n console.error(\"Swap execution failed:\", error);\n toastStore.error(error instanceof Error ? error.message : \"Swap failed\");\n return false;\n }\n }\n\n /**\n * Fetches the swap quote based on the provided amount and tokens.\n */\n public static async getSwapQuote(\n payToken: FE.Token,\n receiveToken: FE.Token,\n payAmount: string,\n ): Promise<{ receiveAmount: string; slippage: number }> {\n try {\n // Add check for blocked tokens at the start\n if (BLOCKED_TOKEN_IDS.includes(payToken.canister_id) || \n BLOCKED_TOKEN_IDS.includes(receiveToken.canister_id)) {\n throw new Error(\"Token temporarily unavailable - BIL is in read-only mode\");\n }\n\n // Validate input amount\n if (!payAmount || isNaN(Number(payAmount))) {\n console.warn(\"Invalid pay amount:\", payAmount);\n return {\n receiveAmount: \"0\",\n slippage: 0,\n };\n }\n\n // Convert amount to BigInt with proper decimal handling\n const payAmountBN = new BigNumber(payAmount);\n const payAmountInTokens = this.toBigInt(payAmountBN, payToken.decimals);\n\n const quote = await this.swap_amounts(\n payToken,\n payAmountInTokens,\n receiveToken,\n );\n\n if (\"Ok\" in quote) {\n // Get decimals synchronously from the token object\n const receiveDecimals = receiveToken.decimals;\n const receivedAmount = this.fromBigInt(\n quote.Ok.receive_amount,\n receiveDecimals,\n );\n\n return {\n receiveAmount: receivedAmount,\n slippage: quote.Ok.slippage,\n };\n } else if (\"Err\" in quote) {\n throw new Error(quote.Err);\n }\n\n throw new Error(\"Invalid quote response\");\n } catch (err) {\n console.error(\"Error fetching swap quote:\", err);\n throw err;\n }\n }\n\n /**\n * Calculates the maximum transferable amount of a token, considering fees.\n *\n * @param tokenInfo - Information about the token, including fees and canister ID.\n * @param formattedBalance - The user's available balance of the token as a string.\n * @param decimals - Number of decimal places the token supports.\n * @param isIcrc1 - Boolean indicating if the token follows the ICRC1 standard.\n * @returns A BigNumber representing the maximum transferable amount.\n */\n public static calculateMaxAmount(\n tokenInfo: TokenInfo,\n formattedBalance: string,\n decimals: number = 8,\n isIcrc1: boolean = false,\n ): BigNumber {\n const SCALE_FACTOR = new BigNumber(10).pow(decimals);\n const balance = new BigNumber(formattedBalance);\n\n // Calculate base fee. If fee is undefined, default to 0.\n const baseFee = tokenInfo.fee_fixed\n ? new BigNumber(tokenInfo.fee_fixed.toString()).dividedBy(SCALE_FACTOR)\n : new BigNumber(0);\n\n // Calculate gas fee based on token standard\n const gasFee = isIcrc1 ? baseFee : baseFee.multipliedBy(2);\n\n // Ensure that the max amount is not negative\n const maxAmount = balance.minus(gasFee);\n return BigNumber.maximum(maxAmount, new BigNumber(0));\n }\n}\n","import { writable, derived, type Readable } from 'svelte/store';\nimport type { Writable } from 'svelte/store';\nimport { fromTokenDecimals } from '$lib/stores/tokenStore';\nimport { SwapService } from './SwapService';\nimport { get } from 'svelte/store';\nimport { KONG_LEDGER_CANISTER_ID, CKUSDT_CANISTER_ID, ICP_CANISTER_ID } from '$lib/constants/canisterConstants';\nimport { BigNumber } from 'bignumber.js';\nimport { livePools } from '$lib/stores/poolStore';\nimport { fetchTokensByCanisterId } from '$lib/api/tokens';\n\nexport interface SwapState {\n payToken: FE.Token | null;\n receiveToken: FE.Token | null;\n payAmount: string;\n receiveAmount: string;\n isCalculating: boolean;\n isProcessing: boolean;\n error: string | null;\n tokenSelectorOpen: 'pay' | 'receive' | null;\n tokenSelectorPosition: { x: number; y: number; windowWidth: number } | null;\n showPayTokenSelector: boolean;\n showReceiveTokenSelector: boolean;\n showConfirmation: boolean;\n showSuccessModal: boolean;\n gasFees: string[];\n lpFees: string[];\n swapSlippage: number;\n routingPath: string[];\n manuallySelectedTokens: {\n pay: boolean;\n receive: boolean;\n };\n successDetails: {\n payAmount: string;\n payToken: FE.Token | null;\n receiveAmount: string;\n receiveToken: FE.Token | null;\n principalId: string;\n } | null;\n}\n\nexport interface SwapStore extends Writable {\n isInputExceedingBalance: Readable;\n initializeTokens(initialFromToken: FE.Token | null, initialToToken: FE.Token | null): Promise;\n setPayAmount(amount: string): void;\n setReceiveAmount(amount: string): void;\n setPayToken(token: FE.Token | null): void;\n setReceiveToken(token: FE.Token | null): void;\n setIsProcessing(isProcessing: boolean): void;\n setShowConfirmation(show: boolean): void;\n setShowSuccessModal(show: boolean): void;\n setError(error: string | null): void;\n updateSuccessDetails(details: SwapState['successDetails']): void;\n reset(): void;\n toggleTokenSelector(type: 'pay' | 'receive'): void;\n closeTokenSelector(): void;\n setToken(type: 'pay' | 'receive', token: FE.Token | null): void;\n}\n\nfunction createSwapStore(): SwapStore {\n const initialState: SwapState = {\n payToken: null,\n receiveToken: null,\n payAmount: '',\n receiveAmount: '',\n isCalculating: false,\n isProcessing: false,\n error: null,\n tokenSelectorOpen: null,\n tokenSelectorPosition: null,\n showPayTokenSelector: false,\n showReceiveTokenSelector: false,\n showConfirmation: false,\n showSuccessModal: false,\n gasFees: [],\n lpFees: [],\n swapSlippage: 0,\n routingPath: [],\n manuallySelectedTokens: {\n pay: false,\n receive: false\n },\n successDetails: null\n };\n\n const { subscribe, set, update } = writable(initialState);\n\n // Create a store for the swap state\n const swapStore = { subscribe };\n\n // Create a local balances store to avoid import issues\n const localBalancesStore = writable>({});\n \n // Create a derived store using the local balances store\n const isInputExceedingBalance = derived(\n [localBalancesStore, swapStore],\n ([$balances, $swapState]) => {\n // Check if necessary values are present\n if (!$balances || !$swapState?.payToken || !$swapState?.payAmount) {\n return false;\n }\n \n // Safely access properties with optional chaining\n const balance = $balances[$swapState.payToken.canister_id] ?? BigInt(0);\n const payAmountBN = new BigNumber($swapState.payAmount || '0');\n const payAmountInTokens = fromTokenDecimals(payAmountBN, $swapState.payToken.decimals);\n return Number(payAmountInTokens) > Number(balance);\n }\n );\n\n const store: SwapStore = {\n subscribe,\n set,\n update,\n isInputExceedingBalance,\n\n async initializeTokens(initialFromToken: FE.Token | null, initialToToken: FE.Token | null) {\n // If no initial tokens are provided, use defaults: ICP and CKUSDT\n const tokenIds = (initialFromToken || initialToToken) ? [initialFromToken?.canister_id, initialToToken?.canister_id] : [ICP_CANISTER_ID, KONG_LEDGER_CANISTER_ID];\n const tokens = await fetchTokensByCanisterId(tokenIds);\n \n // If we have initial tokens, use them directly\n if (initialFromToken && initialToToken) {\n update(state => ({\n ...state,\n payToken: initialFromToken,\n receiveToken: initialToToken,\n manuallySelectedTokens: {\n pay: true,\n receive: true\n }\n }));\n return;\n }\n\n // If we have tokens loaded, set defaults\n if (tokens.length > 0) {\n const defaultPayToken = tokens.find(t => t.canister_id === ICP_CANISTER_ID);\n const defaultReceiveToken = tokens.find(t => t.canister_id === KONG_LEDGER_CANISTER_ID);\n\n update(state => ({\n ...state,\n payToken: initialFromToken || defaultPayToken || null,\n receiveToken: initialToToken || defaultReceiveToken || null,\n manuallySelectedTokens: {\n pay: !!initialFromToken,\n receive: !!initialToToken\n }\n }));\n }\n },\n\n async setPayAmount(amount: string) {\n update(state => ({ \n ...state, \n payAmount: amount,\n isCalculating: true,\n error: null\n }));\n\n const currentState = get({ subscribe });\n if (!currentState.payToken || !currentState.receiveToken || !amount || isNaN(Number(amount))) {\n update(state => ({\n ...state,\n receiveAmount: '',\n isCalculating: false,\n error: null\n }));\n return;\n }\n\n try {\n const pools = get(livePools);\n const hasValidPool = pools.some(pool => \n (pool.symbol_0 === currentState.payToken?.symbol && pool.symbol_1 === currentState.receiveToken?.symbol) ||\n (pool.symbol_0 === currentState.receiveToken?.symbol && pool.symbol_1 === currentState.payToken?.symbol)\n );\n\n const quote = await SwapService.getSwapQuote(\n currentState.payToken,\n currentState.receiveToken,\n amount\n );\n\n update(state => ({\n ...state,\n receiveAmount: quote.receiveAmount,\n swapSlippage: quote.slippage,\n isCalculating: false,\n error: null\n }));\n } catch (error) {\n update(state => ({\n ...state,\n receiveAmount: '',\n error: error instanceof Error ? error.message : 'Failed to calculate swap',\n isCalculating: false\n }));\n }\n },\n\n setReceiveAmount(amount: string) {\n // No-op since receive panel input is disabled\n return;\n },\n\n setPayToken(token: FE.Token | null) {\n update(state => ({ ...state, payToken: token }));\n },\n\n setReceiveToken(token: FE.Token | null) {\n update(state => ({ ...state, receiveToken: token }));\n },\n\n setIsProcessing(isProcessing: boolean) {\n update(state => ({ ...state, isProcessing }));\n },\n\n setShowConfirmation(show: boolean) {\n update(state => ({ ...state, showConfirmation: show }));\n },\n\n setShowSuccessModal(show: boolean) {\n console.log(\"Setting showSuccessModal to:\", show);\n update(state => {\n console.log(\"Previous state showSuccessModal:\", state.showSuccessModal);\n const newState = { ...state, showSuccessModal: show };\n console.log(\"New state showSuccessModal:\", newState.showSuccessModal);\n return newState;\n });\n },\n\n setError(error: string | null) {\n update(state => ({ ...state, error }));\n },\n\n updateSuccessDetails(details: SwapState['successDetails']) {\n update(state => ({\n ...state,\n successDetails: details\n }));\n },\n\n reset() {\n set(initialState);\n },\n\n toggleTokenSelector(type: 'pay' | 'receive') {\n update(state => ({\n ...state,\n tokenSelectorOpen: state.tokenSelectorOpen === type ? null : type\n }));\n },\n\n closeTokenSelector() {\n update(state => ({\n ...state,\n tokenSelectorOpen: null\n }));\n },\n\n setToken(type: 'pay' | 'receive', token: FE.Token | null) {\n if (type === 'pay') {\n update(state => ({ ...state, payToken: token }));\n } else {\n update(state => ({ ...state, receiveToken: token }));\n }\n },\n };\n\n return store;\n}\n\nexport const swapState = createSwapStore();\n","\n\n\n\n\n \n
\n \n
\n
\n \n \n \n \n \n \n {props.token.symbol}\n
\n {props.token.name}\n
\n
\n\n \n
\n {#if props.isApiToken}\n \n \n {#if props.enablingTokenId === props.token.canister_id}\n
\n {:else}\n Enable\n {/if}\n \n {:else if props.balance}\n \n \n {#if props.balance.loading}\n
\n
\n
\n {:else}\n {props.balance.tokens}\n \n {props.balance.usd}\n \n {/if}\n
\n \n {#if props.currentToken?.canister_id === props.token.canister_id}\n
\n \n \n \n
\n {/if}\n {/if}\n
\n
\n\n ","interface VirtualScrollOptions {\n items: T[];\n containerHeight: number;\n scrollTop: number;\n itemHeight: number;\n buffer?: number;\n}\n\ninterface VirtualScrollResult {\n visible: { index: number; item: T }[];\n startOffset: number;\n}\n\nexport function virtualScroll({\n items,\n containerHeight,\n scrollTop,\n itemHeight,\n buffer = 5\n}: VirtualScrollOptions): VirtualScrollResult {\n if (!containerHeight || !items.length) {\n return { visible: [], startOffset: 0 };\n }\n\n const startIndex = Math.max(0, Math.floor(scrollTop / itemHeight) - buffer);\n const visibleCount = Math.ceil(containerHeight / itemHeight) + 2 * buffer;\n const endIndex = Math.min(items.length, startIndex + visibleCount);\n\n const visible = items\n .slice(startIndex, endIndex)\n .map((item, i) => ({ \n index: startIndex + i, \n item \n }));\n\n return {\n visible,\n startOffset: startIndex * itemHeight\n };\n} ","\n\n{#if show}\n
\n \n
\n
\n

Tokens

\n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n\n \n
\n
\n {#each FILTER_TABS as tab}\n setStandardFilter(tab.id as FilterType)}\n class=\"flex-1 px-3 py-2 flex items-center justify-center gap-2 text-kong-text-secondary text-sm relative transition-all duration-200 font-medium bg-kong-bg-light/30 rounded-2xl {state.standardFilter === tab.id ? 'text-white font-semibold bg-kong-primary text-kong-bg-light hover:bg-kong-primary' : 'hover:bg-kong-bg-light/60'}\"\n aria-label=\"Show {tab.label.toLowerCase()} tokens\"\n >\n {tab.label}\n \n {getTabCount(tab.id)}\n \n \n {/each}\n
\n
\n
\n\n \n \n
\n \n {#if enabledFilteredTokens.length > 0}\n
\n
\n {#each enabledTokensVirtualState.visible as { item: token, index }, i (token.canister_id)}\n \n handleTokenClick(e, token)}\n onFavoriteClick={(e) => handleFavoriteClick(e, token)}\n onEnableClick={(e) => handleEnableToken(e, token)}\n />\n
\n {/each}\n
\n
\n {/if}\n\n \n {#if apiFilteredTokens.length > 0 || state.isSearching}\n
\n
\n Available Tokens\n
\n \n {#if state.isSearching}\n
\n \n Searching...\n
\n {:else}\n
\n {#each apiTokensVirtualState.visible as { item: token, index }, i (token.canister_id)}\n \n e.stopPropagation()}\n onFavoriteClick={(e) => handleFavoriteClick(e, token)}\n onEnableClick={(e) => handleEnableToken(e, token)}\n />\n
\n {/each}\n
\n {/if}\n
\n {/if}\n \n \n
\n \n
\n \n {#if filteredTokens.length === 0}\n
\n No tokens found\n
\n {/if}\n
\n
\n \n \n \n \n{/if}\n\n\n\n\n state.isAddNewTokenModalOpen = false}\n on:tokenAdded={handleCustomTokenAdded}\n/>\n"],"names":["getRandomValues","rnds8","Uint8Array","rng","crypto","bind","msCrypto","Error","REGEX","validate","uuid","test","_nodeId","_clockseq","byteToHex","i","push","toString","substr","stringify","arr","offset","arguments","length","toLowerCase","TypeError","_lastMSecs","_lastNSecs","parse","v","parseInt","slice","v35","name","version","hashfunc","generateUUID","value","namespace","buf","str","unescape","encodeURIComponent","bytes","charCodeAt","stringToBytes","set","err","DNS","URL","getOutputLength","inputLength8","safeAdd","x","y","lsw","md5cmn","q","a","b","s","t","num","cnt","md5ff","c","d","md5gg","md5hh","md5ii","v3","msg","input","output","length32","hexTab","hex","charAt","md5ToHexEncodedArray","len","olda","oldb","oldc","oldd","wordsToMd5","length8","Uint32Array","bytesToWords","f","z","ROTL","n","v5","K","H","Array","isArray","prototype","call","l","N","Math","ceil","M","_i","j","pow","floor","_i2","W","_t","e","_t2","T","options","node","clockseq","seedBytes","random","msecs","Date","now","nsecs","dt","tl","tmh","rnds","base64","require$$0","ieee754","require$$1","customInspectSymbol","Symbol","exports","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","Object","setPrototypeOf","arg","encodingOrOffset","allocUnsafe","from","string","encoding","isEncoding","byteLength","actual","write","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","obj","isBuffer","checked","numberIsNaN","type","data","fromObject","toPrimitive","assertSize","size","array","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","end","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","val","dir","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","hexWrite","Number","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","concat","list","pos","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","split","base64clean","src","dst","constructor","alphabet","table","i16","uuidv4","v4","uuidBrowser","parser","_byteToHex","_hexToByte","uuidParse","ii","oct","unparse","bth","require$$2","require$$3","loadBuffer","base64Padding","baseId","id","urlSafe","base64Id","decode","opts","lastSlashIndex","uuidPart","substring","countPart","isNaN","count","hyperidModule","fixedLength","maxInt","generate","startFrom","join","result","BigNumber","config","DECIMAL_PLACES","ROUNDING_MODE","ROUND_DOWN","EXPONENTIAL_AT","generateId","hyperid","swapStatusStore","subscribe","update","writable","addSwap","swapDetails","swapId","swaps","status","isProcessing","shouldRefreshQuote","timestamp","lastPayAmount","expectedReceiveAmount","minReceiveAmount","payToken","receiveToken","payDecimals","receiveDecimals","priceImpact","route","fees","gas","lp","token","updateSwap","updates","currentSwap","updatedSwap","lastQuote","payAmount","receiveAmount","details","removeSwap","_","rest","clearOldSwaps","maxAgeMs","fromEntries","entries","filter","getSwap","getFormattedAmounts","_a","toFormat","_b","_c","_d","createSwapStatusStore","SwapMonitor","monitorTransaction","requestId","toastId","stopPolling","startTime","attempts","shownStatuses","Set","poll","async","MAX_ATTEMPTS","toastStore","SwapService","requests","Ok","reply","statuses","has","add","dismiss","state","swapState","token0","token1","success","symbol","setShowSuccessModal","info","find","swapStatus","Swap","userTokens","tokens","pay_symbol","receive_symbol","formattedPayAmount","fromBigInt","pay_amount","decimals","formattedReceiveAmount","receive_amount","walletId","_f","_e","auth","pnp","account","owner","loadBalances","pollingInterval","setTimeout","FAST_POLLING_INTERVAL","clearTimeout","cleanup","__publicField","BLOCKED_TOKEN_IDS","isValidNumber","toBigInt","multiplier","warn","BigInt","times","integerValue","bn","amount","div","swap_amounts","canister_id","actor","getActor","KONG_BACKEND_CANISTER_ID","canisterIDLs","kong_backend","anon","getQuoteDetails","params","quote","Err","fetchTokensByCanisterId","lpFee","gasFee","tokenFee","txs","tx","lp_fee","gas_fee","fee_fixed","price","usdValue","slippage","swap_async","requiresSigning","activeWallet","requestIds","executeSwap","warning","title","duration","requireWalletConnection","txId","approvalId","icrc2","requiredAllowance","IcrcService","checkAndRequestIcrc2Allowances","icrc1","transfer","backendPrincipal","fee","swapParams","pay_token","address","receive_token","max_slippage","userMaxSlippage","receive_address","referred_by","pay_tx_id","BlockIndex","message","getSwapQuote","payAmountBN","payAmountInTokens","calculateMaxAmount","tokenInfo","formattedBalance","isIcrc1","SCALE_FACTOR","balance","baseFee","dividedBy","multipliedBy","maxAmount","minus","maximum","initialState","isCalculating","tokenSelectorOpen","tokenSelectorPosition","showPayTokenSelector","showReceiveTokenSelector","showConfirmation","showSuccessModal","gasFees","lpFees","swapSlippage","routingPath","manuallySelectedTokens","pay","receive","successDetails","swapStore","localBalancesStore","isInputExceedingBalance","derived","$balances","$swapState","fromTokenDecimals","initializeTokens","initialFromToken","initialToToken","tokenIds","ICP_CANISTER_ID","KONG_LEDGER_CANISTER_ID","defaultPayToken","defaultReceiveToken","setPayAmount","currentState","livePools","some","pool","symbol_0","symbol_1","setReceiveAmount","setPayToken","setReceiveToken","setIsProcessing","setShowConfirmation","show","log","newState","setError","updateSuccessDetails","reset","toggleTokenSelector","closeTokenSelector","setToken","createSwapStore","isFavorite","enablingTokenId","$$props","consequent","$$render","alternate","onEnableClick","$$args","$.set_text","text_3","set_text","text_4","usd","loading","consequent_2","alternate_1","currentToken","consequent_3","consequent_4","isApiToken","consequent_1","alternate_2","selected","disabled","otherPanelToken","text","text_1","blockedTokenIds","onFavoriteClick","onTokenClick","virtualScroll","items","containerHeight","scrollTop","itemHeight","visible","startOffset","startIndex","visibleCount","endIndex","map","item","index","props","$.rest_props","onSelect","onClose","expandDirection","allowedCanisterIds","restrictToSecondaryTokens","TOKEN_ITEM_HEIGHT","SECONDARY_TOKEN_IDS","FILTER_TABS","label","getTokenId","loadBalancesDebounceTimer","scrollDebounceTimer","searchInput","dropdownElement","scrollContainer","$.proxy","searchQuery","hideZeroBalances","isMobile","sortDirection","sortColumn","standardFilter","isSearching","isAddNewTokenModalOpen","favoritesLoaded","favoriteTokens","Map","loadedTokens","apiSearchResults","$userTokens","tokenData","values","tokenId","enabledTokens","isFavoriteToken","canSelectToken","$.user_effect","$currentUserBalancesStore","keys","forEach","state$1","baseFilteredTokens","$.derived","$.get","isUserAuthenticated","isAuthenticated","allTokensCount","ckTokensCount","startsWith","favoritesCount","Boolean","getFilteredAndSortedTokens","allTokens","apiTokens","uniqueTokens","query","hideZero","favorites","sortCol","sortDir","balances","in_tokens","sort","aFavorite","bFavorite","aBalance","in_usd","bBalance","aValue","bValue","filteredTokens","enabledFilteredTokens","isTokenEnabled","apiFilteredTokens","enabledTokensVirtualState","apiTokensVirtualState","handleScroll","loadVisibleTokenBalances","handleClickOutside","event","contains","handleKeydown","key","closeWithCleanup","handleFavoriteClick","preventDefault","stopPropagation","favoriteStore","removeFavorite","addFavorite","handleSelect","enableToken","handleEnableToken","principal","$auth","refreshSingleBalance","tokensNeedingBalances","debouncedApiSearch","debounce","fetchTokens","search","window","innerWidth","handleResize","addEventListener","removeEventListener","browser","loadFavorites","newFavorites","promises","Promise","all","focus","onDestroy","bind_this","$$value","$.set","$.each","div_8","tab","tabId","getTabCount","setStandardFilter","$$anchor","$$item","expression","formatBalance","formatUsdValue","MouseEvent","handleTokenClick","div_9","div_1","$.template_effect","$.set_class","bind_value","$.bind_element_size","opacity","easing","cubicOut","newToken","detail"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}