{"version":3,"file":"static/chunks/1070.2cc57d0f1a52f61f.js","mappings":"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","sources":["webpack://_N_E/./node_modules/detect-browser/es/index.js","webpack://_N_E/./node_modules/@walletconnect/browser-utils/dist/esm/browser.js","webpack://_N_E/./node_modules/@walletconnect/browser-utils/dist/esm/json.js","webpack://_N_E/./node_modules/@walletconnect/browser-utils/dist/esm/local.js","webpack://_N_E/./node_modules/@walletconnect/browser-utils/dist/esm/mobile.js","webpack://_N_E/./node_modules/@walletconnect/browser-utils/dist/esm/registry.js","webpack://_N_E/./node_modules/@walletconnect/browser-utils/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/environment/dist/cjs/crypto.js","webpack://_N_E/./node_modules/@walletconnect/environment/dist/cjs/env.js","webpack://_N_E/./node_modules/@walletconnect/environment/dist/cjs/index.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-provider/dist/esm/provider.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-provider/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-http-connection/dist/esm/http.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-http-connection/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/constants.js","webpack://_N_E/./node_modules/@walletconnect/encoding/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/encoding.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/misc.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/validators.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/ethereum.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/payload.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/url.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/session.js","webpack://_N_E/./node_modules/@walletconnect/utils/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/socket-transport/dist/esm/network.js","webpack://_N_E/./node_modules/@walletconnect/socket-transport/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/core/dist/esm/errors.js","webpack://_N_E/./node_modules/@walletconnect/core/dist/esm/events.js","webpack://_N_E/./node_modules/@walletconnect/core/dist/esm/storage.js","webpack://_N_E/./node_modules/@walletconnect/core/dist/esm/url.js","webpack://_N_E/./node_modules/@walletconnect/core/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/randombytes/dist/esm/browser/index.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/constants/length.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/constants/default.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/constants/operations.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/constants/index.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/lib/browser.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/browser/aes.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/helpers/env.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/helpers/pkcs7.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/helpers/index.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/browser/hmac.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/browser/sha2.js","webpack://_N_E/./node_modules/@walletconnect/crypto/dist/esm/browser/index.js","webpack://_N_E/./node_modules/@walletconnect/iso-crypto/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/client/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/signer-connection/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/ethereum-provider/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-types/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-types/dist/esm/jsonrpc.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-types/dist/esm/misc.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-types/dist/esm/provider.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-types/dist/esm/validator.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/env.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/types.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/url.js","webpack://_N_E/./node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","webpack://_N_E/./node_modules/@walletconnect/qrcode-modal/dist/cjs/index.js","webpack://_N_E/./node_modules/@walletconnect/qrcode-modal/node_modules/preact/dist/preact.module.js","webpack://_N_E/./node_modules/@walletconnect/qrcode-modal/node_modules/preact/hooks/dist/hooks.module.js","webpack://_N_E/./node_modules/@walletconnect/qrcode-modal/node_modules/preact/compat/dist/compat.module.js","webpack://_N_E/./node_modules/@walletconnect/safe-json/dist/esm/index.js","webpack://_N_E/./node_modules/@walletconnect/utils/node_modules/bn.js/lib/bn.js","webpack://_N_E/./node_modules/@walletconnect/window-getters/dist/cjs/index.js","webpack://_N_E/./node_modules/@walletconnect/window-metadata/dist/cjs/index.js","webpack://_N_E/./node_modules/copy-to-clipboard/index.js","webpack://_N_E/./node_modules/decode-uri-component/index.js","webpack://_N_E/./node_modules/dijkstrajs/dijkstra.js","webpack://_N_E/./node_modules/is-typedarray/index.js","webpack://_N_E/./node_modules/qrcode/lib/browser.js","webpack://_N_E/./node_modules/qrcode/lib/can-promise.js","webpack://_N_E/./node_modules/qrcode/lib/core/alignment-pattern.js","webpack://_N_E/./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/bit-buffer.js","webpack://_N_E/./node_modules/qrcode/lib/core/bit-matrix.js","webpack://_N_E/./node_modules/qrcode/lib/core/byte-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/error-correction-code.js","webpack://_N_E/./node_modules/qrcode/lib/core/error-correction-level.js","webpack://_N_E/./node_modules/qrcode/lib/core/finder-pattern.js","webpack://_N_E/./node_modules/qrcode/lib/core/format-info.js","webpack://_N_E/./node_modules/qrcode/lib/core/galois-field.js","webpack://_N_E/./node_modules/qrcode/lib/core/kanji-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/mask-pattern.js","webpack://_N_E/./node_modules/qrcode/lib/core/mode.js","webpack://_N_E/./node_modules/qrcode/lib/core/numeric-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/polynomial.js","webpack://_N_E/./node_modules/qrcode/lib/core/qrcode.js","webpack://_N_E/./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack://_N_E/./node_modules/qrcode/lib/core/regex.js","webpack://_N_E/./node_modules/qrcode/lib/core/segments.js","webpack://_N_E/./node_modules/qrcode/lib/core/utils.js","webpack://_N_E/./node_modules/qrcode/lib/core/version-check.js","webpack://_N_E/./node_modules/qrcode/lib/core/version.js","webpack://_N_E/./node_modules/qrcode/lib/renderer/canvas.js","webpack://_N_E/./node_modules/qrcode/lib/renderer/svg-tag.js","webpack://_N_E/./node_modules/qrcode/lib/renderer/utils.js","webpack://_N_E/./node_modules/qrcode/lib/utils/typedarray-buffer.js","webpack://_N_E/./node_modules/qrcode/node_modules/buffer/index.js","webpack://_N_E/./node_modules/qrcode/node_modules/isarray/index.js","webpack://_N_E/./node_modules/query-string/index.js","webpack://_N_E/./node_modules/split-on-first/index.js","webpack://_N_E/./node_modules/strict-uri-encode/index.js","webpack://_N_E/./node_modules/toggle-selection/index.js","webpack://_N_E/./node_modules/typedarray-to-buffer/index.js","webpack://_N_E/./node_modules/ws/browser.js","webpack://_N_E/"],"sourcesContent":["var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FBAV\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","import * as windowMetadata from \"@walletconnect/window-metadata\";\nimport * as windowGetters from \"@walletconnect/window-getters\";\nimport { detect, } from \"detect-browser\";\nexport function detectEnv(userAgent) {\n return detect(userAgent);\n}\nexport function detectOS() {\n const env = detectEnv();\n return env && env.os ? env.os : undefined;\n}\nexport function isAndroid() {\n const os = detectOS();\n return os ? os.toLowerCase().includes(\"android\") : false;\n}\nexport function isIOS() {\n const os = detectOS();\n return os\n ? os.toLowerCase().includes(\"ios\") ||\n (os.toLowerCase().includes(\"mac\") && navigator.maxTouchPoints > 1)\n : false;\n}\nexport function isMobile() {\n const os = detectOS();\n return os ? isAndroid() || isIOS() : false;\n}\nexport function isNode() {\n const env = detectEnv();\n const result = env && env.name ? env.name.toLowerCase() === \"node\" : false;\n return result;\n}\nexport function isBrowser() {\n const result = !isNode() && !!getNavigator();\n return result;\n}\nexport const getFromWindow = windowGetters.getFromWindow;\nexport const getFromWindowOrThrow = windowGetters.getFromWindowOrThrow;\nexport const getDocumentOrThrow = windowGetters.getDocumentOrThrow;\nexport const getDocument = windowGetters.getDocument;\nexport const getNavigatorOrThrow = windowGetters.getNavigatorOrThrow;\nexport const getNavigator = windowGetters.getNavigator;\nexport const getLocationOrThrow = windowGetters.getLocationOrThrow;\nexport const getLocation = windowGetters.getLocation;\nexport const getCryptoOrThrow = windowGetters.getCryptoOrThrow;\nexport const getCrypto = windowGetters.getCrypto;\nexport const getLocalStorageOrThrow = windowGetters.getLocalStorageOrThrow;\nexport const getLocalStorage = windowGetters.getLocalStorage;\nexport function getClientMeta() {\n return windowMetadata.getWindowMetadata();\n}\n//# sourceMappingURL=browser.js.map","import * as safeJson from \"@walletconnect/safe-json\";\nexport const safeJsonParse = safeJson.safeJsonParse;\nexport const safeJsonStringify = safeJson.safeJsonStringify;\n//# sourceMappingURL=json.js.map","import { safeJsonParse, safeJsonStringify } from \"./json\";\nimport { getLocalStorage } from \"./browser\";\nexport function setLocal(key, data) {\n const raw = safeJsonStringify(data);\n const local = getLocalStorage();\n if (local) {\n local.setItem(key, raw);\n }\n}\nexport function getLocal(key) {\n let data = null;\n let raw = null;\n const local = getLocalStorage();\n if (local) {\n raw = local.getItem(key);\n }\n data = raw ? safeJsonParse(raw) : raw;\n return data;\n}\nexport function removeLocal(key) {\n const local = getLocalStorage();\n if (local) {\n local.removeItem(key);\n }\n}\n//# sourceMappingURL=local.js.map","import { setLocal } from \"./local\";\nexport const mobileLinkChoiceKey = \"WALLETCONNECT_DEEPLINK_CHOICE\";\nexport function formatIOSMobile(uri, entry) {\n const encodedUri = encodeURIComponent(uri);\n return entry.universalLink\n ? `${entry.universalLink}/wc?uri=${encodedUri}`\n : entry.deepLink\n ? `${entry.deepLink}${entry.deepLink.endsWith(\":\") ? \"//\" : \"/\"}wc?uri=${encodedUri}`\n : \"\";\n}\nexport function saveMobileLinkInfo(data) {\n const focusUri = data.href.split(\"?\")[0];\n setLocal(mobileLinkChoiceKey, Object.assign(Object.assign({}, data), { href: focusUri }));\n}\nexport function getMobileRegistryEntry(registry, name) {\n return registry.filter((entry) => entry.name.toLowerCase().includes(name.toLowerCase()))[0];\n}\nexport function getMobileLinkRegistry(registry, whitelist) {\n let links = registry;\n if (whitelist) {\n links = whitelist.map((name) => getMobileRegistryEntry(registry, name)).filter(Boolean);\n }\n return links;\n}\n//# sourceMappingURL=mobile.js.map","const API_URL = \"https://registry.walletconnect.com\";\nexport function getWalletRegistryUrl() {\n return API_URL + \"/api/v2/wallets\";\n}\nexport function getDappRegistryUrl() {\n return API_URL + \"/api/v2/dapps\";\n}\nexport function formatMobileRegistryEntry(entry, platform = \"mobile\") {\n var _a;\n return {\n name: entry.name || \"\",\n shortName: entry.metadata.shortName || \"\",\n color: entry.metadata.colors.primary || \"\",\n logo: (_a = entry.image_url.sm) !== null && _a !== void 0 ? _a : \"\",\n universalLink: entry[platform].universal || \"\",\n deepLink: entry[platform].native || \"\",\n };\n}\nexport function formatMobileRegistry(registry, platform = \"mobile\") {\n return Object.values(registry)\n .filter(entry => !!entry[platform].universal || !!entry[platform].native)\n .map((entry) => formatMobileRegistryEntry(entry, platform));\n}\n//# sourceMappingURL=registry.js.map","export * from \"./browser\";\nexport * from \"./json\";\nexport * from \"./local\";\nexport * from \"./mobile\";\nexport * from \"./registry\";\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","import { EventEmitter } from \"events\";\nimport { IJsonRpcProvider, isJsonRpcResponse, formatJsonRpcRequest, isJsonRpcError, } from \"@walletconnect/jsonrpc-utils\";\nexport class JsonRpcProvider extends IJsonRpcProvider {\n constructor(connection) {\n super(connection);\n this.events = new EventEmitter();\n this.hasRegisteredEventListeners = false;\n this.connection = this.setConnection(connection);\n if (this.connection.connected) {\n this.registerEventListeners();\n }\n }\n async connect(connection = this.connection) {\n await this.open(connection);\n }\n async disconnect() {\n await this.close();\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n async request(request, context) {\n return this.requestStrict(formatJsonRpcRequest(request.method, request.params || []), context);\n }\n async requestStrict(request, context) {\n return new Promise(async (resolve, reject) => {\n if (!this.connection.connected) {\n try {\n await this.open();\n }\n catch (e) {\n reject(e);\n }\n }\n this.events.on(`${request.id}`, response => {\n if (isJsonRpcError(response)) {\n reject(response.error);\n }\n else {\n resolve(response.result);\n }\n });\n try {\n await this.connection.send(request, context);\n }\n catch (e) {\n reject(e);\n }\n });\n }\n setConnection(connection = this.connection) {\n return connection;\n }\n onPayload(payload) {\n this.events.emit(\"payload\", payload);\n if (isJsonRpcResponse(payload)) {\n this.events.emit(`${payload.id}`, payload);\n }\n else {\n this.events.emit(\"message\", {\n type: payload.method,\n data: payload.params,\n });\n }\n }\n async open(connection = this.connection) {\n if (this.connection === connection && this.connection.connected)\n return;\n if (this.connection.connected)\n this.close();\n if (typeof connection === \"string\") {\n await this.connection.open(connection);\n connection = this.connection;\n }\n this.connection = this.setConnection(connection);\n await this.connection.open();\n this.registerEventListeners();\n this.events.emit(\"connect\");\n }\n async close() {\n await this.connection.close();\n }\n registerEventListeners() {\n if (this.hasRegisteredEventListeners)\n return;\n this.connection.on(\"payload\", (payload) => this.onPayload(payload));\n this.connection.on(\"close\", () => this.events.emit(\"disconnect\"));\n this.connection.on(\"error\", (error) => this.events.emit(\"error\", error));\n this.hasRegisteredEventListeners = true;\n }\n}\nexport default JsonRpcProvider;\n//# sourceMappingURL=provider.js.map","import Provider from \"./provider\";\nexport * from \"./provider\";\nexport default Provider;\n//# sourceMappingURL=index.js.map","import { EventEmitter } from \"events\";\nimport fetch from \"cross-fetch\";\nimport { safeJsonParse, safeJsonStringify } from \"@walletconnect/safe-json\";\nimport { formatJsonRpcError, isHttpUrl, parseConnectionError, } from \"@walletconnect/jsonrpc-utils\";\nconst DEFAULT_HTTP_HEADERS = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n};\nconst DEFAULT_HTTP_METHOD = \"POST\";\nconst DEFAULT_FETCH_OPTS = {\n headers: DEFAULT_HTTP_HEADERS,\n method: DEFAULT_HTTP_METHOD,\n};\nexport class HttpConnection {\n constructor(url) {\n this.url = url;\n this.events = new EventEmitter();\n this.isAvailable = false;\n this.registering = false;\n if (!isHttpUrl(url)) {\n throw new Error(`Provided URL is not compatible with HTTP connection: ${url}`);\n }\n this.url = url;\n }\n get connected() {\n return this.isAvailable;\n }\n get connecting() {\n return this.registering;\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n async open(url = this.url) {\n await this.register(url);\n }\n async close() {\n if (!this.isAvailable) {\n throw new Error(\"Connection already closed\");\n }\n this.onClose();\n }\n async send(payload, context) {\n if (!this.isAvailable) {\n await this.register();\n }\n try {\n const body = safeJsonStringify(payload);\n const res = await fetch(this.url, Object.assign(Object.assign({}, DEFAULT_FETCH_OPTS), { body }));\n const data = await res.json();\n this.onPayload({ data });\n }\n catch (e) {\n this.onError(payload.id, e);\n }\n }\n async register(url = this.url) {\n if (!isHttpUrl(url)) {\n throw new Error(`Provided URL is not compatible with HTTP connection: ${url}`);\n }\n if (this.registering) {\n return new Promise((resolve, reject) => {\n this.events.once(\"register_error\", error => {\n reject(error);\n });\n this.events.once(\"open\", () => {\n if (typeof this.isAvailable === \"undefined\") {\n return reject(new Error(\"HTTP connection is missing or invalid\"));\n }\n resolve();\n });\n });\n }\n this.url = url;\n this.registering = true;\n try {\n const body = safeJsonStringify({ id: 1, jsonrpc: \"2.0\", method: \"test\", params: [] });\n await fetch(url, Object.assign(Object.assign({}, DEFAULT_FETCH_OPTS), { body }));\n this.onOpen();\n }\n catch (e) {\n const error = this.parseError(e);\n this.events.emit(\"register_error\", error);\n this.onClose();\n throw error;\n }\n }\n onOpen() {\n this.isAvailable = true;\n this.registering = false;\n this.events.emit(\"open\");\n }\n onClose() {\n this.isAvailable = false;\n this.registering = false;\n this.events.emit(\"close\");\n }\n onPayload(e) {\n if (typeof e.data === \"undefined\")\n return;\n const payload = typeof e.data === \"string\" ? safeJsonParse(e.data) : e.data;\n this.events.emit(\"payload\", payload);\n }\n onError(id, e) {\n const error = this.parseError(e);\n const message = error.message || error.toString();\n const payload = formatJsonRpcError(id, message);\n this.events.emit(\"payload\", payload);\n }\n parseError(e, url = this.url) {\n return parseConnectionError(e, url, \"HTTP\");\n }\n}\nexport default HttpConnection;\n//# sourceMappingURL=http.js.map","import HttpConnection from \"./http\";\nexport * from \"./http\";\nexport default HttpConnection;\n//# sourceMappingURL=index.js.map","export const reservedEvents = [\n \"session_request\",\n \"session_update\",\n \"exchange_key\",\n \"connect\",\n \"disconnect\",\n \"display_uri\",\n \"modal_closed\",\n \"transport_open\",\n \"transport_close\",\n \"transport_error\",\n];\nexport const signingMethods = [\n \"eth_sendTransaction\",\n \"eth_signTransaction\",\n \"eth_sign\",\n \"eth_signTypedData\",\n \"eth_signTypedData_v1\",\n \"eth_signTypedData_v2\",\n \"eth_signTypedData_v3\",\n \"eth_signTypedData_v4\",\n \"personal_sign\",\n \"wallet_addEthereumChain\",\n \"wallet_switchEthereumChain\",\n \"wallet_getPermissions\",\n \"wallet_requestPermissions\",\n \"wallet_registerOnboarding\",\n \"wallet_watchAsset\",\n \"wallet_scanQRCode\",\n];\nexport const stateMethods = [\"eth_accounts\", \"eth_chainId\", \"net_version\"];\nexport const infuraNetworks = {\n 1: \"mainnet\",\n 3: \"ropsten\",\n 4: \"rinkeby\",\n 5: \"goerli\",\n 42: \"kovan\",\n};\n//# sourceMappingURL=constants.js.map","import _isTypedArray from \"is-typedarray\";\nimport typedArrayToBuffer from \"typedarray-to-buffer\";\nconst ENC_HEX = \"hex\";\nconst ENC_UTF8 = \"utf8\";\nconst ENC_BIN = \"binary\";\nconst TYPE_BUFFER = \"buffer\";\nconst TYPE_ARRAY = \"array\";\nconst TYPE_TYPED_ARRAY = \"typed-array\";\nconst TYPE_ARRAY_BUFFER = \"array-buffer\";\nconst STRING_ZERO = \"0\";\nexport function bufferToArray(buf) {\n return new Uint8Array(buf);\n}\nexport function bufferToHex(buf, prefixed = false) {\n const hex = buf.toString(ENC_HEX);\n return prefixed ? addHexPrefix(hex) : hex;\n}\nexport function bufferToUtf8(buf) {\n return buf.toString(ENC_UTF8);\n}\nexport function bufferToNumber(buf) {\n return buf.readUIntBE(0, buf.length);\n}\nexport function bufferToBinary(buf) {\n return arrayToBinary(bufferToArray(buf));\n}\nexport function arrayToBuffer(arr) {\n return typedArrayToBuffer(arr);\n}\nexport function arrayToHex(arr, prefixed = false) {\n return bufferToHex(arrayToBuffer(arr), prefixed);\n}\nexport function arrayToUtf8(arr) {\n return bufferToUtf8(arrayToBuffer(arr));\n}\nexport function arrayToNumber(arr) {\n return bufferToNumber(arrayToBuffer(arr));\n}\nexport function arrayToBinary(arr) {\n return Array.from(arr)\n .map(numberToBinary)\n .join(\"\");\n}\nexport function hexToBuffer(hex) {\n return Buffer.from(removeHexPrefix(hex), ENC_HEX);\n}\nexport function hexToArray(hex) {\n return bufferToArray(hexToBuffer(hex));\n}\nexport function hexToUtf8(hex) {\n return bufferToUtf8(hexToBuffer(hex));\n}\nexport function hexToNumber(hex) {\n return arrayToNumber(hexToArray(hex));\n}\nexport function hexToBinary(hex) {\n return arrayToBinary(hexToArray(hex));\n}\nexport function utf8ToBuffer(utf8) {\n return Buffer.from(utf8, ENC_UTF8);\n}\nexport function utf8ToArray(utf8) {\n return bufferToArray(utf8ToBuffer(utf8));\n}\nexport function utf8ToHex(utf8, prefixed = false) {\n return bufferToHex(utf8ToBuffer(utf8), prefixed);\n}\nexport function utf8ToNumber(utf8) {\n const num = parseInt(utf8, 10);\n assert(isDefined(num), \"Number can only safely store up to 53 bits\");\n return num;\n}\nexport function utf8ToBinary(utf8) {\n return arrayToBinary(utf8ToArray(utf8));\n}\nexport function numberToBuffer(num) {\n return binaryToBuffer(numberToBinary(num));\n}\nexport function numberToArray(num) {\n return binaryToArray(numberToBinary(num));\n}\nexport function numberToHex(num, prefixed) {\n return binaryToHex(numberToBinary(num), prefixed);\n}\nexport function numberToUtf8(num) {\n return `${num}`;\n}\nexport function numberToBinary(num) {\n const bin = (num >>> 0).toString(2);\n return sanitizeBytes(bin);\n}\nexport function binaryToBuffer(bin) {\n return arrayToBuffer(binaryToArray(bin));\n}\nexport function binaryToArray(bin) {\n return new Uint8Array(splitBytes(bin).map(x => parseInt(x, 2)));\n}\nexport function binaryToHex(bin, prefixed) {\n return arrayToHex(binaryToArray(bin), prefixed);\n}\nexport function binaryToUtf8(bin) {\n return arrayToUtf8(binaryToArray(bin));\n}\nexport function binaryToNumber(bin) {\n return arrayToNumber(binaryToArray(bin));\n}\nexport function isBinaryString(str) {\n if (typeof str !== \"string\" || !new RegExp(/^[01]+$/).test(str)) {\n return false;\n }\n if (str.length % 8 !== 0) {\n return false;\n }\n return true;\n}\nexport function isHexString(str, length) {\n if (typeof str !== \"string\" || !str.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && str.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nexport function isBuffer(val) {\n return Buffer.isBuffer(val);\n}\nexport function isTypedArray(val) {\n return _isTypedArray.strict(val) && !isBuffer(val);\n}\nexport function isArrayBuffer(val) {\n return (!isTypedArray(val) &&\n !isBuffer(val) &&\n typeof val.byteLength !== \"undefined\");\n}\nexport function getType(val) {\n if (isBuffer(val)) {\n return TYPE_BUFFER;\n }\n else if (isTypedArray(val)) {\n return TYPE_TYPED_ARRAY;\n }\n else if (isArrayBuffer(val)) {\n return TYPE_ARRAY_BUFFER;\n }\n else if (Array.isArray(val)) {\n return TYPE_ARRAY;\n }\n else {\n return typeof val;\n }\n}\nexport function getEncoding(str) {\n if (isBinaryString(str)) {\n return ENC_BIN;\n }\n if (isHexString(str)) {\n return ENC_HEX;\n }\n return ENC_UTF8;\n}\nexport function concatBuffers(...args) {\n const result = Buffer.concat(args);\n return result;\n}\nexport function concatArrays(...args) {\n let result = [];\n args.forEach(arg => (result = result.concat(Array.from(arg))));\n return new Uint8Array([...result]);\n}\nexport function trimLeft(data, length) {\n const diff = data.length - length;\n if (diff > 0) {\n data = data.slice(diff);\n }\n return data;\n}\nexport function trimRight(data, length) {\n return data.slice(0, length);\n}\nexport function calcByteLength(length, byteSize = 8) {\n const remainder = length % byteSize;\n return remainder\n ? ((length - remainder) / byteSize) * byteSize + byteSize\n : length;\n}\nexport function splitBytes(str, byteSize = 8) {\n const bytes = sanitizeBytes(str).match(new RegExp(`.{${byteSize}}`, \"gi\"));\n return Array.from(bytes || []);\n}\nexport function swapBytes(str) {\n return splitBytes(str)\n .map(reverseString)\n .join(\"\");\n}\nexport function swapHex(str) {\n return binaryToHex(swapBytes(hexToBinary(str)));\n}\nexport function sanitizeBytes(str, byteSize = 8, padding = STRING_ZERO) {\n return padLeft(str, calcByteLength(str.length, byteSize), padding);\n}\nexport function padLeft(str, length, padding = STRING_ZERO) {\n return padString(str, length, true, padding);\n}\nexport function padRight(str, length, padding = STRING_ZERO) {\n return padString(str, length, false, padding);\n}\nexport function removeHexPrefix(hex) {\n return hex.replace(/^0x/, \"\");\n}\nexport function addHexPrefix(hex) {\n return hex.startsWith(\"0x\") ? hex : `0x${hex}`;\n}\nexport function sanitizeHex(hex) {\n hex = removeHexPrefix(hex);\n hex = sanitizeBytes(hex, 2);\n if (hex) {\n hex = addHexPrefix(hex);\n }\n return hex;\n}\nexport function removeHexLeadingZeros(hex) {\n const prefixed = hex.startsWith(\"0x\");\n hex = removeHexPrefix(hex);\n hex = hex.startsWith(STRING_ZERO) ? hex.substring(1) : hex;\n return prefixed ? addHexPrefix(hex) : hex;\n}\nfunction isUndefined(value) {\n return typeof value === \"undefined\";\n}\nfunction isDefined(value) {\n return !isUndefined(value);\n}\nfunction assert(assertion, errorMessage) {\n if (!assertion) {\n throw new Error(errorMessage);\n }\n}\nfunction reverseString(str) {\n return str\n .split(\"\")\n .reverse()\n .join(\"\");\n}\nfunction padString(str, length, left, padding = STRING_ZERO) {\n const diff = length - str.length;\n let result = str;\n if (diff > 0) {\n const pad = padding.repeat(diff);\n result = left ? pad + str : str + pad;\n }\n return result;\n}\n//# sourceMappingURL=index.js.map","import BN from \"bn.js\";\nimport * as encoding from \"@walletconnect/encoding\";\nexport function convertArrayBufferToBuffer(arrBuf) {\n return encoding.arrayToBuffer(new Uint8Array(arrBuf));\n}\nexport function convertArrayBufferToUtf8(arrBuf) {\n return encoding.arrayToUtf8(new Uint8Array(arrBuf));\n}\nexport function convertArrayBufferToHex(arrBuf, noPrefix) {\n return encoding.arrayToHex(new Uint8Array(arrBuf), !noPrefix);\n}\nexport function convertArrayBufferToNumber(arrBuf) {\n return encoding.arrayToNumber(new Uint8Array(arrBuf));\n}\nexport function concatArrayBuffers(...args) {\n return encoding.hexToArray(args.map(b => encoding.arrayToHex(new Uint8Array(b))).join(\"\")).buffer;\n}\nexport function convertBufferToArrayBuffer(buf) {\n return encoding.bufferToArray(buf).buffer;\n}\nexport function convertBufferToUtf8(buf) {\n return encoding.bufferToUtf8(buf);\n}\nexport function convertBufferToHex(buf, noPrefix) {\n return encoding.bufferToHex(buf, !noPrefix);\n}\nexport function convertBufferToNumber(buf) {\n return encoding.bufferToNumber(buf);\n}\nexport function concatBuffers(...args) {\n return encoding.concatBuffers(...args);\n}\nexport function convertUtf8ToArrayBuffer(utf8) {\n return encoding.utf8ToArray(utf8).buffer;\n}\nexport function convertUtf8ToBuffer(utf8) {\n return encoding.utf8ToBuffer(utf8);\n}\nexport function convertUtf8ToHex(utf8, noPrefix) {\n return encoding.utf8ToHex(utf8, !noPrefix);\n}\nexport function convertUtf8ToNumber(utf8) {\n return new BN(utf8, 10).toNumber();\n}\nexport function convertHexToBuffer(hex) {\n return encoding.hexToBuffer(hex);\n}\nexport function convertHexToArrayBuffer(hex) {\n return encoding.hexToArray(hex).buffer;\n}\nexport function convertHexToUtf8(hex) {\n return encoding.hexToUtf8(hex);\n}\nexport function convertHexToNumber(hex) {\n return new BN(encoding.removeHexPrefix(hex), \"hex\").toNumber();\n}\nexport function convertNumberToBuffer(num) {\n return encoding.numberToBuffer(num);\n}\nexport function convertNumberToArrayBuffer(num) {\n return encoding.numberToArray(num).buffer;\n}\nexport function convertNumberToUtf8(num) {\n return new BN(num).toString();\n}\nexport function convertNumberToHex(num, noPrefix) {\n const hex = encoding.removeHexPrefix(encoding.sanitizeHex(new BN(num).toString(16)));\n return noPrefix ? hex : encoding.addHexPrefix(hex);\n}\n//# sourceMappingURL=encoding.js.map","import * as encoding from \"@walletconnect/encoding\";\nimport * as jsonRpcUtils from \"@walletconnect/jsonrpc-utils\";\nimport { infuraNetworks } from \"./constants\";\nexport function sanitizeHex(hex) {\n return encoding.sanitizeHex(hex);\n}\nexport function addHexPrefix(hex) {\n return encoding.addHexPrefix(hex);\n}\nexport function removeHexPrefix(hex) {\n return encoding.removeHexPrefix(hex);\n}\nexport function removeHexLeadingZeros(hex) {\n return encoding.removeHexLeadingZeros(encoding.addHexPrefix(hex));\n}\nexport const payloadId = jsonRpcUtils.payloadId;\nexport function uuid() {\n const result = ((a, b) => {\n for (b = a = \"\"; a++ < 36; b += (a * 51) & 52 ? (a ^ 15 ? 8 ^ (Math.random() * (a ^ 20 ? 16 : 4)) : 4).toString(16) : \"-\") {\n }\n return b;\n })();\n return result;\n}\nexport function logDeprecationWarning() {\n console.warn(\"DEPRECATION WARNING: This WalletConnect client library will be deprecated in favor of @walletconnect/client. Please check docs.walletconnect.org to learn more about this migration!\");\n}\nexport function getInfuraRpcUrl(chainId, infuraId) {\n let rpcUrl;\n const network = infuraNetworks[chainId];\n if (network) {\n rpcUrl = `https://${network}.infura.io/v3/${infuraId}`;\n }\n return rpcUrl;\n}\nexport function getRpcUrl(chainId, rpc) {\n let rpcUrl;\n const infuraUrl = getInfuraRpcUrl(chainId, rpc.infuraId);\n if (rpc.custom && rpc.custom[chainId]) {\n rpcUrl = rpc.custom[chainId];\n }\n else if (infuraUrl) {\n rpcUrl = infuraUrl;\n }\n return rpcUrl;\n}\n//# sourceMappingURL=misc.js.map","import * as encoding from \"@walletconnect/encoding\";\nimport { signingMethods, reservedEvents } from \"./constants\";\nexport function isEmptyString(value) {\n return value === \"\" || (typeof value === \"string\" && value.trim() === \"\");\n}\nexport function isEmptyArray(array) {\n return !(array && array.length);\n}\nexport function isBuffer(val) {\n return encoding.isBuffer(val);\n}\nexport function isTypedArray(val) {\n return encoding.isTypedArray(val);\n}\nexport function isArrayBuffer(val) {\n return encoding.isArrayBuffer(val);\n}\nexport function getType(val) {\n return encoding.getType(val);\n}\nexport function getEncoding(val) {\n return encoding.getEncoding(val);\n}\nexport function isHexString(value, length) {\n return encoding.isHexString(value, length);\n}\nexport function isJsonRpcSubscription(object) {\n return typeof object.params === \"object\";\n}\nexport function isJsonRpcRequest(object) {\n return typeof object.method !== \"undefined\";\n}\nexport function isJsonRpcResponseSuccess(object) {\n return typeof object.result !== \"undefined\";\n}\nexport function isJsonRpcResponseError(object) {\n return typeof object.error !== \"undefined\";\n}\nexport function isInternalEvent(object) {\n return typeof object.event !== \"undefined\";\n}\nexport function isReservedEvent(event) {\n return reservedEvents.includes(event) || event.startsWith(\"wc_\");\n}\nexport function isSilentPayload(request) {\n if (request.method.startsWith(\"wc_\")) {\n return true;\n }\n if (signingMethods.includes(request.method)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=validators.js.map","import { keccak_256 } from \"js-sha3\";\nimport { removeHexPrefix, addHexPrefix } from \"@walletconnect/encoding\";\nimport { convertUtf8ToHex, convertNumberToHex, convertUtf8ToBuffer } from \"./encoding\";\nimport { sanitizeHex, removeHexLeadingZeros } from \"./misc\";\nimport { isEmptyArray, isHexString, isEmptyString } from \"./validators\";\nexport function toChecksumAddress(address) {\n address = removeHexPrefix(address.toLowerCase());\n const hash = removeHexPrefix(keccak_256(convertUtf8ToBuffer(address)));\n let checksum = \"\";\n for (let i = 0; i < address.length; i++) {\n if (parseInt(hash[i], 16) > 7) {\n checksum += address[i].toUpperCase();\n }\n else {\n checksum += address[i];\n }\n }\n return addHexPrefix(checksum);\n}\nexport const isValidAddress = (address) => {\n if (!address) {\n return false;\n }\n else if (address.toLowerCase().substring(0, 2) !== \"0x\") {\n return false;\n }\n else if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n }\n else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {\n return true;\n }\n else {\n return address === toChecksumAddress(address);\n }\n};\nexport function parsePersonalSign(params) {\n if (!isEmptyArray(params) && !isHexString(params[0])) {\n params[0] = convertUtf8ToHex(params[0]);\n }\n return params;\n}\nexport function parseTransactionData(txData) {\n if (typeof txData.type !== \"undefined\" && txData.type !== \"0\")\n return txData;\n if (typeof txData.from === \"undefined\" || !isValidAddress(txData.from)) {\n throw new Error(`Transaction object must include a valid 'from' value.`);\n }\n function parseHexValues(value) {\n let result = value;\n if (typeof value === \"number\" || (typeof value === \"string\" && !isEmptyString(value))) {\n if (!isHexString(value)) {\n result = convertNumberToHex(value);\n }\n else if (typeof value === \"string\") {\n result = sanitizeHex(value);\n }\n }\n if (typeof result === \"string\") {\n result = removeHexLeadingZeros(result);\n }\n return result;\n }\n const txDataRPC = {\n from: sanitizeHex(txData.from),\n to: typeof txData.to === \"undefined\" ? undefined : sanitizeHex(txData.to),\n gasPrice: typeof txData.gasPrice === \"undefined\" ? \"\" : parseHexValues(txData.gasPrice),\n gas: typeof txData.gas === \"undefined\"\n ? typeof txData.gasLimit === \"undefined\"\n ? \"\"\n : parseHexValues(txData.gasLimit)\n : parseHexValues(txData.gas),\n value: typeof txData.value === \"undefined\" ? \"\" : parseHexValues(txData.value),\n nonce: typeof txData.nonce === \"undefined\" ? \"\" : parseHexValues(txData.nonce),\n data: typeof txData.data === \"undefined\" ? \"\" : sanitizeHex(txData.data) || \"0x\",\n };\n const prunable = [\"gasPrice\", \"gas\", \"value\", \"nonce\"];\n Object.keys(txDataRPC).forEach((key) => {\n if ((typeof txDataRPC[key] === \"undefined\" ||\n (typeof txDataRPC[key] === \"string\" && !txDataRPC[key].trim().length)) &&\n prunable.includes(key)) {\n delete txDataRPC[key];\n }\n });\n return txDataRPC;\n}\n//# sourceMappingURL=ethereum.js.map","export function promisify(originalFn, thisArg) {\n const promisifiedFunction = async (...callArgs) => {\n return new Promise((resolve, reject) => {\n const callback = (err, data) => {\n if (err === null || typeof err === \"undefined\") {\n reject(err);\n }\n resolve(data);\n };\n originalFn.apply(thisArg, [...callArgs, callback]);\n });\n };\n return promisifiedFunction;\n}\nexport function formatRpcError(error) {\n const message = error.message || \"Failed or Rejected Request\";\n let code = -32000;\n if (error && !error.code) {\n switch (message) {\n case \"Parse error\":\n code = -32700;\n break;\n case \"Invalid request\":\n code = -32600;\n break;\n case \"Method not found\":\n code = -32601;\n break;\n case \"Invalid params\":\n code = -32602;\n break;\n case \"Internal error\":\n code = -32603;\n break;\n default:\n code = -32000;\n break;\n }\n }\n const result = {\n code,\n message,\n };\n return result;\n}\n//# sourceMappingURL=payload.js.map","import * as queryStringUtils from \"query-string\";\nexport function getQueryString(url) {\n const pathEnd = url.indexOf(\"?\") !== -1 ? url.indexOf(\"?\") : undefined;\n const queryString = typeof pathEnd !== \"undefined\" ? url.substr(pathEnd) : \"\";\n return queryString;\n}\nexport function appendToQueryString(queryString, newQueryParams) {\n let queryParams = parseQueryString(queryString);\n queryParams = Object.assign(Object.assign({}, queryParams), newQueryParams);\n queryString = formatQueryString(queryParams);\n return queryString;\n}\nexport function parseQueryString(queryString) {\n return queryStringUtils.parse(queryString);\n}\nexport function formatQueryString(queryParams) {\n return queryStringUtils.stringify(queryParams);\n}\n//# sourceMappingURL=url.js.map","import { parseQueryString } from \"./url\";\nexport function isWalletConnectSession(object) {\n return typeof object.bridge !== \"undefined\";\n}\nexport function parseWalletConnectUri(str) {\n const pathStart = str.indexOf(\":\");\n const pathEnd = str.indexOf(\"?\") !== -1 ? str.indexOf(\"?\") : undefined;\n const protocol = str.substring(0, pathStart);\n const path = str.substring(pathStart + 1, pathEnd);\n function parseRequiredParams(path) {\n const separator = \"@\";\n const values = path.split(separator);\n const requiredParams = {\n handshakeTopic: values[0],\n version: parseInt(values[1], 10),\n };\n return requiredParams;\n }\n const requiredParams = parseRequiredParams(path);\n const queryString = typeof pathEnd !== \"undefined\" ? str.substr(pathEnd) : \"\";\n function parseQueryParams(queryString) {\n const result = parseQueryString(queryString);\n const parameters = {\n key: result.key || \"\",\n bridge: result.bridge || \"\",\n };\n return parameters;\n }\n const queryParams = parseQueryParams(queryString);\n const result = Object.assign(Object.assign({ protocol }, requiredParams), queryParams);\n return result;\n}\n//# sourceMappingURL=session.js.map","export * from \"@walletconnect/browser-utils\";\nexport * from \"./constants\";\nexport * from \"./encoding\";\nexport * from \"./ethereum\";\nexport * from \"./misc\";\nexport * from \"./payload\";\nexport * from \"./session\";\nexport * from \"./url\";\nexport * from \"./validators\";\n//# sourceMappingURL=index.js.map","class NetworkMonitor {\n constructor() {\n this._eventEmitters = [];\n if (typeof window !== \"undefined\" && typeof window.addEventListener !== \"undefined\") {\n window.addEventListener(\"online\", () => this.trigger(\"online\"));\n window.addEventListener(\"offline\", () => this.trigger(\"offline\"));\n }\n }\n on(event, callback) {\n this._eventEmitters.push({\n event,\n callback,\n });\n }\n trigger(event) {\n let eventEmitters = [];\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n eventEmitters.forEach((eventEmitter) => {\n eventEmitter.callback();\n });\n }\n}\nexport default NetworkMonitor;\n//# sourceMappingURL=network.js.map","import { isBrowser, getLocation, getQueryString, detectEnv, appendToQueryString, } from \"@walletconnect/utils\";\nimport NetworkMonitor from \"./network\";\nconst WS = typeof global.WebSocket !== \"undefined\" ? global.WebSocket : require(\"ws\");\nclass SocketTransport {\n constructor(opts) {\n this.opts = opts;\n this._queue = [];\n this._events = [];\n this._subscriptions = [];\n this._protocol = opts.protocol;\n this._version = opts.version;\n this._url = \"\";\n this._netMonitor = null;\n this._socket = null;\n this._nextSocket = null;\n this._subscriptions = opts.subscriptions || [];\n this._netMonitor = opts.netMonitor || new NetworkMonitor();\n if (!opts.url || typeof opts.url !== \"string\") {\n throw new Error(\"Missing or invalid WebSocket url\");\n }\n this._url = opts.url;\n this._netMonitor.on(\"online\", () => this._socketCreate());\n }\n set readyState(value) {\n }\n get readyState() {\n return this._socket ? this._socket.readyState : -1;\n }\n set connecting(value) {\n }\n get connecting() {\n return this.readyState === 0;\n }\n set connected(value) {\n }\n get connected() {\n return this.readyState === 1;\n }\n set closing(value) {\n }\n get closing() {\n return this.readyState === 2;\n }\n set closed(value) {\n }\n get closed() {\n return this.readyState === 3;\n }\n open() {\n this._socketCreate();\n }\n close() {\n this._socketClose();\n }\n send(message, topic, silent) {\n if (!topic || typeof topic !== \"string\") {\n throw new Error(\"Missing or invalid topic field\");\n }\n this._socketSend({\n topic: topic,\n type: \"pub\",\n payload: message,\n silent: !!silent,\n });\n }\n subscribe(topic) {\n this._socketSend({\n topic: topic,\n type: \"sub\",\n payload: \"\",\n silent: true,\n });\n }\n on(event, callback) {\n this._events.push({ event, callback });\n }\n _socketCreate() {\n if (this._nextSocket) {\n return;\n }\n const url = getWebSocketUrl(this._url, this._protocol, this._version);\n this._nextSocket = new WS(url);\n if (!this._nextSocket) {\n throw new Error(\"Failed to create socket\");\n }\n this._nextSocket.onmessage = (event) => this._socketReceive(event);\n this._nextSocket.onopen = () => this._socketOpen();\n this._nextSocket.onerror = (event) => this._socketError(event);\n this._nextSocket.onclose = () => {\n setTimeout(() => {\n this._nextSocket = null;\n this._socketCreate();\n }, 1000);\n };\n }\n _socketOpen() {\n this._socketClose();\n this._socket = this._nextSocket;\n this._nextSocket = null;\n this._queueSubscriptions();\n this._pushQueue();\n }\n _socketClose() {\n if (this._socket) {\n this._socket.onclose = () => {\n };\n this._socket.close();\n }\n }\n _socketSend(socketMessage) {\n const message = JSON.stringify(socketMessage);\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(message);\n }\n else {\n this._setToQueue(socketMessage);\n this._socketCreate();\n }\n }\n async _socketReceive(event) {\n let socketMessage;\n try {\n socketMessage = JSON.parse(event.data);\n }\n catch (error) {\n return;\n }\n this._socketSend({\n topic: socketMessage.topic,\n type: \"ack\",\n payload: \"\",\n silent: true,\n });\n if (this._socket && this._socket.readyState === 1) {\n const events = this._events.filter(event => event.event === \"message\");\n if (events && events.length) {\n events.forEach(event => event.callback(socketMessage));\n }\n }\n }\n _socketError(e) {\n const events = this._events.filter(event => event.event === \"error\");\n if (events && events.length) {\n events.forEach(event => event.callback(e));\n }\n }\n _queueSubscriptions() {\n const subscriptions = this._subscriptions;\n subscriptions.forEach((topic) => this._queue.push({\n topic: topic,\n type: \"sub\",\n payload: \"\",\n silent: true,\n }));\n this._subscriptions = this.opts.subscriptions || [];\n }\n _setToQueue(socketMessage) {\n this._queue.push(socketMessage);\n }\n _pushQueue() {\n const queue = this._queue;\n queue.forEach((socketMessage) => this._socketSend(socketMessage));\n this._queue = [];\n }\n}\nfunction getWebSocketUrl(_url, protocol, version) {\n var _a, _b;\n const url = _url.startsWith(\"https\")\n ? _url.replace(\"https\", \"wss\")\n : _url.startsWith(\"http\")\n ? _url.replace(\"http\", \"ws\")\n : _url;\n const splitUrl = url.split(\"?\");\n const params = isBrowser()\n ? {\n protocol,\n version,\n env: \"browser\",\n host: ((_a = getLocation()) === null || _a === void 0 ? void 0 : _a.host) || \"\",\n }\n : {\n protocol,\n version,\n env: ((_b = detectEnv()) === null || _b === void 0 ? void 0 : _b.name) || \"\",\n };\n const queryString = appendToQueryString(getQueryString(splitUrl[1] || \"\"), params);\n return splitUrl[0] + \"?\" + queryString;\n}\nexport default SocketTransport;\n//# sourceMappingURL=index.js.map","export const ERROR_SESSION_CONNECTED = \"Session currently connected\";\nexport const ERROR_SESSION_DISCONNECTED = \"Session currently disconnected\";\nexport const ERROR_SESSION_REJECTED = \"Session Rejected\";\nexport const ERROR_MISSING_JSON_RPC = \"Missing JSON RPC response\";\nexport const ERROR_MISSING_RESULT = `JSON-RPC success response must include \"result\" field`;\nexport const ERROR_MISSING_ERROR = `JSON-RPC error response must include \"error\" field`;\nexport const ERROR_MISSING_METHOD = `JSON RPC request must have valid \"method\" value`;\nexport const ERROR_MISSING_ID = `JSON RPC request must have valid \"id\" value`;\nexport const ERROR_MISSING_REQUIRED = \"Missing one of the required parameters: bridge / uri / session\";\nexport const ERROR_INVALID_RESPONSE = \"JSON RPC response format is invalid\";\nexport const ERROR_INVALID_URI = \"URI format is invalid\";\nexport const ERROR_QRCODE_MODAL_NOT_PROVIDED = \"QRCode Modal not provided\";\nexport const ERROR_QRCODE_MODAL_USER_CLOSED = \"User close QRCode Modal\";\n//# sourceMappingURL=errors.js.map","import { isJsonRpcRequest, isJsonRpcResponseSuccess, isJsonRpcResponseError, isInternalEvent, isReservedEvent, } from \"@walletconnect/utils\";\nclass EventManager {\n constructor() {\n this._eventEmitters = [];\n }\n subscribe(eventEmitter) {\n this._eventEmitters.push(eventEmitter);\n }\n unsubscribe(event) {\n this._eventEmitters = this._eventEmitters.filter(x => x.event !== event);\n }\n trigger(payload) {\n let eventEmitters = [];\n let event;\n if (isJsonRpcRequest(payload)) {\n event = payload.method;\n }\n else if (isJsonRpcResponseSuccess(payload) || isJsonRpcResponseError(payload)) {\n event = `response:${payload.id}`;\n }\n else if (isInternalEvent(payload)) {\n event = payload.event;\n }\n else {\n event = \"\";\n }\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n if ((!eventEmitters || !eventEmitters.length) &&\n !isReservedEvent(event) &&\n !isInternalEvent(event)) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === \"call_request\");\n }\n eventEmitters.forEach((eventEmitter) => {\n if (isJsonRpcResponseError(payload)) {\n const error = new Error(payload.error.message);\n eventEmitter.callback(error, null);\n }\n else {\n eventEmitter.callback(null, payload);\n }\n });\n }\n}\nexport default EventManager;\n//# sourceMappingURL=events.js.map","import { isWalletConnectSession, getLocal, setLocal, removeLocal } from \"@walletconnect/utils\";\nclass SessionStorage {\n constructor(storageId = \"walletconnect\") {\n this.storageId = storageId;\n }\n getSession() {\n let session = null;\n const json = getLocal(this.storageId);\n if (json && isWalletConnectSession(json)) {\n session = json;\n }\n return session;\n }\n setSession(session) {\n setLocal(this.storageId, session);\n return session;\n }\n removeSession() {\n removeLocal(this.storageId);\n }\n}\nexport default SessionStorage;\n//# sourceMappingURL=storage.js.map","const domain = \"walletconnect.org\";\nconst alphanumerical = \"abcdefghijklmnopqrstuvwxyz0123456789\";\nconst bridges = alphanumerical.split(\"\").map(char => `https://${char}.bridge.walletconnect.org`);\nexport function extractHostname(url) {\n let hostname = url.indexOf(\"//\") > -1 ? url.split(\"/\")[2] : url.split(\"/\")[0];\n hostname = hostname.split(\":\")[0];\n hostname = hostname.split(\"?\")[0];\n return hostname;\n}\nexport function extractRootDomain(url) {\n return extractHostname(url)\n .split(\".\")\n .slice(-2)\n .join(\".\");\n}\nexport function randomBridgeIndex() {\n return Math.floor(Math.random() * bridges.length);\n}\nexport function selectRandomBridgeUrl() {\n return bridges[randomBridgeIndex()];\n}\nexport function shouldSelectRandomly(url) {\n return extractRootDomain(url) === domain;\n}\nexport function getBridgeUrl(url) {\n if (shouldSelectRandomly(url)) {\n return selectRandomBridgeUrl();\n }\n return url;\n}\n//# sourceMappingURL=url.js.map","import { parsePersonalSign, parseTransactionData, convertArrayBufferToHex, convertHexToArrayBuffer, getClientMeta, payloadId, uuid, formatRpcError, parseWalletConnectUri, convertNumberToHex, isJsonRpcResponseSuccess, isJsonRpcResponseError, isSilentPayload, getLocal, signingMethods, mobileLinkChoiceKey, isMobile, removeLocal, } from \"@walletconnect/utils\";\nimport SocketTransport from \"@walletconnect/socket-transport\";\nimport { ERROR_SESSION_CONNECTED, ERROR_SESSION_DISCONNECTED, ERROR_SESSION_REJECTED, ERROR_MISSING_JSON_RPC, ERROR_MISSING_RESULT, ERROR_MISSING_ERROR, ERROR_MISSING_METHOD, ERROR_MISSING_ID, ERROR_INVALID_RESPONSE, ERROR_INVALID_URI, ERROR_MISSING_REQUIRED, ERROR_QRCODE_MODAL_NOT_PROVIDED, ERROR_QRCODE_MODAL_USER_CLOSED, } from \"./errors\";\nimport EventManager from \"./events\";\nimport SessionStorage from \"./storage\";\nimport { getBridgeUrl } from \"./url\";\nclass Connector {\n constructor(opts) {\n this.protocol = \"wc\";\n this.version = 1;\n this._bridge = \"\";\n this._key = null;\n this._clientId = \"\";\n this._clientMeta = null;\n this._peerId = \"\";\n this._peerMeta = null;\n this._handshakeId = 0;\n this._handshakeTopic = \"\";\n this._connected = false;\n this._accounts = [];\n this._chainId = 0;\n this._networkId = 0;\n this._rpcUrl = \"\";\n this._eventManager = new EventManager();\n this._clientMeta = getClientMeta() || opts.connectorOpts.clientMeta || null;\n this._cryptoLib = opts.cryptoLib;\n this._sessionStorage = opts.sessionStorage || new SessionStorage(opts.connectorOpts.storageId);\n this._qrcodeModal = opts.connectorOpts.qrcodeModal;\n this._qrcodeModalOptions = opts.connectorOpts.qrcodeModalOptions;\n this._signingMethods = [...signingMethods, ...(opts.connectorOpts.signingMethods || [])];\n if (!opts.connectorOpts.bridge && !opts.connectorOpts.uri && !opts.connectorOpts.session) {\n throw new Error(ERROR_MISSING_REQUIRED);\n }\n if (opts.connectorOpts.bridge) {\n this.bridge = getBridgeUrl(opts.connectorOpts.bridge);\n }\n if (opts.connectorOpts.uri) {\n this.uri = opts.connectorOpts.uri;\n }\n const session = opts.connectorOpts.session || this._getStorageSession();\n if (session) {\n this.session = session;\n }\n if (this.handshakeId) {\n this._subscribeToSessionResponse(this.handshakeId, \"Session request rejected\");\n }\n this._transport =\n opts.transport ||\n new SocketTransport({\n protocol: this.protocol,\n version: this.version,\n url: this.bridge,\n subscriptions: [this.clientId],\n });\n this._subscribeToInternalEvents();\n this._initTransport();\n if (opts.connectorOpts.uri) {\n this._subscribeToSessionRequest();\n }\n if (opts.pushServerOpts) {\n this._registerPushServer(opts.pushServerOpts);\n }\n }\n set bridge(value) {\n if (!value) {\n return;\n }\n this._bridge = value;\n }\n get bridge() {\n return this._bridge;\n }\n set key(value) {\n if (!value) {\n return;\n }\n const key = convertHexToArrayBuffer(value);\n this._key = key;\n }\n get key() {\n if (this._key) {\n const key = convertArrayBufferToHex(this._key, true);\n return key;\n }\n return \"\";\n }\n set clientId(value) {\n if (!value) {\n return;\n }\n this._clientId = value;\n }\n get clientId() {\n let clientId = this._clientId;\n if (!clientId) {\n clientId = this._clientId = uuid();\n }\n return this._clientId;\n }\n set peerId(value) {\n if (!value) {\n return;\n }\n this._peerId = value;\n }\n get peerId() {\n return this._peerId;\n }\n set clientMeta(value) {\n }\n get clientMeta() {\n let clientMeta = this._clientMeta;\n if (!clientMeta) {\n clientMeta = this._clientMeta = getClientMeta();\n }\n return clientMeta;\n }\n set peerMeta(value) {\n this._peerMeta = value;\n }\n get peerMeta() {\n const peerMeta = this._peerMeta;\n return peerMeta;\n }\n set handshakeTopic(value) {\n if (!value) {\n return;\n }\n this._handshakeTopic = value;\n }\n get handshakeTopic() {\n return this._handshakeTopic;\n }\n set handshakeId(value) {\n if (!value) {\n return;\n }\n this._handshakeId = value;\n }\n get handshakeId() {\n return this._handshakeId;\n }\n get uri() {\n const _uri = this._formatUri();\n return _uri;\n }\n set uri(value) {\n if (!value) {\n return;\n }\n const { handshakeTopic, bridge, key } = this._parseUri(value);\n this.handshakeTopic = handshakeTopic;\n this.bridge = bridge;\n this.key = key;\n }\n set chainId(value) {\n this._chainId = value;\n }\n get chainId() {\n const chainId = this._chainId;\n return chainId;\n }\n set networkId(value) {\n this._networkId = value;\n }\n get networkId() {\n const networkId = this._networkId;\n return networkId;\n }\n set accounts(value) {\n this._accounts = value;\n }\n get accounts() {\n const accounts = this._accounts;\n return accounts;\n }\n set rpcUrl(value) {\n this._rpcUrl = value;\n }\n get rpcUrl() {\n const rpcUrl = this._rpcUrl;\n return rpcUrl;\n }\n set connected(value) {\n }\n get connected() {\n return this._connected;\n }\n set pending(value) {\n }\n get pending() {\n return !!this._handshakeTopic;\n }\n get session() {\n return {\n connected: this.connected,\n accounts: this.accounts,\n chainId: this.chainId,\n bridge: this.bridge,\n key: this.key,\n clientId: this.clientId,\n clientMeta: this.clientMeta,\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n handshakeId: this.handshakeId,\n handshakeTopic: this.handshakeTopic,\n };\n }\n set session(value) {\n if (!value) {\n return;\n }\n this._connected = value.connected;\n this.accounts = value.accounts;\n this.chainId = value.chainId;\n this.bridge = value.bridge;\n this.key = value.key;\n this.clientId = value.clientId;\n this.clientMeta = value.clientMeta;\n this.peerId = value.peerId;\n this.peerMeta = value.peerMeta;\n this.handshakeId = value.handshakeId;\n this.handshakeTopic = value.handshakeTopic;\n }\n on(event, callback) {\n const eventEmitter = {\n event,\n callback,\n };\n this._eventManager.subscribe(eventEmitter);\n }\n off(event) {\n this._eventManager.unsubscribe(event);\n }\n async createInstantRequest(instantRequest) {\n this._key = await this._generateKey();\n const request = this._formatRequest({\n method: \"wc_instantRequest\",\n params: [\n {\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n request: this._formatRequest(instantRequest),\n },\n ],\n });\n this.handshakeId = request.id;\n this.handshakeTopic = uuid();\n this._eventManager.trigger({\n event: \"display_uri\",\n params: [this.uri],\n });\n this.on(\"modal_closed\", () => {\n throw new Error(ERROR_QRCODE_MODAL_USER_CLOSED);\n });\n const endInstantRequest = () => {\n this.killSession();\n };\n try {\n const result = await this._sendCallRequest(request);\n if (result) {\n endInstantRequest();\n }\n return result;\n }\n catch (error) {\n endInstantRequest();\n throw error;\n }\n }\n async connect(opts) {\n if (!this._qrcodeModal) {\n throw new Error(ERROR_QRCODE_MODAL_NOT_PROVIDED);\n }\n if (this.connected) {\n return {\n chainId: this.chainId,\n accounts: this.accounts,\n };\n }\n await this.createSession(opts);\n return new Promise(async (resolve, reject) => {\n this.on(\"modal_closed\", () => reject(new Error(ERROR_QRCODE_MODAL_USER_CLOSED)));\n this.on(\"connect\", (error, payload) => {\n if (error) {\n return reject(error);\n }\n resolve(payload.params[0]);\n });\n });\n }\n async createSession(opts) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n if (this.pending) {\n return;\n }\n this._key = await this._generateKey();\n const request = this._formatRequest({\n method: \"wc_sessionRequest\",\n params: [\n {\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n chainId: opts && opts.chainId ? opts.chainId : null,\n },\n ],\n });\n this.handshakeId = request.id;\n this.handshakeTopic = uuid();\n this._sendSessionRequest(request, \"Session update rejected\", {\n topic: this.handshakeTopic,\n });\n this._eventManager.trigger({\n event: \"display_uri\",\n params: [this.uri],\n });\n }\n approveSession(sessionStatus) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n this.chainId = sessionStatus.chainId;\n this.accounts = sessionStatus.accounts;\n this.networkId = sessionStatus.networkId || 0;\n this.rpcUrl = sessionStatus.rpcUrl || \"\";\n const sessionParams = {\n approved: true,\n chainId: this.chainId,\n networkId: this.networkId,\n accounts: this.accounts,\n rpcUrl: this.rpcUrl,\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n };\n const response = {\n id: this.handshakeId,\n jsonrpc: \"2.0\",\n result: sessionParams,\n };\n this._sendResponse(response);\n this._connected = true;\n this._setStorageSession();\n this._eventManager.trigger({\n event: \"connect\",\n params: [\n {\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n rejectSession(sessionError) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n const message = sessionError && sessionError.message ? sessionError.message : ERROR_SESSION_REJECTED;\n const response = this._formatResponse({\n id: this.handshakeId,\n error: { message },\n });\n this._sendResponse(response);\n this._connected = false;\n this._eventManager.trigger({\n event: \"disconnect\",\n params: [{ message }],\n });\n this._removeStorageSession();\n }\n updateSession(sessionStatus) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n this.chainId = sessionStatus.chainId;\n this.accounts = sessionStatus.accounts;\n this.networkId = sessionStatus.networkId || 0;\n this.rpcUrl = sessionStatus.rpcUrl || \"\";\n const sessionParams = {\n approved: true,\n chainId: this.chainId,\n networkId: this.networkId,\n accounts: this.accounts,\n rpcUrl: this.rpcUrl,\n };\n const request = this._formatRequest({\n method: \"wc_sessionUpdate\",\n params: [sessionParams],\n });\n this._sendSessionRequest(request, \"Session update rejected\");\n this._eventManager.trigger({\n event: \"session_update\",\n params: [\n {\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n this._manageStorageSession();\n }\n async killSession(sessionError) {\n const message = sessionError ? sessionError.message : \"Session Disconnected\";\n const sessionParams = {\n approved: false,\n chainId: null,\n networkId: null,\n accounts: null,\n };\n const request = this._formatRequest({\n method: \"wc_sessionUpdate\",\n params: [sessionParams],\n });\n await this._sendRequest(request);\n this._handleSessionDisconnect(message);\n }\n async sendTransaction(tx) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const parsedTx = parseTransactionData(tx);\n const request = this._formatRequest({\n method: \"eth_sendTransaction\",\n params: [parsedTx],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signTransaction(tx) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const parsedTx = parseTransactionData(tx);\n const request = this._formatRequest({\n method: \"eth_signTransaction\",\n params: [parsedTx],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signMessage(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const request = this._formatRequest({\n method: \"eth_sign\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signPersonalMessage(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n params = parsePersonalSign(params);\n const request = this._formatRequest({\n method: \"personal_sign\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signTypedData(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const request = this._formatRequest({\n method: \"eth_signTypedData\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async updateChain(chainParams) {\n if (!this._connected) {\n throw new Error(\"Session currently disconnected\");\n }\n const request = this._formatRequest({\n method: \"wallet_updateChain\",\n params: [chainParams],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n unsafeSend(request, options) {\n this._sendRequest(request, options);\n this._eventManager.trigger({\n event: \"call_request_sent\",\n params: [{ request, options }],\n });\n return new Promise((resolve, reject) => {\n this._subscribeToResponse(request.id, (error, payload) => {\n if (error) {\n reject(error);\n return;\n }\n if (!payload) {\n throw new Error(ERROR_MISSING_JSON_RPC);\n }\n resolve(payload);\n });\n });\n }\n async sendCustomRequest(request, options) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n switch (request.method) {\n case \"eth_accounts\":\n return this.accounts;\n case \"eth_chainId\":\n return convertNumberToHex(this.chainId);\n case \"eth_sendTransaction\":\n case \"eth_signTransaction\":\n if (request.params) {\n request.params[0] = parseTransactionData(request.params[0]);\n }\n break;\n case \"personal_sign\":\n if (request.params) {\n request.params = parsePersonalSign(request.params);\n }\n break;\n default:\n break;\n }\n const formattedRequest = this._formatRequest(request);\n const result = await this._sendCallRequest(formattedRequest, options);\n return result;\n }\n approveRequest(response) {\n if (isJsonRpcResponseSuccess(response)) {\n const formattedResponse = this._formatResponse(response);\n this._sendResponse(formattedResponse);\n }\n else {\n throw new Error(ERROR_MISSING_RESULT);\n }\n }\n rejectRequest(response) {\n if (isJsonRpcResponseError(response)) {\n const formattedResponse = this._formatResponse(response);\n this._sendResponse(formattedResponse);\n }\n else {\n throw new Error(ERROR_MISSING_ERROR);\n }\n }\n transportClose() {\n this._transport.close();\n }\n async _sendRequest(request, options) {\n const callRequest = this._formatRequest(request);\n const encryptionPayload = await this._encrypt(callRequest);\n const topic = typeof (options === null || options === void 0 ? void 0 : options.topic) !== \"undefined\" ? options.topic : this.peerId;\n const payload = JSON.stringify(encryptionPayload);\n const silent = typeof (options === null || options === void 0 ? void 0 : options.forcePushNotification) !== \"undefined\"\n ? !options.forcePushNotification\n : isSilentPayload(callRequest);\n this._transport.send(payload, topic, silent);\n }\n async _sendResponse(response) {\n const encryptionPayload = await this._encrypt(response);\n const topic = this.peerId;\n const payload = JSON.stringify(encryptionPayload);\n const silent = true;\n this._transport.send(payload, topic, silent);\n }\n async _sendSessionRequest(request, errorMsg, options) {\n this._sendRequest(request, options);\n this._subscribeToSessionResponse(request.id, errorMsg);\n }\n _sendCallRequest(request, options) {\n this._sendRequest(request, options);\n this._eventManager.trigger({\n event: \"call_request_sent\",\n params: [{ request, options }],\n });\n return this._subscribeToCallResponse(request.id);\n }\n _formatRequest(request) {\n if (typeof request.method === \"undefined\") {\n throw new Error(ERROR_MISSING_METHOD);\n }\n const formattedRequest = {\n id: typeof request.id === \"undefined\" ? payloadId() : request.id,\n jsonrpc: \"2.0\",\n method: request.method,\n params: typeof request.params === \"undefined\" ? [] : request.params,\n };\n return formattedRequest;\n }\n _formatResponse(response) {\n if (typeof response.id === \"undefined\") {\n throw new Error(ERROR_MISSING_ID);\n }\n const baseResponse = { id: response.id, jsonrpc: \"2.0\" };\n if (isJsonRpcResponseError(response)) {\n const error = formatRpcError(response.error);\n const errorResponse = Object.assign(Object.assign(Object.assign({}, baseResponse), response), { error });\n return errorResponse;\n }\n else if (isJsonRpcResponseSuccess(response)) {\n const successResponse = Object.assign(Object.assign({}, baseResponse), response);\n return successResponse;\n }\n throw new Error(ERROR_INVALID_RESPONSE);\n }\n _handleSessionDisconnect(errorMsg) {\n const message = errorMsg || \"Session Disconnected\";\n if (!this._connected) {\n if (this._qrcodeModal) {\n this._qrcodeModal.close();\n }\n removeLocal(mobileLinkChoiceKey);\n }\n if (this._connected) {\n this._connected = false;\n }\n if (this._handshakeId) {\n this._handshakeId = 0;\n }\n if (this._handshakeTopic) {\n this._handshakeTopic = \"\";\n }\n if (this._peerId) {\n this._peerId = \"\";\n }\n this._eventManager.trigger({\n event: \"disconnect\",\n params: [{ message }],\n });\n this._removeStorageSession();\n this.transportClose();\n }\n _handleSessionResponse(errorMsg, sessionParams) {\n if (sessionParams) {\n if (sessionParams.approved) {\n if (!this._connected) {\n this._connected = true;\n if (sessionParams.chainId) {\n this.chainId = sessionParams.chainId;\n }\n if (sessionParams.accounts) {\n this.accounts = sessionParams.accounts;\n }\n if (sessionParams.peerId && !this.peerId) {\n this.peerId = sessionParams.peerId;\n }\n if (sessionParams.peerMeta && !this.peerMeta) {\n this.peerMeta = sessionParams.peerMeta;\n }\n this._eventManager.trigger({\n event: \"connect\",\n params: [\n {\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n else {\n if (sessionParams.chainId) {\n this.chainId = sessionParams.chainId;\n }\n if (sessionParams.accounts) {\n this.accounts = sessionParams.accounts;\n }\n this._eventManager.trigger({\n event: \"session_update\",\n params: [\n {\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n this._manageStorageSession();\n }\n else {\n this._handleSessionDisconnect(errorMsg);\n }\n }\n else {\n this._handleSessionDisconnect(errorMsg);\n }\n }\n async _handleIncomingMessages(socketMessage) {\n const activeTopics = [this.clientId, this.handshakeTopic];\n if (!activeTopics.includes(socketMessage.topic)) {\n return;\n }\n let encryptionPayload;\n try {\n encryptionPayload = JSON.parse(socketMessage.payload);\n }\n catch (error) {\n return;\n }\n const payload = await this._decrypt(encryptionPayload);\n if (payload) {\n this._eventManager.trigger(payload);\n }\n }\n _subscribeToSessionRequest() {\n this._transport.subscribe(this.handshakeTopic);\n }\n _subscribeToResponse(id, callback) {\n this.on(`response:${id}`, callback);\n }\n _subscribeToSessionResponse(id, errorMsg) {\n this._subscribeToResponse(id, (error, payload) => {\n if (error) {\n this._handleSessionResponse(error.message);\n return;\n }\n if (isJsonRpcResponseSuccess(payload)) {\n this._handleSessionResponse(errorMsg, payload.result);\n }\n else if (payload.error && payload.error.message) {\n this._handleSessionResponse(payload.error.message);\n }\n else {\n this._handleSessionResponse(errorMsg);\n }\n });\n }\n _subscribeToCallResponse(id) {\n return new Promise((resolve, reject) => {\n this._subscribeToResponse(id, (error, payload) => {\n if (error) {\n reject(error);\n return;\n }\n if (isJsonRpcResponseSuccess(payload)) {\n resolve(payload.result);\n }\n else if (payload.error && payload.error.message) {\n reject(new Error(payload.error.message));\n }\n else {\n reject(new Error(ERROR_INVALID_RESPONSE));\n }\n });\n });\n }\n _subscribeToInternalEvents() {\n this.on(\"display_uri\", () => {\n if (this._qrcodeModal) {\n this._qrcodeModal.open(this.uri, () => {\n this._eventManager.trigger({\n event: \"modal_closed\",\n params: [],\n });\n }, this._qrcodeModalOptions);\n }\n });\n this.on(\"connect\", () => {\n if (this._qrcodeModal) {\n this._qrcodeModal.close();\n }\n });\n this.on(\"call_request_sent\", (error, payload) => {\n const { request } = payload.params[0];\n if (isMobile() && this._signingMethods.includes(request.method)) {\n const mobileLinkUrl = getLocal(mobileLinkChoiceKey);\n if (mobileLinkUrl) {\n window.location.href = mobileLinkUrl.href;\n }\n }\n });\n this.on(\"wc_sessionRequest\", (error, payload) => {\n if (error) {\n this._eventManager.trigger({\n event: \"error\",\n params: [\n {\n code: \"SESSION_REQUEST_ERROR\",\n message: error.toString(),\n },\n ],\n });\n }\n this.handshakeId = payload.id;\n this.peerId = payload.params[0].peerId;\n this.peerMeta = payload.params[0].peerMeta;\n const internalPayload = Object.assign(Object.assign({}, payload), { method: \"session_request\" });\n this._eventManager.trigger(internalPayload);\n });\n this.on(\"wc_sessionUpdate\", (error, payload) => {\n if (error) {\n this._handleSessionResponse(error.message);\n }\n this._handleSessionResponse(\"Session disconnected\", payload.params[0]);\n });\n }\n _initTransport() {\n this._transport.on(\"message\", (socketMessage) => this._handleIncomingMessages(socketMessage));\n this._transport.on(\"open\", () => this._eventManager.trigger({ event: \"transport_open\", params: [] }));\n this._transport.on(\"close\", () => this._eventManager.trigger({ event: \"transport_close\", params: [] }));\n this._transport.on(\"error\", () => this._eventManager.trigger({\n event: \"transport_error\",\n params: [\"Websocket connection failed\"],\n }));\n this._transport.open();\n }\n _formatUri() {\n const protocol = this.protocol;\n const handshakeTopic = this.handshakeTopic;\n const version = this.version;\n const bridge = encodeURIComponent(this.bridge);\n const key = this.key;\n const uri = `${protocol}:${handshakeTopic}@${version}?bridge=${bridge}&key=${key}`;\n return uri;\n }\n _parseUri(uri) {\n const result = parseWalletConnectUri(uri);\n if (result.protocol === this.protocol) {\n if (!result.handshakeTopic) {\n throw Error(\"Invalid or missing handshakeTopic parameter value\");\n }\n const handshakeTopic = result.handshakeTopic;\n if (!result.bridge) {\n throw Error(\"Invalid or missing bridge url parameter value\");\n }\n const bridge = decodeURIComponent(result.bridge);\n if (!result.key) {\n throw Error(\"Invalid or missing key parameter value\");\n }\n const key = result.key;\n return { handshakeTopic, bridge, key };\n }\n else {\n throw new Error(ERROR_INVALID_URI);\n }\n }\n async _generateKey() {\n if (this._cryptoLib) {\n const result = await this._cryptoLib.generateKey();\n return result;\n }\n return null;\n }\n async _encrypt(data) {\n const key = this._key;\n if (this._cryptoLib && key) {\n const result = await this._cryptoLib.encrypt(data, key);\n return result;\n }\n return null;\n }\n async _decrypt(payload) {\n const key = this._key;\n if (this._cryptoLib && key) {\n const result = await this._cryptoLib.decrypt(payload, key);\n return result;\n }\n return null;\n }\n _getStorageSession() {\n let result = null;\n if (this._sessionStorage) {\n result = this._sessionStorage.getSession();\n }\n return result;\n }\n _setStorageSession() {\n if (this._sessionStorage) {\n this._sessionStorage.setSession(this.session);\n }\n }\n _removeStorageSession() {\n if (this._sessionStorage) {\n this._sessionStorage.removeSession();\n }\n }\n _manageStorageSession() {\n if (this._connected) {\n this._setStorageSession();\n }\n else {\n this._removeStorageSession();\n }\n }\n _registerPushServer(pushServerOpts) {\n if (!pushServerOpts.url || typeof pushServerOpts.url !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.url parameter value\");\n }\n if (!pushServerOpts.type || typeof pushServerOpts.type !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.type parameter value\");\n }\n if (!pushServerOpts.token || typeof pushServerOpts.token !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.token parameter value\");\n }\n const pushSubscription = {\n bridge: this.bridge,\n topic: this.clientId,\n type: pushServerOpts.type,\n token: pushServerOpts.token,\n peerName: \"\",\n language: pushServerOpts.language || \"\",\n };\n this.on(\"connect\", async (error, payload) => {\n if (error) {\n throw error;\n }\n if (pushServerOpts.peerMeta) {\n const peerName = payload.params[0].peerMeta.name;\n pushSubscription.peerName = peerName;\n }\n try {\n const response = await fetch(`${pushServerOpts.url}/new`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(pushSubscription),\n });\n const json = await response.json();\n if (!json.success) {\n throw Error(\"Failed to register in Push Server\");\n }\n }\n catch (error) {\n throw Error(\"Failed to register in Push Server\");\n }\n });\n }\n}\nexport default Connector;\n//# sourceMappingURL=index.js.map","import * as env from \"@walletconnect/environment\";\nexport function randomBytes(length) {\n const browserCrypto = env.getBrowerCrypto();\n return browserCrypto.getRandomValues(new Uint8Array(length));\n}\n//# sourceMappingURL=index.js.map","export const LENGTH_0 = 0;\nexport const LENGTH_1 = 1;\nexport const LENGTH_16 = 16;\nexport const LENGTH_32 = 32;\nexport const LENGTH_64 = 64;\nexport const LENGTH_128 = 128;\nexport const LENGTH_256 = 256;\nexport const LENGTH_512 = 512;\nexport const LENGTH_1024 = 1024;\n//# sourceMappingURL=length.js.map","import { LENGTH_1, LENGTH_32, LENGTH_16, LENGTH_256 } from \"./length\";\nexport const AES_LENGTH = LENGTH_256;\nexport const HMAC_LENGTH = LENGTH_256;\nexport const AES_BROWSER_ALGO = \"AES-CBC\";\nexport const HMAC_BROWSER_ALGO = `SHA-${AES_LENGTH}`;\nexport const HMAC_BROWSER = \"HMAC\";\nexport const SHA256_BROWSER_ALGO = \"SHA-256\";\nexport const SHA512_BROWSER_ALGO = \"SHA-512\";\nexport const AES_NODE_ALGO = `aes-${AES_LENGTH}-cbc`;\nexport const HMAC_NODE_ALGO = `sha${HMAC_LENGTH}`;\nexport const SHA256_NODE_ALGO = \"sha256\";\nexport const SHA512_NODE_ALGO = \"sha512\";\nexport const RIPEMD160_NODE_ALGO = \"ripemd160\";\nexport const PREFIX_LENGTH = LENGTH_1;\nexport const KEY_LENGTH = LENGTH_32;\nexport const IV_LENGTH = LENGTH_16;\nexport const MAC_LENGTH = LENGTH_32;\n//# sourceMappingURL=default.js.map","export const ENCRYPT_OP = \"encrypt\";\nexport const DECRYPT_OP = \"decrypt\";\nexport const SIGN_OP = \"sign\";\nexport const VERIFY_OP = \"verify\";\n//# sourceMappingURL=operations.js.map","export * from \"./default\";\nexport * from \"./encoding\";\nexport * from \"./error\";\nexport * from \"./length\";\nexport * from \"./operations\";\n//# sourceMappingURL=index.js.map","import * as env from \"@walletconnect/environment\";\nimport { ENCRYPT_OP, DECRYPT_OP, SIGN_OP, VERIFY_OP, AES_BROWSER_ALGO, AES_LENGTH, HMAC_BROWSER_ALGO, HMAC_BROWSER, HMAC_LENGTH, SHA256_BROWSER_ALGO, SHA512_BROWSER_ALGO, LENGTH_512, } from \"../constants\";\nexport function getAlgo(type) {\n return type === AES_BROWSER_ALGO\n ? { length: AES_LENGTH, name: AES_BROWSER_ALGO }\n : {\n hash: { name: HMAC_BROWSER_ALGO },\n name: HMAC_BROWSER,\n };\n}\nexport function getOps(type) {\n return type === AES_BROWSER_ALGO\n ? [ENCRYPT_OP, DECRYPT_OP]\n : [SIGN_OP, VERIFY_OP];\n}\nexport async function browserExportKey(cryptoKey, type = AES_BROWSER_ALGO) {\n const subtle = env.getSubtleCrypto();\n return new Uint8Array(await subtle.exportKey(\"raw\", cryptoKey));\n}\nexport async function browserImportKey(buffer, type = AES_BROWSER_ALGO) {\n return env.getSubtleCrypto().importKey(\"raw\", buffer, getAlgo(type), true, getOps(type));\n}\nexport async function browserAesEncrypt(iv, key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, AES_BROWSER_ALGO);\n const result = await subtle.encrypt({\n iv,\n name: AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nexport async function browserAesDecrypt(iv, key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, AES_BROWSER_ALGO);\n const result = await subtle.decrypt({\n iv,\n name: AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nexport async function browserHmacSha256Sign(key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, HMAC_BROWSER);\n const signature = await subtle.sign({\n length: HMAC_LENGTH,\n name: HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function browserHmacSha512Sign(key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, HMAC_BROWSER);\n const signature = await subtle.sign({\n length: LENGTH_512,\n name: HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function browserSha256(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA256_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\nexport async function browserSha512(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA512_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\n//# sourceMappingURL=browser.js.map","import { browserAesDecrypt, browserAesEncrypt } from \"../lib/browser\";\nexport function aesCbcEncrypt(iv, key, data) {\n return browserAesEncrypt(iv, key, data);\n}\nexport function aesCbcDecrypt(iv, key, data) {\n return browserAesDecrypt(iv, key, data);\n}\n//# sourceMappingURL=aes.js.map","export * from \"@walletconnect/environment\";\n//# sourceMappingURL=env.js.map","const PADDING = [\n [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16],\n [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15],\n [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],\n [13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13],\n [12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],\n [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],\n [10, 10, 10, 10, 10, 10, 10, 10, 10, 10],\n [9, 9, 9, 9, 9, 9, 9, 9, 9],\n [8, 8, 8, 8, 8, 8, 8, 8],\n [7, 7, 7, 7, 7, 7, 7],\n [6, 6, 6, 6, 6, 6],\n [5, 5, 5, 5, 5],\n [4, 4, 4, 4],\n [3, 3, 3],\n [2, 2],\n [1],\n];\nexport const pkcs7 = {\n pad(plaintext) {\n const padding = PADDING[plaintext.byteLength % 16 || 0];\n const result = new Uint8Array(plaintext.byteLength + padding.length);\n result.set(plaintext);\n result.set(padding, plaintext.byteLength);\n return result;\n },\n unpad(padded) {\n return padded.subarray(0, padded.byteLength - padded[padded.byteLength - 1]);\n },\n};\n//# sourceMappingURL=pkcs7.js.map","export * from \"./env\";\nexport * from \"./pkcs7\";\nexport * from \"./types\";\nexport * from \"./validators\";\n//# sourceMappingURL=index.js.map","import { browserHmacSha256Sign, browserHmacSha512Sign } from \"../lib/browser\";\nimport { isConstantTime } from \"../helpers\";\nexport async function hmacSha256Sign(key, msg) {\n const result = await browserHmacSha256Sign(key, msg);\n return result;\n}\nexport async function hmacSha256Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha256Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\nexport async function hmacSha512Sign(key, msg) {\n const result = await browserHmacSha512Sign(key, msg);\n return result;\n}\nexport async function hmacSha512Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha512Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\n//# sourceMappingURL=hmac.js.map","import { browserSha256, browserSha512 } from \"../lib/browser\";\nexport async function sha256(msg) {\n const result = await browserSha256(msg);\n return result;\n}\nexport async function sha512(msg) {\n const result = await browserSha512(msg);\n return result;\n}\nexport async function ripemd160(msg) {\n throw new Error(\"Not supported for Browser async methods, use sync instead!\");\n}\n//# sourceMappingURL=sha2.js.map","export * from \"@walletconnect/randombytes\";\nexport * from \"./aes\";\nexport * from \"./hmac\";\nexport * from \"./sha2\";\nexport * from \"../helpers\";\nexport * from \"../constants\";\n//# sourceMappingURL=index.js.map","import * as crypto from \"@walletconnect/crypto\";\nimport * as encoding from \"@walletconnect/encoding\";\nimport { convertArrayBufferToBuffer, convertBufferToArrayBuffer } from \"@walletconnect/utils\";\nexport async function generateKey(length) {\n const _length = (length || 256) / 8;\n const bytes = crypto.randomBytes(_length);\n const result = convertBufferToArrayBuffer(encoding.arrayToBuffer(bytes));\n return result;\n}\nexport async function verifyHmac(payload, key) {\n const cipherText = encoding.hexToArray(payload.data);\n const iv = encoding.hexToArray(payload.iv);\n const hmac = encoding.hexToArray(payload.hmac);\n const hmacHex = encoding.arrayToHex(hmac, false);\n const unsigned = encoding.concatArrays(cipherText, iv);\n const chmac = await crypto.hmacSha256Sign(key, unsigned);\n const chmacHex = encoding.arrayToHex(chmac, false);\n if (encoding.removeHexPrefix(hmacHex) === encoding.removeHexPrefix(chmacHex)) {\n return true;\n }\n return false;\n}\nexport async function encrypt(data, key, providedIv) {\n const _key = encoding.bufferToArray(convertArrayBufferToBuffer(key));\n const ivArrayBuffer = providedIv || (await generateKey(128));\n const iv = encoding.bufferToArray(convertArrayBufferToBuffer(ivArrayBuffer));\n const ivHex = encoding.arrayToHex(iv, false);\n const contentString = JSON.stringify(data);\n const content = encoding.utf8ToArray(contentString);\n const cipherText = await crypto.aesCbcEncrypt(iv, _key, content);\n const cipherTextHex = encoding.arrayToHex(cipherText, false);\n const unsigned = encoding.concatArrays(cipherText, iv);\n const hmac = await crypto.hmacSha256Sign(_key, unsigned);\n const hmacHex = encoding.arrayToHex(hmac, false);\n return {\n data: cipherTextHex,\n hmac: hmacHex,\n iv: ivHex,\n };\n}\nexport async function decrypt(payload, key) {\n const _key = encoding.bufferToArray(convertArrayBufferToBuffer(key));\n if (!_key) {\n throw new Error(\"Missing key: required for decryption\");\n }\n const verified = await verifyHmac(payload, _key);\n if (!verified) {\n return null;\n }\n const cipherText = encoding.hexToArray(payload.data);\n const iv = encoding.hexToArray(payload.iv);\n const buffer = await crypto.aesCbcDecrypt(iv, _key, cipherText);\n const utf8 = encoding.arrayToUtf8(buffer);\n let data;\n try {\n data = JSON.parse(utf8);\n }\n catch (error) {\n return null;\n }\n return data;\n}\n//# sourceMappingURL=index.js.map","import Connector from \"@walletconnect/core\";\nimport * as cryptoLib from \"@walletconnect/iso-crypto\";\nclass WalletConnect extends Connector {\n constructor(connectorOpts, pushServerOpts) {\n super({\n cryptoLib,\n connectorOpts,\n pushServerOpts,\n });\n }\n}\nexport default WalletConnect;\n//# sourceMappingURL=index.js.map","import EventEmitter from \"eventemitter3\";\nimport WalletConnect from \"@walletconnect/client\";\nimport QRCodeModal from \"@walletconnect/qrcode-modal\";\nimport { IJsonRpcConnection } from \"@walletconnect/jsonrpc-types\";\nimport { formatJsonRpcError } from \"@walletconnect/jsonrpc-utils\";\nexport class SignerConnection extends IJsonRpcConnection {\n constructor(opts) {\n super();\n this.events = new EventEmitter();\n this.accounts = [];\n this.chainId = 1;\n this.pending = false;\n this.bridge = \"https://bridge.walletconnect.org\";\n this.qrcode = true;\n this.qrcodeModalOptions = undefined;\n this.opts = opts;\n this.chainId = (opts === null || opts === void 0 ? void 0 : opts.chainId) || this.chainId;\n this.wc = this.register(opts);\n }\n get connected() {\n return typeof this.wc !== \"undefined\" && this.wc.connected;\n }\n get connecting() {\n return this.pending;\n }\n get connector() {\n this.wc = this.register(this.opts);\n return this.wc;\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n async open(chainId) {\n if (this.connected) {\n this.onOpen();\n return;\n }\n return new Promise((resolve, reject) => {\n this.on(\"error\", err => {\n reject(err);\n });\n this.on(\"open\", () => {\n resolve();\n });\n this.create(chainId);\n });\n }\n async close() {\n if (typeof this.wc === \"undefined\")\n return;\n if (this.wc.connected) {\n this.wc.killSession();\n }\n this.onClose();\n }\n async send(payload) {\n this.wc = this.register(this.opts);\n if (!this.connected)\n await this.open();\n this.sendPayload(payload)\n .then((res) => this.events.emit(\"payload\", res))\n .catch(e => this.events.emit(\"payload\", formatJsonRpcError(payload.id, e.message)));\n }\n register(opts) {\n if (this.wc)\n return this.wc;\n this.opts = opts || this.opts;\n this.bridge = (opts === null || opts === void 0 ? void 0 : opts.connector)\n ? opts.connector.bridge\n : (opts === null || opts === void 0 ? void 0 : opts.bridge) || \"https://bridge.walletconnect.org\";\n this.qrcode = typeof (opts === null || opts === void 0 ? void 0 : opts.qrcode) === \"undefined\" || opts.qrcode !== false;\n this.chainId = typeof (opts === null || opts === void 0 ? void 0 : opts.chainId) !== \"undefined\" ? opts.chainId : this.chainId;\n this.qrcodeModalOptions = opts === null || opts === void 0 ? void 0 : opts.qrcodeModalOptions;\n const connectorOpts = {\n bridge: this.bridge,\n qrcodeModal: this.qrcode ? QRCodeModal : undefined,\n qrcodeModalOptions: this.qrcodeModalOptions,\n storageId: opts === null || opts === void 0 ? void 0 : opts.storageId,\n signingMethods: opts === null || opts === void 0 ? void 0 : opts.signingMethods,\n clientMeta: opts === null || opts === void 0 ? void 0 : opts.clientMeta,\n };\n this.wc =\n typeof (opts === null || opts === void 0 ? void 0 : opts.connector) !== \"undefined\" ? opts.connector : new WalletConnect(connectorOpts);\n if (typeof this.wc === \"undefined\") {\n throw new Error(\"Failed to register WalletConnect connector\");\n }\n if (this.wc.accounts.length) {\n this.accounts = this.wc.accounts;\n }\n if (this.wc.chainId) {\n this.chainId = this.wc.chainId;\n }\n this.registerConnectorEvents();\n return this.wc;\n }\n onOpen(wc) {\n this.pending = false;\n if (wc) {\n this.wc = wc;\n }\n this.events.emit(\"open\");\n }\n onClose() {\n this.pending = false;\n if (this.wc) {\n this.wc = undefined;\n }\n this.events.emit(\"close\");\n }\n onError(payload, message = \"Failed or Rejected Request\", code = -32000) {\n const errorPayload = {\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n error: { code, message },\n };\n this.events.emit(\"payload\", errorPayload);\n return errorPayload;\n }\n create(chainId) {\n this.wc = this.register(this.opts);\n this.chainId = chainId || this.chainId;\n if (this.connected || this.pending)\n return;\n this.pending = true;\n this.registerConnectorEvents();\n this.wc\n .createSession({ chainId: this.chainId })\n .then(() => this.events.emit(\"created\"))\n .catch((e) => this.events.emit(\"error\", e));\n }\n registerConnectorEvents() {\n this.wc = this.register(this.opts);\n this.wc.on(\"connect\", (err) => {\n var _a, _b;\n if (err) {\n this.events.emit(\"error\", err);\n return;\n }\n this.accounts = ((_a = this.wc) === null || _a === void 0 ? void 0 : _a.accounts) || [];\n this.chainId = ((_b = this.wc) === null || _b === void 0 ? void 0 : _b.chainId) || this.chainId;\n this.onOpen();\n });\n this.wc.on(\"disconnect\", (err) => {\n if (err) {\n this.events.emit(\"error\", err);\n return;\n }\n this.onClose();\n });\n this.wc.on(\"modal_closed\", () => {\n this.events.emit(\"error\", new Error(\"User closed modal\"));\n });\n this.wc.on(\"session_update\", (error, payload) => {\n const { accounts, chainId } = payload.params[0];\n if (!this.accounts || (accounts && this.accounts !== accounts)) {\n this.accounts = accounts;\n this.events.emit(\"accountsChanged\", accounts);\n }\n if (!this.chainId || (chainId && this.chainId !== chainId)) {\n this.chainId = chainId;\n this.events.emit(\"chainChanged\", chainId);\n }\n });\n }\n async sendPayload(payload) {\n this.wc = this.register(this.opts);\n try {\n const response = await this.wc.unsafeSend(payload);\n return this.sanitizeResponse(response);\n }\n catch (error) {\n return this.onError(payload, error.message);\n }\n }\n sanitizeResponse(response) {\n return typeof response.error !== \"undefined\" &&\n typeof response.error.code === \"undefined\"\n ? formatJsonRpcError(response.id, response.error.message)\n : response;\n }\n}\nexport default SignerConnection;\n//# sourceMappingURL=index.js.map","import EventEmitter from \"eventemitter3\";\nimport { JsonRpcProvider } from \"@walletconnect/jsonrpc-provider\";\nimport { HttpConnection } from \"@walletconnect/jsonrpc-http-connection\";\nimport { getRpcUrl, signingMethods } from \"@walletconnect/utils\";\nimport { SignerConnection } from \"@walletconnect/signer-connection\";\nclass WalletConnectProvider {\n constructor(opts) {\n this.events = new EventEmitter();\n this.rpc = { infuraId: opts === null || opts === void 0 ? void 0 : opts.infuraId, custom: opts === null || opts === void 0 ? void 0 : opts.rpc };\n this.signer = new JsonRpcProvider(new SignerConnection(opts));\n const chainId = this.signer.connection.chainId || (opts === null || opts === void 0 ? void 0 : opts.chainId) || 1;\n this.http = this.setHttpProvider(chainId);\n this.registerEventListeners();\n }\n get connected() {\n return this.signer.connection.connected;\n }\n get connector() {\n return this.signer.connection.connector;\n }\n get accounts() {\n return this.signer.connection.accounts;\n }\n get chainId() {\n return this.signer.connection.chainId;\n }\n get rpcUrl() {\n var _a;\n return ((_a = this.http) === null || _a === void 0 ? void 0 : _a.connection).url || \"\";\n }\n async request(args) {\n switch (args.method) {\n case \"eth_requestAccounts\":\n await this.connect();\n return this.signer.connection.accounts;\n case \"eth_accounts\":\n return this.signer.connection.accounts;\n case \"eth_chainId\":\n return this.signer.connection.chainId;\n default:\n break;\n }\n if (signingMethods.includes(args.method)) {\n return this.signer.request(args);\n }\n if (typeof this.http === \"undefined\") {\n throw new Error(`Cannot request JSON-RPC method (${args.method}) without provided rpc url`);\n }\n return this.http.request(args);\n }\n sendAsync(args, callback) {\n this.request(args)\n .then(response => callback(null, response))\n .catch(error => callback(error, undefined));\n }\n async enable() {\n const accounts = await this.request({ method: \"eth_requestAccounts\" });\n return accounts;\n }\n async connect() {\n if (!this.signer.connection.connected) {\n await this.signer.connect();\n }\n }\n async disconnect() {\n if (this.signer.connection.connected) {\n await this.signer.disconnect();\n }\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n get isWalletConnect() {\n return true;\n }\n registerEventListeners() {\n this.signer.connection.on(\"accountsChanged\", accounts => {\n this.events.emit(\"accountsChanged\", accounts);\n });\n this.signer.connection.on(\"chainChanged\", chainId => {\n this.http = this.setHttpProvider(chainId);\n this.events.emit(\"chainChanged\", chainId);\n });\n this.signer.on(\"disconnect\", () => {\n this.events.emit(\"disconnect\");\n });\n }\n setHttpProvider(chainId) {\n const rpcUrl = getRpcUrl(chainId, this.rpc);\n if (typeof rpcUrl === \"undefined\")\n return undefined;\n const http = new JsonRpcProvider(new HttpConnection(rpcUrl));\n return http;\n }\n}\nexport default WalletConnectProvider;\n//# sourceMappingURL=index.js.map","export * from \"./jsonrpc\";\nexport * from \"./misc\";\nexport * from \"./provider\";\nexport * from \"./validator\";\n//# sourceMappingURL=index.js.map","//# sourceMappingURL=jsonrpc.js.map","export class IEvents {\n}\n//# sourceMappingURL=misc.js.map","import { IEvents } from \"./misc\";\nexport class IJsonRpcConnection extends IEvents {\n constructor(opts) {\n super();\n }\n}\nexport class IBaseJsonRpcProvider extends IEvents {\n constructor() {\n super();\n }\n}\nexport class IJsonRpcProvider extends IBaseJsonRpcProvider {\n constructor(connection) {\n super();\n }\n}\n//# sourceMappingURL=provider.js.map","//# sourceMappingURL=validator.js.map","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { isNode } from \"@walletconnect/environment\";\nexport const isNodeJs = isNode;\nexport * from \"@walletconnect/environment\";\n//# sourceMappingURL=env.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId() {\n const date = Date.now() * Math.pow(10, 3);\n const extra = Math.floor(Math.random() * Math.pow(10, 3));\n return date + extra;\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nexport function formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","export * from \"./constants\";\nexport * from \"./error\";\nexport * from \"./env\";\nexport * from \"./format\";\nexport * from \"./routing\";\nexport * from \"./types\";\nexport * from \"./url\";\nexport * from \"./validators\";\n//# sourceMappingURL=index.js.map","export * from \"@walletconnect/jsonrpc-types\";\n//# sourceMappingURL=types.js.map","const HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n if (!matches || !matches.length)\n return;\n return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n const protocol = getUrlProtocol(url);\n if (typeof protocol === \"undefined\")\n return false;\n return new RegExp(regex).test(protocol);\n}\nexport function isHttpUrl(url) {\n return matchRegexProtocol(url, HTTP_REGEX);\n}\nexport function isWsUrl(url) {\n return matchRegexProtocol(url, WS_REGEX);\n}\nexport function isLocalhostUrl(url) {\n return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map","export function isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar browserUtils = require('@walletconnect/browser-utils');\nvar QRCode = _interopDefault(require('qrcode'));\nvar copy = _interopDefault(require('copy-to-clipboard'));\nvar React = require('preact/compat');\n\nfunction open(uri) {\n QRCode.toString(uri, {\n type: \"terminal\"\n }).then(console.log);\n}\n\nvar WALLETCONNECT_STYLE_SHEET = \":root {\\n --animation-duration: 300ms;\\n}\\n\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeOut {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n\\n.animated {\\n animation-duration: var(--animation-duration);\\n animation-fill-mode: both;\\n}\\n\\n.fadeIn {\\n animation-name: fadeIn;\\n}\\n\\n.fadeOut {\\n animation-name: fadeOut;\\n}\\n\\n#walletconnect-wrapper {\\n -webkit-user-select: none;\\n align-items: center;\\n display: flex;\\n height: 100%;\\n justify-content: center;\\n left: 0;\\n pointer-events: none;\\n position: fixed;\\n top: 0;\\n user-select: none;\\n width: 100%;\\n z-index: 99999999999999;\\n}\\n\\n.walletconnect-modal__headerLogo {\\n height: 21px;\\n}\\n\\n.walletconnect-modal__header p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n align-items: flex-start;\\n display: flex;\\n flex: 1;\\n margin-left: 5px;\\n}\\n\\n.walletconnect-modal__close__wrapper {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n z-index: 10000;\\n background: white;\\n border-radius: 26px;\\n padding: 6px;\\n box-sizing: border-box;\\n width: 26px;\\n height: 26px;\\n cursor: pointer;\\n}\\n\\n.walletconnect-modal__close__icon {\\n position: relative;\\n top: 7px;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transform: rotate(45deg);\\n}\\n\\n.walletconnect-modal__close__line1 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n}\\n\\n.walletconnect-modal__close__line2 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n transform: rotate(90deg);\\n}\\n\\n.walletconnect-qrcode__base {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n background: rgba(37, 41, 46, 0.95);\\n height: 100%;\\n left: 0;\\n pointer-events: auto;\\n position: fixed;\\n top: 0;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n width: 100%;\\n will-change: opacity;\\n padding: 40px;\\n box-sizing: border-box;\\n}\\n\\n.walletconnect-qrcode__text {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 10px 0 20px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-qrcode__text {\\n font-size: 4vw;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-qrcode__text {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-qrcode__image {\\n width: calc(100% - 30px);\\n box-sizing: border-box;\\n cursor: none;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-qrcode__notification {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n font-size: 16px;\\n padding: 16px 20px;\\n border-radius: 16px;\\n text-align: center;\\n transition: all 0.1s ease-in-out;\\n background: white;\\n color: black;\\n margin-bottom: -60px;\\n opacity: 0;\\n}\\n\\n.walletconnect-qrcode__notification.notification__show {\\n opacity: 1;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__header {\\n height: 130px;\\n }\\n .walletconnect-modal__base {\\n overflow: auto;\\n }\\n}\\n\\n@media only screen and (min-device-width: 415px) and (max-width: 768px) {\\n #content {\\n max-width: 768px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 375px) and (max-width: 415px) {\\n #content {\\n max-width: 414px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 320px) and (max-width: 375px) {\\n #content {\\n max-width: 375px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n #content {\\n max-width: 320px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.walletconnect-modal__base {\\n -webkit-font-smoothing: antialiased;\\n background: #ffffff;\\n border-radius: 24px;\\n box-shadow: 0 10px 50px 5px rgba(0, 0, 0, 0.4);\\n font-family: ui-rounded, \\\"SF Pro Rounded\\\", \\\"SF Pro Text\\\", medium-content-sans-serif-font,\\n -apple-system, BlinkMacSystemFont, ui-sans-serif, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell,\\n \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n margin-top: 41px;\\n padding: 24px 24px 22px;\\n pointer-events: auto;\\n position: relative;\\n text-align: center;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n will-change: transform;\\n overflow: visible;\\n transform: translateY(-50%);\\n top: 50%;\\n max-width: 500px;\\n margin: auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__base {\\n padding: 24px 12px;\\n }\\n}\\n\\n.walletconnect-modal__base .hidden {\\n transform: translateY(150%);\\n transition: 0.125s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.walletconnect-modal__header {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n left: 0;\\n justify-content: space-between;\\n position: absolute;\\n top: -42px;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base .wc-logo {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n margin-top: 15px;\\n padding-bottom: 15px;\\n pointer-events: auto;\\n}\\n\\n.walletconnect-modal__base .wc-logo div {\\n background-color: #3399ff;\\n height: 21px;\\n margin-right: 5px;\\n mask-image: url(\\\"images/wc-logo.svg\\\") center no-repeat;\\n width: 32px;\\n}\\n\\n.walletconnect-modal__base .wc-logo p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n}\\n\\n.walletconnect-modal__base h2 {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 0 0 19px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base__row {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n align-items: center;\\n border-radius: 20px;\\n cursor: pointer;\\n display: flex;\\n height: 56px;\\n justify-content: space-between;\\n padding: 0 15px;\\n position: relative;\\n margin: 0px 0px 8px;\\n text-align: left;\\n transition: 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n will-change: transform;\\n text-decoration: none;\\n}\\n\\n.walletconnect-modal__base__row:hover {\\n background: rgba(60, 66, 82, 0.06);\\n}\\n\\n.walletconnect-modal__base__row:active {\\n background: rgba(60, 66, 82, 0.06);\\n transform: scale(0.975);\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n}\\n\\n.walletconnect-modal__base__row__h3 {\\n color: #25292e;\\n font-size: 20px;\\n font-weight: 700;\\n margin: 0;\\n padding-bottom: 3px;\\n}\\n\\n.walletconnect-modal__base__row__right {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.walletconnect-modal__base__row__right__app-icon {\\n border-radius: 8px;\\n height: 34px;\\n margin: 0 11px 2px 0;\\n width: 34px;\\n background-size: 100%;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-modal__base__row__right__caret {\\n height: 18px;\\n opacity: 0.3;\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n width: 8px;\\n will-change: opacity;\\n}\\n\\n.walletconnect-modal__base__row:hover .caret,\\n.walletconnect-modal__base__row:active .caret {\\n opacity: 0.6;\\n}\\n\\n.walletconnect-modal__mobile__toggle {\\n width: 80%;\\n display: flex;\\n margin: 0 auto;\\n position: relative;\\n overflow: hidden;\\n border-radius: 8px;\\n margin-bottom: 18px;\\n background: #d4d5d9;\\n}\\n\\n.walletconnect-modal__single_wallet {\\n display: flex;\\n justify-content: center;\\n margin-top: 7px;\\n margin-bottom: 18px;\\n}\\n\\n.walletconnect-modal__single_wallet a {\\n cursor: pointer;\\n color: rgb(64, 153, 255);\\n font-size: 21px;\\n font-weight: 800;\\n text-decoration: none !important;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-modal__mobile__toggle_selector {\\n width: calc(50% - 8px);\\n background: white;\\n position: absolute;\\n border-radius: 5px;\\n height: calc(100% - 8px);\\n top: 4px;\\n transition: all 0.2s ease-in-out;\\n transform: translate3d(4px, 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle.right__selected .walletconnect-modal__mobile__toggle_selector {\\n transform: translate3d(calc(100% + 12px), 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle a {\\n font-size: 12px;\\n width: 50%;\\n text-align: center;\\n padding: 8px;\\n margin: 0;\\n font-weight: 600;\\n z-index: 1;\\n}\\n\\n.walletconnect-modal__footer {\\n display: flex;\\n justify-content: center;\\n margin-top: 20px;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__footer {\\n margin-top: 5vw;\\n }\\n}\\n\\n.walletconnect-modal__footer a {\\n cursor: pointer;\\n color: #898d97;\\n font-size: 15px;\\n margin: 0 auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__footer a {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-connect__buttons__wrapper {\\n max-height: 44vh;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__android {\\n margin: 50% 0;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__wrap {\\n display: grid;\\n grid-template-columns: repeat(4, 1fr);\\n margin: 10px 0;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__buttons__wrapper__wrap {\\n margin-top: 40px;\\n }\\n}\\n\\n.walletconnect-connect__button {\\n background-color: rgb(64, 153, 255);\\n padding: 12px;\\n border-radius: 8px;\\n text-decoration: none;\\n color: rgb(255, 255, 255);\\n font-weight: 500;\\n}\\n\\n.walletconnect-connect__button__icon_anchor {\\n cursor: pointer;\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n margin: 8px;\\n width: 42px;\\n justify-self: center;\\n flex-direction: column;\\n text-decoration: none !important;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-connect__button__icon_anchor {\\n margin: 4px;\\n }\\n}\\n\\n.walletconnect-connect__button__icon {\\n border-radius: 10px;\\n height: 42px;\\n margin: 0;\\n width: 42px;\\n background-size: cover !important;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-connect__button__text {\\n color: #424952;\\n font-size: 2.7vw;\\n text-decoration: none !important;\\n padding: 0;\\n margin-top: 1.8vw;\\n font-weight: 600;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__button__text {\\n font-size: 16px;\\n margin-top: 12px;\\n }\\n}\\n\\n.walletconnect-search__input {\\n border: none;\\n background: #d4d5d9;\\n border-style: none;\\n padding: 8px 16px;\\n outline: none;\\n font-style: normal;\\n font-stretch: normal;\\n font-size: 16px;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: normal;\\n letter-spacing: normal;\\n text-align: left;\\n border-radius: 8px;\\n width: calc(100% - 16px);\\n margin: 0;\\n margin-bottom: 8px;\\n}\\n\";\n\n// A type of promise-like that resolves synchronously and supports only one observer\nvar _iteratorSymbol = /*#__PURE__*/typeof Symbol !== \"undefined\" ? Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\")) : \"@@iterator\"; // Asynchronously iterate through an object's values\nvar _asyncIteratorSymbol = /*#__PURE__*/typeof Symbol !== \"undefined\" ? Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\")) : \"@@asyncIterator\"; // Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\n\nfunction _catch(body, recover) {\n try {\n var result = body();\n } catch (e) {\n return recover(e);\n }\n\n if (result && result.then) {\n return result.then(void 0, recover);\n }\n\n return result;\n} // Asynchronously await a promise and pass the result to a finally continuation\n\nvar WALLETCONNECT_LOGO_SVG_URL = \"data:image/svg+xml,%3Csvg height='185' viewBox='0 0 300 185' width='300' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m61.4385429 36.2562612c48.9112241-47.8881663 128.2119871-47.8881663 177.1232091 0l5.886545 5.7634174c2.445561 2.3944081 2.445561 6.2765112 0 8.6709204l-20.136695 19.715503c-1.222781 1.1972051-3.2053 1.1972051-4.428081 0l-8.100584-7.9311479c-34.121692-33.4079817-89.443886-33.4079817-123.5655788 0l-8.6750562 8.4936051c-1.2227816 1.1972041-3.205301 1.1972041-4.4280806 0l-20.1366949-19.7155031c-2.4455612-2.3944092-2.4455612-6.2765122 0-8.6709204zm218.7677961 40.7737449 17.921697 17.546897c2.445549 2.3943969 2.445563 6.2764769.000031 8.6708899l-80.810171 79.121134c-2.445544 2.394426-6.410582 2.394453-8.85616.000062-.00001-.00001-.000022-.000022-.000032-.000032l-57.354143-56.154572c-.61139-.598602-1.60265-.598602-2.21404 0-.000004.000004-.000007.000008-.000011.000011l-57.3529212 56.154531c-2.4455368 2.394432-6.4105755 2.394472-8.8561612.000087-.0000143-.000014-.0000296-.000028-.0000449-.000044l-80.81241943-79.122185c-2.44556021-2.394408-2.44556021-6.2765115 0-8.6709197l17.92172963-17.5468673c2.4455602-2.3944082 6.4105989-2.3944082 8.8561602 0l57.3549775 56.155357c.6113908.598602 1.602649.598602 2.2140398 0 .0000092-.000009.0000174-.000017.0000265-.000024l57.3521031-56.155333c2.445505-2.3944633 6.410544-2.3945531 8.856161-.0002.000034.0000336.000068.0000673.000101.000101l57.354902 56.155432c.61139.598601 1.60265.598601 2.21404 0l57.353975-56.1543249c2.445561-2.3944092 6.410599-2.3944092 8.85616 0z' fill='%233b99fc'/%3E%3C/svg%3E\";\n\nvar WALLETCONNECT_HEADER_TEXT = \"WalletConnect\";\nvar ANIMATION_DURATION = 300;\nvar DEFAULT_BUTTON_COLOR = \"rgb(64, 153, 255)\";\nvar WALLETCONNECT_WRAPPER_ID = \"walletconnect-wrapper\";\nvar WALLETCONNECT_STYLE_ID = \"walletconnect-style-sheet\";\nvar WALLETCONNECT_MODAL_ID = \"walletconnect-qrcode-modal\";\nvar WALLETCONNECT_CLOSE_BUTTON_ID = \"walletconnect-qrcode-close\";\nvar WALLETCONNECT_CTA_TEXT_ID = \"walletconnect-qrcode-text\";\nvar WALLETCONNECT_CONNECT_BUTTON_ID = \"walletconnect-connect-button\";\n\nfunction Header(props) {\n return React.createElement(\"div\", {\n className: \"walletconnect-modal__header\"\n }, React.createElement(\"img\", {\n src: WALLETCONNECT_LOGO_SVG_URL,\n className: \"walletconnect-modal__headerLogo\"\n }), React.createElement(\"p\", null, WALLETCONNECT_HEADER_TEXT), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__wrapper\",\n onClick: props.onClose\n }, React.createElement(\"div\", {\n id: WALLETCONNECT_CLOSE_BUTTON_ID,\n className: \"walletconnect-modal__close__icon\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line1\"\n }), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line2\"\n }))));\n}\n\nfunction ConnectButton(props) {\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button\",\n href: props.href,\n id: (WALLETCONNECT_CONNECT_BUTTON_ID + \"-\" + (props.name)),\n onClick: props.onClick,\n rel: \"noopener noreferrer\",\n style: {\n backgroundColor: props.color\n },\n target: \"_blank\"\n }, props.name);\n}\n\nvar CARET_SVG_URL = \"data:image/svg+xml,%3Csvg fill='none' height='18' viewBox='0 0 8 18' width='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='m.586301.213898c-.435947.33907-.5144813.967342-.175411 1.403292l4.87831 6.27212c.28087.36111.28087.86677 0 1.22788l-4.878311 6.27211c-.33907.436-.260536 1.0642.175412 1.4033.435949.3391 1.064219.2605 1.403289-.1754l4.87832-6.2721c.84259-1.08336.84259-2.60034 0-3.68367l-4.87832-6.27212c-.33907-.4359474-.96734-.514482-1.403289-.175412z' fill='%233c4252' fill-rule='evenodd'/%3E%3C/svg%3E\";\n\nfunction WalletButton(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n return React.createElement(\"a\", {\n className: \"walletconnect-modal__base__row\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"h3\", {\n className: \"walletconnect-modal__base__row__h3\"\n }, name), React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right__app-icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"img\", {\n src: CARET_SVG_URL,\n className: \"walletconnect-modal__base__row__right__caret\"\n })));\n}\n\nfunction WalletIcon(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n var fontSize = window.innerWidth < 768 ? ((name.length > 8 ? 2.5 : 2.7) + \"vw\") : \"inherit\";\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button__icon_anchor\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-connect__button__icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"div\", {\n style: {\n fontSize: fontSize\n },\n className: \"walletconnect-connect__button__text\"\n }, name));\n}\n\nvar GRID_MIN_COUNT = 5;\nvar LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props) {\n var android = browserUtils.isAndroid();\n var ref = React.useState(\"\");\n var input = ref[0];\n var setInput = ref[1];\n var ref$1 = React.useState(\"\");\n var filter = ref$1[0];\n var setFilter = ref$1[1];\n var ref$2 = React.useState(1);\n var page = ref$2[0];\n var setPage = ref$2[1];\n var links = filter ? props.links.filter(function (link) { return link.name.toLowerCase().includes(filter.toLowerCase()); }) : props.links;\n var errorMessage = props.errorMessage;\n var grid = filter || links.length > GRID_MIN_COUNT;\n var pages = Math.ceil(links.length / LINKS_PER_PAGE);\n var range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n var pageLinks = links.length ? links.filter(function (_, index) { return index + 1 >= range[0] && index + 1 <= range[1]; }) : [];\n var hasPaging = !!(!android && pages > 1);\n var filterTimeout = undefined;\n\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n\n if (e.target.value) {\n filterTimeout = setTimeout(function () {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet), !android && React.createElement(\"input\", {\n className: \"walletconnect-search__input\",\n placeholder: \"Search\",\n value: input,\n onChange: handleInput\n }), React.createElement(\"div\", {\n className: (\"walletconnect-connect__buttons__wrapper\" + (android ? \"__android\" : grid && links.length ? \"__wrap\" : \"\"))\n }, !android ? pageLinks.length ? pageLinks.map(function (entry) {\n var color = entry.color;\n var name = entry.name;\n var shortName = entry.shortName;\n var logo = entry.logo;\n var href = browserUtils.formatIOSMobile(props.uri, entry);\n var handleClickIOS = React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: name,\n href: href\n });\n }, [pageLinks]);\n return !grid ? React.createElement(WalletButton, {\n color: color,\n href: href,\n name: name,\n logo: logo,\n onClick: handleClickIOS\n }) : React.createElement(WalletIcon, {\n color: color,\n href: href,\n name: shortName || name,\n logo: logo,\n onClick: handleClickIOS\n });\n }) : React.createElement(React.Fragment, null, React.createElement(\"p\", null, errorMessage.length ? props.errorMessage : !!props.links.length && !links.length ? props.text.no_wallets_found : props.text.loading)) : React.createElement(ConnectButton, {\n name: props.text.connect,\n color: DEFAULT_BUTTON_COLOR,\n href: props.uri,\n onClick: React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri\n });\n }, [])\n })), hasPaging && React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, Array(pages).fill(0).map(function (_, index) {\n var pageNumber = index + 1;\n var selected = page === pageNumber;\n return React.createElement(\"a\", {\n style: {\n margin: \"auto 10px\",\n fontWeight: selected ? \"bold\" : \"normal\"\n },\n onClick: function () { return setPage(pageNumber); }\n }, pageNumber);\n })));\n}\n\nfunction Notification(props) {\n var show = !!props.message.trim();\n return React.createElement(\"div\", {\n className: (\"walletconnect-qrcode__notification\" + (show ? \" notification__show\" : \"\"))\n }, props.message);\n}\n\nvar formatQRCodeImage = function (data) {\n try {\n var result = \"\";\n return Promise.resolve(QRCode.toString(data, {\n margin: 0,\n type: \"svg\"\n })).then(function (dataString) {\n if (typeof dataString === \"string\") {\n result = dataString.replace(\" 0) {\n return;\n }\n\n React.useEffect(function () {\n var initLinks = function () {\n try {\n if (android) { return Promise.resolve(); }\n setLoading(true);\n\n var _temp = _catch(function () {\n var url = props.qrcodeModalOptions && props.qrcodeModalOptions.registryUrl ? props.qrcodeModalOptions.registryUrl : browserUtils.getWalletRegistryUrl();\n return Promise.resolve(fetch(url)).then(function (registryResponse) {\n return Promise.resolve(registryResponse.json()).then(function (_registryResponse$jso) {\n var registry = _registryResponse$jso.listings;\n var platform = mobile ? \"mobile\" : \"desktop\";\n\n var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist);\n\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n var hasSingleLink = _links.length === 1;\n\n if (hasSingleLink) {\n setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n\n setHasSingleLink(hasSingleLink);\n });\n });\n }, function (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e);\n });\n\n return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n var rightSelected = mobile ? displayQRCode : !displayQRCode;\n return React.createElement(\"div\", {\n id: WALLETCONNECT_MODAL_ID,\n className: \"walletconnect-qrcode__base animated fadeIn\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base\"\n }, React.createElement(Header, {\n onClose: props.onClose\n }), hasSingleLink && displayQRCode ? React.createElement(\"div\", {\n className: \"walletconnect-modal__single_wallet\"\n }, React.createElement(\"a\", {\n onClick: function () { return browserUtils.saveMobileLinkInfo({\n name: links[0].name,\n href: singleLinkHref\n }); },\n href: singleLinkHref,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\")) : android || loading || !loading && links.length ? React.createElement(\"div\", {\n className: (\"walletconnect-modal__mobile__toggle\" + (rightSelected ? \" right__selected\" : \"\"))\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__mobile__toggle_selector\"\n }), mobile ? React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.mobile), React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode)) : React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode), React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.desktop))) : null, React.createElement(\"div\", null, displayQRCode || !android && !loading && !links.length ? React.createElement(QRCodeDisplay, Object.assign({}, displayProps)) : React.createElement(LinkDisplay, Object.assign({}, displayProps,\n {links: links,\n errorMessage: errorMessage})))));\n}\n\nvar de = {\n choose_preferred_wallet: \"Wähle bevorzugte Wallet\",\n connect_mobile_wallet: \"Verbinde mit Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet\",\n connect: \"Verbinden\",\n qrcode: \"QR-Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"In die Zwischenablage kopieren\",\n copied_to_clipboard: \"In die Zwischenablage kopiert!\",\n connect_with: \"Verbinden mit Hilfe von\",\n loading: \"Laden...\",\n something_went_wrong: \"Etwas ist schief gelaufen\",\n no_supported_wallets: \"Es gibt noch keine unterstützten Wallet\",\n no_wallets_found: \"keine Wallet gefunden\"\n};\n\nvar en = {\n choose_preferred_wallet: \"Choose your preferred wallet\",\n connect_mobile_wallet: \"Connect to Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scan QR code with a WalletConnect-compatible wallet\",\n connect: \"Connect\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copy to clipboard\",\n copied_to_clipboard: \"Copied to clipboard!\",\n connect_with: \"Connect with\",\n loading: \"Loading...\",\n something_went_wrong: \"Something went wrong\",\n no_supported_wallets: \"There are no supported wallets yet\",\n no_wallets_found: \"No wallets found\"\n};\n\nvar es = {\n choose_preferred_wallet: \"Elige tu billetera preferida\",\n connect_mobile_wallet: \"Conectar a billetera móvil\",\n scan_qrcode_with_wallet: \"Escanea el código QR con una billetera compatible con WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvil\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Conectar mediante\",\n loading: \"Cargando...\",\n something_went_wrong: \"Algo salió mal\",\n no_supported_wallets: \"Todavía no hay billeteras compatibles\",\n no_wallets_found: \"No se encontraron billeteras\"\n};\n\nvar fr = {\n choose_preferred_wallet: \"Choisissez votre portefeuille préféré\",\n connect_mobile_wallet: \"Se connecter au portefeuille mobile\",\n scan_qrcode_with_wallet: \"Scannez le QR code avec un portefeuille compatible WalletConnect\",\n connect: \"Se connecter\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copier\",\n copied_to_clipboard: \"Copié!\",\n connect_with: \"Connectez-vous à l'aide de\",\n loading: \"Chargement...\",\n something_went_wrong: \"Quelque chose a mal tourné\",\n no_supported_wallets: \"Il n'y a pas encore de portefeuilles pris en charge\",\n no_wallets_found: \"Aucun portefeuille trouvé\"\n};\n\nvar ko = {\n choose_preferred_wallet: \"원하는 지갑을 선택하세요\",\n connect_mobile_wallet: \"모바일 지갑과 연결\",\n scan_qrcode_with_wallet: \"WalletConnect 지원 지갑에서 QR코드를 스캔하세요\",\n connect: \"연결\",\n qrcode: \"QR 코드\",\n mobile: \"모바일\",\n desktop: \"데스크탑\",\n copy_to_clipboard: \"클립보드에 복사\",\n copied_to_clipboard: \"클립보드에 복사되었습니다!\",\n connect_with: \"와 연결하다\",\n loading: \"로드 중...\",\n something_went_wrong: \"문제가 발생했습니다.\",\n no_supported_wallets: \"아직 지원되는 지갑이 없습니다\",\n no_wallets_found: \"지갑을 찾을 수 없습니다\"\n};\n\nvar pt = {\n choose_preferred_wallet: \"Escolha sua carteira preferida\",\n connect_mobile_wallet: \"Conectar-se à carteira móvel\",\n scan_qrcode_with_wallet: \"Ler o código QR com uma carteira compatível com WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvel\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Ligar por meio de\",\n loading: \"Carregamento...\",\n something_went_wrong: \"Algo correu mal\",\n no_supported_wallets: \"Ainda não há carteiras suportadas\",\n no_wallets_found: \"Nenhuma carteira encontrada\"\n};\n\nvar zh = {\n choose_preferred_wallet: \"选择你的钱包\",\n connect_mobile_wallet: \"连接至移动端钱包\",\n scan_qrcode_with_wallet: \"使用兼容 WalletConnect 的钱包扫描二维码\",\n connect: \"连接\",\n qrcode: \"二维码\",\n mobile: \"移动\",\n desktop: \"桌面\",\n copy_to_clipboard: \"复制到剪贴板\",\n copied_to_clipboard: \"复制到剪贴板成功!\",\n connect_with: \"通过以下方式连接\",\n loading: \"正在加载...\",\n something_went_wrong: \"出了问题\",\n no_supported_wallets: \"目前还没有支持的钱包\",\n no_wallets_found: \"没有找到钱包\"\n};\n\nvar fa = {\n choose_preferred_wallet: \"کیف پول مورد نظر خود را انتخاب کنید\",\n connect_mobile_wallet: \"به کیف پول موبایل وصل شوید\",\n scan_qrcode_with_wallet: \"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید\",\n connect: \"اتصال\",\n qrcode: \"کد QR\",\n mobile: \"سیار\",\n desktop: \"دسکتاپ\",\n copy_to_clipboard: \"کپی به کلیپ بورد\",\n copied_to_clipboard: \"در کلیپ بورد کپی شد!\",\n connect_with: \"ارتباط با\",\n loading: \"...بارگذاری\",\n something_went_wrong: \"مشکلی پیش آمد\",\n no_supported_wallets: \"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد\",\n no_wallets_found: \"هیچ کیف پولی پیدا نشد\"\n};\n\nvar languages = {\n de: de,\n en: en,\n es: es,\n fr: fr,\n ko: ko,\n pt: pt,\n zh: zh,\n fa: fa\n};\n\nfunction injectStyleSheet() {\n var doc = browserUtils.getDocumentOrThrow();\n var prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n\n if (prev) {\n doc.head.removeChild(prev);\n }\n\n var style = doc.createElement(\"style\");\n style.setAttribute(\"id\", WALLETCONNECT_STYLE_ID);\n style.innerText = WALLETCONNECT_STYLE_SHEET;\n doc.head.appendChild(style);\n}\n\nfunction renderWrapper() {\n var doc = browserUtils.getDocumentOrThrow();\n var wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation() {\n var doc = browserUtils.getDocumentOrThrow();\n var modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(function () {\n var wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb) {\n return function () {\n triggerCloseAnimation();\n\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText() {\n var lang = browserUtils.getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return languages[lang] || languages[\"en\"];\n}\n\nfunction open$1(uri, cb, qrcodeModalOptions) {\n injectStyleSheet();\n var wrapper = renderWrapper();\n React.render(React.createElement(Modal, {\n text: getText(),\n uri: uri,\n onClose: getWrappedCallback(cb),\n qrcodeModalOptions: qrcodeModalOptions\n }), wrapper);\n}\nfunction close$1() {\n triggerCloseAnimation();\n}\n\nvar isNode = function () { return typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\"; };\n\nfunction open$2(uri, cb, qrcodeModalOptions) {\n console.log(uri);\n\n if (isNode()) {\n open(uri);\n } else {\n open$1(uri, cb, qrcodeModalOptions);\n }\n}\n\nfunction close$2() {\n if (isNode()) ; else {\n close$1();\n }\n}\n\nvar index = {\n open: open$2,\n close: close$2\n};\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n","var n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var i,t=arguments,r={};for(i in l)\"key\"!==i&&\"ref\"!==i&&(r[i]=l[i]);if(arguments.length>3)for(u=[u],i=3;i2&&(l.children=c.slice.call(arguments,2)),u={},l)\"key\"!==i&&\"ref\"!==i&&(u[i]=l[i]);return p(n.type,u,l.key||n.key,l.ref||n.ref,null)}function M(n){var l={},u={__c:\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var i,t=this;return this.getChildContext||(i=[],this.getChildContext=function(){return l[u.__c]=t,l},this.shouldComponentUpdate=function(n){t.props.value!==n.value&&i.some(function(l){l.context=n.value,g(l)})},this.sub=function(n){i.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){i.splice(i.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u.Provider.__=u,u}n={__e:function(n,l){for(var u,i;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(i=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(i=!0,u.componentDidCatch(n)),i)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},m.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),g(this))},m.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},m.prototype.render=d,u=[],i=0,t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=e,f=0;export{H as render,I as hydrate,h as createElement,h,d as Fragment,y as createRef,l as isValidElement,m as Component,L as cloneElement,M as createContext,x as toChildArray,D as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,i=0,o=[],c=n.__r,f=n.diffed,e=n.__c,a=n.unmount;function v(t,r){n.__h&&n.__h(u,t,i||r),i=0;var o=u.__H||(u.__H={__:[],__h:[]});return t>=o.__.length&&o.__.push({}),o.__[t]}function m(n){return i=1,p(E,n)}function p(n,r,i){var o=v(t++,2);return o.__c||(o.__c=u,o.__=[i?i(r):E(void 0,r),function(t){var u=n(o.__[0],t);o.__[0]!==u&&(o.__[0]=u,o.__c.setState({}))}]),o.__}function l(r,i){var o=v(t++,3);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__H.__h.push(o))}function y(r,i){var o=v(t++,4);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__h.push(o))}function d(n){return i=5,h(function(){return{current:n}},[])}function s(n,t,u){i=6,y(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function h(n,u){var r=v(t++,7);return x(r.__H,u)?(r.__H=u,r.__h=n,r.__=n()):r.__}function T(n,t){return i=8,h(function(){return n},t)}function w(n){var r=u.context[n.__c],i=v(t++,9);return i.__c=n,r?(null==i.__&&(i.__=!0,r.sub(u)),r.props.value):n.__}function A(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function F(n){var r=v(t++,10),i=m();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function _(){o.some(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(q),t.__H.__h=[]}catch(u){return t.__H.__h=[],n.__e(u,t.__v),!0}}),o=[]}function g(n){n.t&&n.t()}function q(n){var t=n.__();\"function\"==typeof t&&(n.t=t)}function x(n,t){return!n||t.some(function(t,u){return t!==n[u]})}function E(n,t){return\"function\"==typeof t?t(n):t}n.__r=function(n){c&&c(n),t=0,(u=n.__c).__H&&(u.__H.__h.forEach(g),u.__H.__h.forEach(q),u.__H.__h=[])},n.diffed=function(t){f&&f(t);var u=t.__c;if(u){var i=u.__H;i&&i.__h.length&&(1!==o.push(u)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(u))})(_))}},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||q(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),e&&e(t,u)},n.unmount=function(t){a&&a(t);var u=t.__c;if(u){var r=u.__H;if(r)try{r.__.forEach(function(n){return n.t&&n.t()})}catch(t){n.__e(t,u.__v)}}};export{m as useState,p as useReducer,l as useEffect,y as useLayoutEffect,d as useRef,s as useImperativeHandle,h as useMemo,T as useCallback,w as useContext,A as useDebugValue,F as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as o,useImperativeHandle as u,useMemo as i,useCallback as f,useContext as c,useDebugValue as a}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as l,createElement as s,options as v,toChildArray as h,hydrate as p,render as d,_unmount as m,cloneElement as y,createRef as b,createContext as g,Fragment as x}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function E(n,t){for(var e in t)n[e]=t[e];return n}function w(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}var C=function(n){var t,e;function r(t){var e;return(e=n.call(this,t)||this).isPureReactComponent=!0,e}return e=n,(t=r).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,r.prototype.shouldComponentUpdate=function(n,t){return w(this.props,n)||w(this.state,t)},r}(l);function _(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:w(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,E({},t))}return r.prototype.isReactComponent=!0,r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.t=!0,r}var A=v.__b;function S(n){function t(t){var e=E({},t);return delete e.ref,n(e,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}v.__b=function(n){n.type&&n.type.t&&n.ref&&(n.props.ref=n.ref,n.ref=null),A&&A(n)};var k=function(n,t){return n?h(n).reduce(function(n,e,r){return n.concat(t(e,r))},[]):null},R={map:k,forEach:k,count:function(n){return n?h(n).length:0},only:function(n){if(1!==(n=h(n)).length)throw new Error(\"Children.only() expects only one child.\");return n[0]},toArray:h},F=v.__e;function N(n){return n&&((n=E({},n)).__c=null,n.__k=n.__k&&n.__k.map(N)),n}function U(){this.__u=0,this.o=null,this.__b=null}function M(n){var t=n.__.__c;return t&&t.u&&t.u(n)}function L(n){var t,e,r;function o(o){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,o)}return o.displayName=\"Lazy\",o.t=!0,o}function O(){this.i=null,this.l=null}v.__e=function(n,t,e){if(n.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return r.__c(n,t.__c);F(n,t,e)},(U.prototype=new l).__c=function(n,t){var e=this;null==e.o&&(e.o=[]),e.o.push(t);var r=M(e.__v),o=!1,u=function(){o||(o=!0,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){var n;if(!--e.__u)for(e.__v.__k[0]=e.state.u,e.setState({u:e.__b=null});n=e.o.pop();)n.forceUpdate()};e.__u++||e.setState({u:e.__b=e.__v.__k[0]}),n.then(u,u)},U.prototype.render=function(n,t){return this.__b&&(this.__v.__k[0]=N(this.__b),this.__b=null),[s(l,null,t.u?null:n.children),t.u&&n.fallback]};var P=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1] 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","module.exports = isTypedArray\nisTypedArray.strict = isStrictTypedArray\nisTypedArray.loose = isLooseTypedArray\n\nvar toString = Object.prototype.toString\nvar names = {\n '[object Int8Array]': true\n , '[object Int16Array]': true\n , '[object Int32Array]': true\n , '[object Uint8Array]': true\n , '[object Uint8ClampedArray]': true\n , '[object Uint16Array]': true\n , '[object Uint32Array]': true\n , '[object Float32Array]': true\n , '[object Float64Array]': true\n}\n\nfunction isTypedArray(arr) {\n return (\n isStrictTypedArray(arr)\n || isLooseTypedArray(arr)\n )\n}\n\nfunction isStrictTypedArray(arr) {\n return (\n arr instanceof Int8Array\n || arr instanceof Int16Array\n || arr instanceof Int32Array\n || arr instanceof Uint8Array\n || arr instanceof Uint8ClampedArray\n || arr instanceof Uint16Array\n || arr instanceof Uint32Array\n || arr instanceof Float32Array\n || arr instanceof Float64Array\n )\n}\n\nfunction isLooseTypedArray(arr) {\n return names[toString.call(arr)]\n}\n","\nvar canPromise = require('./can-promise')\n\nvar QRCode = require('./core/qrcode')\nvar CanvasRenderer = require('./renderer/canvas')\nvar SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n var args = [].slice.call(arguments, 1)\n var argsNum = args.length\n var isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n var data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nvar getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n var posCount = Math.floor(version / 7) + 2\n var size = getSymbolSize(version)\n var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n var positions = [size - 7] // Last coord is always (size - 7)\n\n for (var i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * var pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var coords = []\n var pos = exports.getRowColCoords(version)\n var posLength = pos.length\n\n for (var i = 0; i < posLength; i++) {\n for (var j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","var Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nvar ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n var i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","var BufferUtil = require('../utils/buffer')\n\n/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","var BufferUtil = require('../utils/buffer')\nvar Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","var ECLevel = require('./error-correction-level')\r\n\r\nvar EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nvar EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","var getSymbolSize = require('./utils').getSymbolSize\nvar FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","var Utils = require('./utils')\n\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nvar G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n var data = ((errorCorrectionLevel.bit << 3) | mask)\n var d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","var BufferUtil = require('../utils/buffer')\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","var Mode = require('./mode')\nvar Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n var size = data.size\n var points = 0\n var sameCountCol = 0\n var sameCountRow = 0\n var lastCol = null\n var lastRow = null\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n var size = data.size\n var points = 0\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n var size = data.size\n var points = 0\n var bitsCol = 0\n var bitsRow = 0\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (var col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n var size = data.size\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length\n var bestPattern = 0\n var lowerPenalty = Infinity\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","var VersionCheck = require('./version-check')\nvar Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","var Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n var i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n var remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","var BufferUtil = require('../utils/buffer')\nvar GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(p1.length + p2.length - 1)\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(divident)\n\n while ((result.length - divisor.length) >= 0) {\n var coeff = result[0]\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n","var BufferUtil = require('../utils/buffer')\nvar Utils = require('./utils')\nvar ECLevel = require('./error-correction-level')\nvar BitBuffer = require('./bit-buffer')\nvar BitMatrix = require('./bit-matrix')\nvar AlignmentPattern = require('./alignment-pattern')\nvar FinderPattern = require('./finder-pattern')\nvar MaskPattern = require('./mask-pattern')\nvar ECCode = require('./error-correction-code')\nvar ReedSolomonEncoder = require('./reed-solomon-encoder')\nvar Version = require('./version')\nvar FormatInfo = require('./format-info')\nvar Mode = require('./mode')\nvar Segments = require('./segments')\nvar isArray = require('isarray')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n var size = matrix.size\n var pos = FinderPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n var size = matrix.size\n\n for (var r = 8; r < size - 8; r++) {\n var value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n var pos = AlignmentPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n var size = matrix.size\n var bits = Version.getEncodedBits(version)\n var row, col, mod\n\n for (var i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n var size = matrix.size\n var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n var i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Buffer} data Data codewords\n */\nfunction setupData (matrix, data) {\n var size = matrix.size\n var inc = -1\n var row = size - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (var i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n var blocksInGroup2 = totalCodewords % ecTotalBlocks\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n var rs = new ReedSolomonEncoder(ecCount)\n\n var offset = 0\n var dcData = new Array(ecTotalBlocks)\n var ecData = new Array(ecTotalBlocks)\n var maxDataSize = 0\n var buffer = BufferUtil.from(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n var data = BufferUtil.alloc(totalCodewords)\n var index = 0\n var i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n var segments\n\n if (isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n var estimatedVersion = version\n\n if (!estimatedVersion) {\n var rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments,\n errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n var bestVersion = Version.getBestVersionForData(segments,\n errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n var moduleCount = Utils.getSymbolSize(version)\n var modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n var errorCorrectionLevel = ECLevel.M\n var version\n var mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","var BufferUtil = require('../utils/buffer')\nvar Polynomial = require('./polynomial')\nvar Buffer = require('buffer').Buffer\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Buffer} data Buffer containing input data\n * @return {Buffer} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n var pad = BufferUtil.alloc(this.degree)\n var paddedData = Buffer.concat([data, pad], data.length + this.degree)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n var remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n var start = this.degree - remainder.length\n if (start > 0) {\n var buff = BufferUtil.alloc(this.degree)\n remainder.copy(buff, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","var numeric = '[0-9]+'\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+'\nvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nvar TEST_KANJI = new RegExp('^' + kanji + '$')\nvar TEST_NUMERIC = new RegExp('^' + numeric + '$')\nvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","var Mode = require('./mode')\nvar NumericData = require('./numeric-data')\nvar AlphanumericData = require('./alphanumeric-data')\nvar ByteData = require('./byte-data')\nvar KanjiData = require('./kanji-data')\nvar Regex = require('./regex')\nvar Utils = require('./utils')\nvar dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n var segments = []\n var result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n var byteSegs\n var kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n var nodes = []\n for (var i = 0; i < segs.length; i++) {\n var seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n var table = {}\n var graph = {'start': {}}\n var prevNodeIds = ['start']\n\n for (var i = 0; i < nodes.length; i++) {\n var nodeGroup = nodes[i]\n var currentNodeIds = []\n\n for (var j = 0; j < nodeGroup.length; j++) {\n var node = nodeGroup[j]\n var key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (var n = 0; n < prevNodeIds.length; n++) {\n var prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]]['end'] = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n var mode\n var bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n var nodes = buildNodes(segs)\n var graph = buildGraph(nodes, version)\n var path = dijkstra.find_path(graph.map, 'start', 'end')\n\n var optimizedSegs = []\n for (var i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","var toSJISFunction\nvar CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n var digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","var Utils = require('./utils')\nvar ECCode = require('./error-correction-code')\nvar ECLevel = require('./error-correction-level')\nvar Mode = require('./mode')\nvar VersionCheck = require('./version-check')\nvar isArray = require('isarray')\n\n// Generator polynomial used to encode version information\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nvar G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n var totalBits = 0\n\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n var length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n var seg\n\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n var d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","var Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n var opts = options\n var canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n var opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","var Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n var path = ''\n var moveBy = 0\n var newRow = false\n var lineLength = 0\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size)\n var row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var size = qrData.modules.size\n var data = qrData.modules.data\n var qrcodesize = size + opts.margin * 2\n\n var bg = !opts.color.light.a\n ? ''\n : ''\n\n var path =\n ''\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n var hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n var hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n var margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0 ? 4 : options.margin\n\n var width = options.width && options.width >= 21 ? options.width : undefined\n var scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n var scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n var size = qr.modules.size\n var data = qr.modules.data\n var scale = exports.getScale(size, opts)\n var symbolSize = Math.floor((size + opts.margin * 2) * scale)\n var scaledMargin = opts.margin * scale\n var palette = [opts.color.light, opts.color.dark]\n\n for (var i = 0; i < symbolSize; i++) {\n for (var j = 0; j < symbolSize; j++) {\n var posDst = (i * symbolSize + j) * 4\n var pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n var iSrc = Math.floor((i - scaledMargin) / scale)\n var jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","/**\n * Implementation of a subset of node.js Buffer methods for the browser.\n * Based on https://github.com/feross/buffer\n */\n\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar isArray = require('isarray')\n\nfunction typedArraySupport () {\n // Can typed array instances be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n\nfunction Buffer (arg, offset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, offset, length)\n }\n\n if (typeof arg === 'number') {\n return allocUnsafe(this, arg)\n }\n\n return from(this, arg, offset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\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 isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\nfunction createBuffer (that, length) {\n var buf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = that\n if (buf === null) {\n buf = new Buffer(length)\n }\n buf.length = length\n }\n\n return buf\n}\n\nfunction allocUnsafe (that, size) {\n var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n buf[i] = 0\n }\n }\n\n return buf\n}\n\nfunction fromString (that, string) {\n var length = byteLength(string) | 0\n var buf = createBuffer(that, length)\n\n var actual = buf.write(string)\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 (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of 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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = fromArrayLike(that, buf)\n }\n\n return buf\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(that, 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) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\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 byteLength (string) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n return utf8ToBytes(string).length\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\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction from (that, value, offset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, offset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, offset)\n }\n\n return fromObject(that, value)\n}\n\nBuffer.prototype.write = function write (string, offset, length) {\n // Buffer#write(string)\n if (offset === undefined) {\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n } else {\n length = undefined\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 return utf8Write(this, string, offset, length)\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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\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('sourceStart out of bounds')\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 var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\nBuffer.prototype.fill = function fill (val, start, end) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\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 : new Buffer(val)\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return createBuffer(null, 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 = allocUnsafe(null, length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nBuffer.byteLength = byteLength\n\nBuffer.prototype._isBuffer = true\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nmodule.exports.alloc = function (size) {\n var buffer = new Buffer(size)\n buffer.fill(0)\n return buffer\n}\n\nmodule.exports.from = function (data) {\n return new Buffer(data)\n}\n","/*!\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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.split('').indexOf(options.arrayFormatSeparator) > -1;\n\t\t\t\tconst newValue = isArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url, hash] = splitOnFirst(input, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url.split('?')[0] || '',\n\t\t\tquery: parse(extract(input), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(input.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(input.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, input.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(input.url);\n\tif (input.fragmentIdentifier) {\n\t\thash = `#${encode(input.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","/**\n * Convert a typed array to a Buffer without a copy\n *\n * Author: Feross Aboukhadijeh \n * License: MIT\n *\n * `npm install typedarray-to-buffer`\n */\n\nvar isTypedArray = require('is-typedarray').strict\n\nmodule.exports = function typedarrayToBuffer (arr) {\n if (isTypedArray(arr)) {\n // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer\n var buf = Buffer.from(arr.buffer)\n if (arr.byteLength !== arr.buffer.byteLength) {\n // Respect the \"view\", i.e. byteOffset and byteLength, without doing a copy\n buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength)\n }\n return buf\n } else {\n // Pass through all other types to `Buffer.from`\n return Buffer.from(arr)\n }\n}\n","'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n","(self[\"webpackChunk_N_E\"] = self[\"webpackChunk_N_E\"] || []).push([[1070],{\n\n/***/ 96886:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"detectEnv\": function() { return /* reexport */ detectEnv; },\n \"detectOS\": function() { return /* reexport */ browser_detectOS; },\n \"formatIOSMobile\": function() { return /* reexport */ formatIOSMobile; },\n \"formatMobileRegistry\": function() { return /* reexport */ formatMobileRegistry; },\n \"formatMobileRegistryEntry\": function() { return /* reexport */ formatMobileRegistryEntry; },\n \"getClientMeta\": function() { return /* reexport */ getClientMeta; },\n \"getCrypto\": function() { return /* reexport */ getCrypto; },\n \"getCryptoOrThrow\": function() { return /* reexport */ getCryptoOrThrow; },\n \"getDappRegistryUrl\": function() { return /* reexport */ getDappRegistryUrl; },\n \"getDocument\": function() { return /* reexport */ getDocument; },\n \"getDocumentOrThrow\": function() { return /* reexport */ getDocumentOrThrow; },\n \"getFromWindow\": function() { return /* reexport */ getFromWindow; },\n \"getFromWindowOrThrow\": function() { return /* reexport */ getFromWindowOrThrow; },\n \"getLocal\": function() { return /* reexport */ getLocal; },\n \"getLocalStorage\": function() { return /* reexport */ getLocalStorage; },\n \"getLocalStorageOrThrow\": function() { return /* reexport */ getLocalStorageOrThrow; },\n \"getLocation\": function() { return /* reexport */ getLocation; },\n \"getLocationOrThrow\": function() { return /* reexport */ getLocationOrThrow; },\n \"getMobileLinkRegistry\": function() { return /* reexport */ getMobileLinkRegistry; },\n \"getMobileRegistryEntry\": function() { return /* reexport */ getMobileRegistryEntry; },\n \"getNavigator\": function() { return /* reexport */ getNavigator; },\n \"getNavigatorOrThrow\": function() { return /* reexport */ getNavigatorOrThrow; },\n \"getWalletRegistryUrl\": function() { return /* reexport */ getWalletRegistryUrl; },\n \"isAndroid\": function() { return /* reexport */ isAndroid; },\n \"isBrowser\": function() { return /* reexport */ isBrowser; },\n \"isIOS\": function() { return /* reexport */ isIOS; },\n \"isMobile\": function() { return /* reexport */ isMobile; },\n \"isNode\": function() { return /* reexport */ isNode; },\n \"mobileLinkChoiceKey\": function() { return /* reexport */ mobileLinkChoiceKey; },\n \"removeLocal\": function() { return /* reexport */ removeLocal; },\n \"safeJsonParse\": function() { return /* reexport */ safeJsonParse; },\n \"safeJsonStringify\": function() { return /* reexport */ safeJsonStringify; },\n \"saveMobileLinkInfo\": function() { return /* reexport */ saveMobileLinkInfo; },\n \"setLocal\": function() { return /* reexport */ setLocal; }\n});\n\n// EXTERNAL MODULE: ./node_modules/@walletconnect/window-metadata/dist/cjs/index.js\nvar cjs = __webpack_require__(65755);\n// EXTERNAL MODULE: ./node_modules/@walletconnect/window-getters/dist/cjs/index.js\nvar dist_cjs = __webpack_require__(62873);\n;// CONCATENATED MODULE: ./node_modules/detect-browser/es/index.js\n/* provided dependency */ var process = __webpack_require__(34155);\nvar __spreadArrays = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\n\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\n\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\n\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\n\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\n\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FBAV\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nfunction detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nfunction browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nfunction parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nfunction detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nfunction getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/browser-utils/dist/esm/browser.js\n\n\n\nfunction detectEnv(userAgent) {\n return detect(userAgent);\n}\nfunction browser_detectOS() {\n const env = detectEnv();\n return env && env.os ? env.os : undefined;\n}\nfunction isAndroid() {\n const os = browser_detectOS();\n return os ? os.toLowerCase().includes(\"android\") : false;\n}\nfunction isIOS() {\n const os = browser_detectOS();\n return os\n ? os.toLowerCase().includes(\"ios\") ||\n (os.toLowerCase().includes(\"mac\") && navigator.maxTouchPoints > 1)\n : false;\n}\nfunction isMobile() {\n const os = browser_detectOS();\n return os ? isAndroid() || isIOS() : false;\n}\nfunction isNode() {\n const env = detectEnv();\n const result = env && env.name ? env.name.toLowerCase() === \"node\" : false;\n return result;\n}\nfunction isBrowser() {\n const result = !isNode() && !!getNavigator();\n return result;\n}\nconst getFromWindow = dist_cjs.getFromWindow;\nconst getFromWindowOrThrow = dist_cjs.getFromWindowOrThrow;\nconst getDocumentOrThrow = dist_cjs.getDocumentOrThrow;\nconst getDocument = dist_cjs.getDocument;\nconst getNavigatorOrThrow = dist_cjs.getNavigatorOrThrow;\nconst getNavigator = dist_cjs.getNavigator;\nconst getLocationOrThrow = dist_cjs.getLocationOrThrow;\nconst getLocation = dist_cjs.getLocation;\nconst getCryptoOrThrow = dist_cjs.getCryptoOrThrow;\nconst getCrypto = dist_cjs.getCrypto;\nconst getLocalStorageOrThrow = dist_cjs.getLocalStorageOrThrow;\nconst getLocalStorage = dist_cjs.getLocalStorage;\nfunction getClientMeta() {\n return cjs/* getWindowMetadata */.D();\n}\n//# sourceMappingURL=browser.js.map\n// EXTERNAL MODULE: ./node_modules/@walletconnect/safe-json/dist/esm/index.js\nvar esm = __webpack_require__(85094);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/browser-utils/dist/esm/json.js\n\nconst safeJsonParse = esm/* safeJsonParse */.D;\nconst safeJsonStringify = esm/* safeJsonStringify */.u;\n//# sourceMappingURL=json.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/browser-utils/dist/esm/local.js\n\n\nfunction setLocal(key, data) {\n const raw = safeJsonStringify(data);\n const local = getLocalStorage();\n if (local) {\n local.setItem(key, raw);\n }\n}\nfunction getLocal(key) {\n let data = null;\n let raw = null;\n const local = getLocalStorage();\n if (local) {\n raw = local.getItem(key);\n }\n data = raw ? safeJsonParse(raw) : raw;\n return data;\n}\nfunction removeLocal(key) {\n const local = getLocalStorage();\n if (local) {\n local.removeItem(key);\n }\n}\n//# sourceMappingURL=local.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/browser-utils/dist/esm/mobile.js\n\nconst mobileLinkChoiceKey = \"WALLETCONNECT_DEEPLINK_CHOICE\";\nfunction formatIOSMobile(uri, entry) {\n const encodedUri = encodeURIComponent(uri);\n return entry.universalLink\n ? `${entry.universalLink}/wc?uri=${encodedUri}`\n : entry.deepLink\n ? `${entry.deepLink}${entry.deepLink.endsWith(\":\") ? \"//\" : \"/\"}wc?uri=${encodedUri}`\n : \"\";\n}\nfunction saveMobileLinkInfo(data) {\n const focusUri = data.href.split(\"?\")[0];\n setLocal(mobileLinkChoiceKey, Object.assign(Object.assign({}, data), { href: focusUri }));\n}\nfunction getMobileRegistryEntry(registry, name) {\n return registry.filter((entry) => entry.name.toLowerCase().includes(name.toLowerCase()))[0];\n}\nfunction getMobileLinkRegistry(registry, whitelist) {\n let links = registry;\n if (whitelist) {\n links = whitelist.map((name) => getMobileRegistryEntry(registry, name)).filter(Boolean);\n }\n return links;\n}\n//# sourceMappingURL=mobile.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/browser-utils/dist/esm/registry.js\nconst API_URL = \"https://registry.walletconnect.com\";\nfunction getWalletRegistryUrl() {\n return API_URL + \"/api/v2/wallets\";\n}\nfunction getDappRegistryUrl() {\n return API_URL + \"/api/v2/dapps\";\n}\nfunction formatMobileRegistryEntry(entry, platform = \"mobile\") {\n var _a;\n return {\n name: entry.name || \"\",\n shortName: entry.metadata.shortName || \"\",\n color: entry.metadata.colors.primary || \"\",\n logo: (_a = entry.image_url.sm) !== null && _a !== void 0 ? _a : \"\",\n universalLink: entry[platform].universal || \"\",\n deepLink: entry[platform].native || \"\",\n };\n}\nfunction formatMobileRegistry(registry, platform = \"mobile\") {\n return Object.values(registry)\n .filter(entry => !!entry[platform].universal || !!entry[platform].native)\n .map((entry) => formatMobileRegistryEntry(entry, platform));\n}\n//# sourceMappingURL=registry.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/browser-utils/dist/esm/index.js\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ 40926:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (__webpack_require__.g === null || __webpack_require__.g === void 0 ? void 0 : __webpack_require__.g.crypto) || (__webpack_require__.g === null || __webpack_require__.g === void 0 ? void 0 : __webpack_require__.g.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map\n\n/***/ }),\n\n/***/ 88618:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n/* provided dependency */ var process = __webpack_require__(34155);\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map\n\n/***/ }),\n\n/***/ 1468:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(40926), exports);\n__exportStar(__webpack_require__(88618), exports);\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ 1070:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ ethereum_provider_dist_esm; }\n});\n\n// NAMESPACE OBJECT: ./node_modules/@walletconnect/iso-crypto/dist/esm/index.js\nvar iso_crypto_dist_esm_namespaceObject = {};\n__webpack_require__.r(iso_crypto_dist_esm_namespaceObject);\n__webpack_require__.d(iso_crypto_dist_esm_namespaceObject, {\n \"decrypt\": function() { return decrypt; },\n \"encrypt\": function() { return encrypt; },\n \"generateKey\": function() { return generateKey; },\n \"verifyHmac\": function() { return verifyHmac; }\n});\n\n// EXTERNAL MODULE: ./node_modules/eventemitter3/index.js\nvar eventemitter3 = __webpack_require__(26729);\nvar eventemitter3_default = /*#__PURE__*/__webpack_require__.n(eventemitter3);\n// EXTERNAL MODULE: ./node_modules/events/events.js\nvar events = __webpack_require__(17187);\n// EXTERNAL MODULE: ./node_modules/@walletconnect/jsonrpc-utils/dist/esm/index.js\nvar esm = __webpack_require__(56186);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/jsonrpc-provider/dist/esm/provider.js\n\n\nclass JsonRpcProvider extends esm.IJsonRpcProvider {\n constructor(connection) {\n super(connection);\n this.events = new events.EventEmitter();\n this.hasRegisteredEventListeners = false;\n this.connection = this.setConnection(connection);\n if (this.connection.connected) {\n this.registerEventListeners();\n }\n }\n async connect(connection = this.connection) {\n await this.open(connection);\n }\n async disconnect() {\n await this.close();\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n async request(request, context) {\n return this.requestStrict((0,esm.formatJsonRpcRequest)(request.method, request.params || []), context);\n }\n async requestStrict(request, context) {\n return new Promise(async (resolve, reject) => {\n if (!this.connection.connected) {\n try {\n await this.open();\n }\n catch (e) {\n reject(e);\n }\n }\n this.events.on(`${request.id}`, response => {\n if ((0,esm.isJsonRpcError)(response)) {\n reject(response.error);\n }\n else {\n resolve(response.result);\n }\n });\n try {\n await this.connection.send(request, context);\n }\n catch (e) {\n reject(e);\n }\n });\n }\n setConnection(connection = this.connection) {\n return connection;\n }\n onPayload(payload) {\n this.events.emit(\"payload\", payload);\n if ((0,esm.isJsonRpcResponse)(payload)) {\n this.events.emit(`${payload.id}`, payload);\n }\n else {\n this.events.emit(\"message\", {\n type: payload.method,\n data: payload.params,\n });\n }\n }\n async open(connection = this.connection) {\n if (this.connection === connection && this.connection.connected)\n return;\n if (this.connection.connected)\n this.close();\n if (typeof connection === \"string\") {\n await this.connection.open(connection);\n connection = this.connection;\n }\n this.connection = this.setConnection(connection);\n await this.connection.open();\n this.registerEventListeners();\n this.events.emit(\"connect\");\n }\n async close() {\n await this.connection.close();\n }\n registerEventListeners() {\n if (this.hasRegisteredEventListeners)\n return;\n this.connection.on(\"payload\", (payload) => this.onPayload(payload));\n this.connection.on(\"close\", () => this.events.emit(\"disconnect\"));\n this.connection.on(\"error\", (error) => this.events.emit(\"error\", error));\n this.hasRegisteredEventListeners = true;\n }\n}\n/* harmony default export */ var provider = ((/* unused pure expression or super */ null && (JsonRpcProvider)));\n//# sourceMappingURL=provider.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/jsonrpc-provider/dist/esm/index.js\n\n\n/* harmony default export */ var dist_esm = ((/* unused pure expression or super */ null && (Provider)));\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: ./node_modules/cross-fetch/dist/browser-ponyfill.js\nvar browser_ponyfill = __webpack_require__(54098);\nvar browser_ponyfill_default = /*#__PURE__*/__webpack_require__.n(browser_ponyfill);\n// EXTERNAL MODULE: ./node_modules/@walletconnect/safe-json/dist/esm/index.js\nvar safe_json_dist_esm = __webpack_require__(85094);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/jsonrpc-http-connection/dist/esm/http.js\n\n\n\n\nconst DEFAULT_HTTP_HEADERS = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n};\nconst DEFAULT_HTTP_METHOD = \"POST\";\nconst DEFAULT_FETCH_OPTS = {\n headers: DEFAULT_HTTP_HEADERS,\n method: DEFAULT_HTTP_METHOD,\n};\nclass http_HttpConnection {\n constructor(url) {\n this.url = url;\n this.events = new events.EventEmitter();\n this.isAvailable = false;\n this.registering = false;\n if (!(0,esm.isHttpUrl)(url)) {\n throw new Error(`Provided URL is not compatible with HTTP connection: ${url}`);\n }\n this.url = url;\n }\n get connected() {\n return this.isAvailable;\n }\n get connecting() {\n return this.registering;\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n async open(url = this.url) {\n await this.register(url);\n }\n async close() {\n if (!this.isAvailable) {\n throw new Error(\"Connection already closed\");\n }\n this.onClose();\n }\n async send(payload, context) {\n if (!this.isAvailable) {\n await this.register();\n }\n try {\n const body = (0,safe_json_dist_esm/* safeJsonStringify */.u)(payload);\n const res = await browser_ponyfill_default()(this.url, Object.assign(Object.assign({}, DEFAULT_FETCH_OPTS), { body }));\n const data = await res.json();\n this.onPayload({ data });\n }\n catch (e) {\n this.onError(payload.id, e);\n }\n }\n async register(url = this.url) {\n if (!(0,esm.isHttpUrl)(url)) {\n throw new Error(`Provided URL is not compatible with HTTP connection: ${url}`);\n }\n if (this.registering) {\n return new Promise((resolve, reject) => {\n this.events.once(\"register_error\", error => {\n reject(error);\n });\n this.events.once(\"open\", () => {\n if (typeof this.isAvailable === \"undefined\") {\n return reject(new Error(\"HTTP connection is missing or invalid\"));\n }\n resolve();\n });\n });\n }\n this.url = url;\n this.registering = true;\n try {\n const body = (0,safe_json_dist_esm/* safeJsonStringify */.u)({ id: 1, jsonrpc: \"2.0\", method: \"test\", params: [] });\n await browser_ponyfill_default()(url, Object.assign(Object.assign({}, DEFAULT_FETCH_OPTS), { body }));\n this.onOpen();\n }\n catch (e) {\n const error = this.parseError(e);\n this.events.emit(\"register_error\", error);\n this.onClose();\n throw error;\n }\n }\n onOpen() {\n this.isAvailable = true;\n this.registering = false;\n this.events.emit(\"open\");\n }\n onClose() {\n this.isAvailable = false;\n this.registering = false;\n this.events.emit(\"close\");\n }\n onPayload(e) {\n if (typeof e.data === \"undefined\")\n return;\n const payload = typeof e.data === \"string\" ? (0,safe_json_dist_esm/* safeJsonParse */.D)(e.data) : e.data;\n this.events.emit(\"payload\", payload);\n }\n onError(id, e) {\n const error = this.parseError(e);\n const message = error.message || error.toString();\n const payload = (0,esm.formatJsonRpcError)(id, message);\n this.events.emit(\"payload\", payload);\n }\n parseError(e, url = this.url) {\n return (0,esm.parseConnectionError)(e, url, \"HTTP\");\n }\n}\n/* harmony default export */ var http = ((/* unused pure expression or super */ null && (http_HttpConnection)));\n//# sourceMappingURL=http.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/jsonrpc-http-connection/dist/esm/index.js\n\n\n/* harmony default export */ var jsonrpc_http_connection_dist_esm = ((/* unused pure expression or super */ null && (HttpConnection)));\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: ./node_modules/@walletconnect/browser-utils/dist/esm/index.js + 6 modules\nvar browser_utils_dist_esm = __webpack_require__(96886);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/constants.js\nconst reservedEvents = [\n \"session_request\",\n \"session_update\",\n \"exchange_key\",\n \"connect\",\n \"disconnect\",\n \"display_uri\",\n \"modal_closed\",\n \"transport_open\",\n \"transport_close\",\n \"transport_error\",\n];\nconst signingMethods = [\n \"eth_sendTransaction\",\n \"eth_signTransaction\",\n \"eth_sign\",\n \"eth_signTypedData\",\n \"eth_signTypedData_v1\",\n \"eth_signTypedData_v2\",\n \"eth_signTypedData_v3\",\n \"eth_signTypedData_v4\",\n \"personal_sign\",\n \"wallet_addEthereumChain\",\n \"wallet_switchEthereumChain\",\n \"wallet_getPermissions\",\n \"wallet_requestPermissions\",\n \"wallet_registerOnboarding\",\n \"wallet_watchAsset\",\n \"wallet_scanQRCode\",\n];\nconst stateMethods = (/* unused pure expression or super */ null && ([\"eth_accounts\", \"eth_chainId\", \"net_version\"]));\nconst infuraNetworks = {\n 1: \"mainnet\",\n 3: \"ropsten\",\n 4: \"rinkeby\",\n 5: \"goerli\",\n 42: \"kovan\",\n};\n//# sourceMappingURL=constants.js.map\n// EXTERNAL MODULE: ./node_modules/@walletconnect/utils/node_modules/bn.js/lib/bn.js\nvar bn = __webpack_require__(11460);\nvar bn_default = /*#__PURE__*/__webpack_require__.n(bn);\n// EXTERNAL MODULE: ./node_modules/is-typedarray/index.js\nvar is_typedarray = __webpack_require__(4501);\n// EXTERNAL MODULE: ./node_modules/typedarray-to-buffer/index.js\nvar typedarray_to_buffer = __webpack_require__(65054);\nvar typedarray_to_buffer_default = /*#__PURE__*/__webpack_require__.n(typedarray_to_buffer);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/encoding/dist/esm/index.js\n/* provided dependency */ var Buffer = __webpack_require__(48764)[\"Buffer\"];\n\n\nconst ENC_HEX = \"hex\";\nconst ENC_UTF8 = \"utf8\";\nconst ENC_BIN = \"binary\";\nconst TYPE_BUFFER = \"buffer\";\nconst TYPE_ARRAY = \"array\";\nconst TYPE_TYPED_ARRAY = \"typed-array\";\nconst TYPE_ARRAY_BUFFER = \"array-buffer\";\nconst STRING_ZERO = \"0\";\nfunction bufferToArray(buf) {\n return new Uint8Array(buf);\n}\nfunction bufferToHex(buf, prefixed = false) {\n const hex = buf.toString(ENC_HEX);\n return prefixed ? addHexPrefix(hex) : hex;\n}\nfunction bufferToUtf8(buf) {\n return buf.toString(ENC_UTF8);\n}\nfunction bufferToNumber(buf) {\n return buf.readUIntBE(0, buf.length);\n}\nfunction bufferToBinary(buf) {\n return arrayToBinary(bufferToArray(buf));\n}\nfunction arrayToBuffer(arr) {\n return typedarray_to_buffer_default()(arr);\n}\nfunction arrayToHex(arr, prefixed = false) {\n return bufferToHex(arrayToBuffer(arr), prefixed);\n}\nfunction arrayToUtf8(arr) {\n return bufferToUtf8(arrayToBuffer(arr));\n}\nfunction arrayToNumber(arr) {\n return bufferToNumber(arrayToBuffer(arr));\n}\nfunction arrayToBinary(arr) {\n return Array.from(arr)\n .map(numberToBinary)\n .join(\"\");\n}\nfunction hexToBuffer(hex) {\n return Buffer.from(removeHexPrefix(hex), ENC_HEX);\n}\nfunction hexToArray(hex) {\n return bufferToArray(hexToBuffer(hex));\n}\nfunction hexToUtf8(hex) {\n return bufferToUtf8(hexToBuffer(hex));\n}\nfunction hexToNumber(hex) {\n return arrayToNumber(hexToArray(hex));\n}\nfunction hexToBinary(hex) {\n return arrayToBinary(hexToArray(hex));\n}\nfunction utf8ToBuffer(utf8) {\n return Buffer.from(utf8, ENC_UTF8);\n}\nfunction utf8ToArray(utf8) {\n return bufferToArray(utf8ToBuffer(utf8));\n}\nfunction utf8ToHex(utf8, prefixed = false) {\n return bufferToHex(utf8ToBuffer(utf8), prefixed);\n}\nfunction utf8ToNumber(utf8) {\n const num = parseInt(utf8, 10);\n assert(isDefined(num), \"Number can only safely store up to 53 bits\");\n return num;\n}\nfunction utf8ToBinary(utf8) {\n return arrayToBinary(utf8ToArray(utf8));\n}\nfunction numberToBuffer(num) {\n return binaryToBuffer(numberToBinary(num));\n}\nfunction numberToArray(num) {\n return binaryToArray(numberToBinary(num));\n}\nfunction numberToHex(num, prefixed) {\n return binaryToHex(numberToBinary(num), prefixed);\n}\nfunction numberToUtf8(num) {\n return `${num}`;\n}\nfunction numberToBinary(num) {\n const bin = (num >>> 0).toString(2);\n return sanitizeBytes(bin);\n}\nfunction binaryToBuffer(bin) {\n return arrayToBuffer(binaryToArray(bin));\n}\nfunction binaryToArray(bin) {\n return new Uint8Array(splitBytes(bin).map(x => parseInt(x, 2)));\n}\nfunction binaryToHex(bin, prefixed) {\n return arrayToHex(binaryToArray(bin), prefixed);\n}\nfunction binaryToUtf8(bin) {\n return arrayToUtf8(binaryToArray(bin));\n}\nfunction binaryToNumber(bin) {\n return arrayToNumber(binaryToArray(bin));\n}\nfunction isBinaryString(str) {\n if (typeof str !== \"string\" || !new RegExp(/^[01]+$/).test(str)) {\n return false;\n }\n if (str.length % 8 !== 0) {\n return false;\n }\n return true;\n}\nfunction isHexString(str, length) {\n if (typeof str !== \"string\" || !str.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && str.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nfunction isBuffer(val) {\n return Buffer.isBuffer(val);\n}\nfunction isTypedArray(val) {\n return _isTypedArray.strict(val) && !isBuffer(val);\n}\nfunction isArrayBuffer(val) {\n return (!isTypedArray(val) &&\n !isBuffer(val) &&\n typeof val.byteLength !== \"undefined\");\n}\nfunction getType(val) {\n if (isBuffer(val)) {\n return TYPE_BUFFER;\n }\n else if (isTypedArray(val)) {\n return TYPE_TYPED_ARRAY;\n }\n else if (isArrayBuffer(val)) {\n return TYPE_ARRAY_BUFFER;\n }\n else if (Array.isArray(val)) {\n return TYPE_ARRAY;\n }\n else {\n return typeof val;\n }\n}\nfunction getEncoding(str) {\n if (isBinaryString(str)) {\n return ENC_BIN;\n }\n if (isHexString(str)) {\n return ENC_HEX;\n }\n return ENC_UTF8;\n}\nfunction concatBuffers(...args) {\n const result = Buffer.concat(args);\n return result;\n}\nfunction concatArrays(...args) {\n let result = [];\n args.forEach(arg => (result = result.concat(Array.from(arg))));\n return new Uint8Array([...result]);\n}\nfunction trimLeft(data, length) {\n const diff = data.length - length;\n if (diff > 0) {\n data = data.slice(diff);\n }\n return data;\n}\nfunction trimRight(data, length) {\n return data.slice(0, length);\n}\nfunction calcByteLength(length, byteSize = 8) {\n const remainder = length % byteSize;\n return remainder\n ? ((length - remainder) / byteSize) * byteSize + byteSize\n : length;\n}\nfunction splitBytes(str, byteSize = 8) {\n const bytes = sanitizeBytes(str).match(new RegExp(`.{${byteSize}}`, \"gi\"));\n return Array.from(bytes || []);\n}\nfunction swapBytes(str) {\n return splitBytes(str)\n .map(reverseString)\n .join(\"\");\n}\nfunction swapHex(str) {\n return binaryToHex(swapBytes(hexToBinary(str)));\n}\nfunction sanitizeBytes(str, byteSize = 8, padding = STRING_ZERO) {\n return padLeft(str, calcByteLength(str.length, byteSize), padding);\n}\nfunction padLeft(str, length, padding = STRING_ZERO) {\n return padString(str, length, true, padding);\n}\nfunction padRight(str, length, padding = STRING_ZERO) {\n return padString(str, length, false, padding);\n}\nfunction removeHexPrefix(hex) {\n return hex.replace(/^0x/, \"\");\n}\nfunction addHexPrefix(hex) {\n return hex.startsWith(\"0x\") ? hex : `0x${hex}`;\n}\nfunction sanitizeHex(hex) {\n hex = removeHexPrefix(hex);\n hex = sanitizeBytes(hex, 2);\n if (hex) {\n hex = addHexPrefix(hex);\n }\n return hex;\n}\nfunction removeHexLeadingZeros(hex) {\n const prefixed = hex.startsWith(\"0x\");\n hex = removeHexPrefix(hex);\n hex = hex.startsWith(STRING_ZERO) ? hex.substring(1) : hex;\n return prefixed ? addHexPrefix(hex) : hex;\n}\nfunction isUndefined(value) {\n return typeof value === \"undefined\";\n}\nfunction isDefined(value) {\n return !isUndefined(value);\n}\nfunction assert(assertion, errorMessage) {\n if (!assertion) {\n throw new Error(errorMessage);\n }\n}\nfunction reverseString(str) {\n return str\n .split(\"\")\n .reverse()\n .join(\"\");\n}\nfunction padString(str, length, left, padding = STRING_ZERO) {\n const diff = length - str.length;\n let result = str;\n if (diff > 0) {\n const pad = padding.repeat(diff);\n result = left ? pad + str : str + pad;\n }\n return result;\n}\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/encoding.js\n\n\nfunction convertArrayBufferToBuffer(arrBuf) {\n return arrayToBuffer(new Uint8Array(arrBuf));\n}\nfunction convertArrayBufferToUtf8(arrBuf) {\n return encoding.arrayToUtf8(new Uint8Array(arrBuf));\n}\nfunction convertArrayBufferToHex(arrBuf, noPrefix) {\n return arrayToHex(new Uint8Array(arrBuf), !noPrefix);\n}\nfunction convertArrayBufferToNumber(arrBuf) {\n return encoding.arrayToNumber(new Uint8Array(arrBuf));\n}\nfunction concatArrayBuffers(...args) {\n return encoding.hexToArray(args.map(b => encoding.arrayToHex(new Uint8Array(b))).join(\"\")).buffer;\n}\nfunction convertBufferToArrayBuffer(buf) {\n return bufferToArray(buf).buffer;\n}\nfunction convertBufferToUtf8(buf) {\n return encoding.bufferToUtf8(buf);\n}\nfunction convertBufferToHex(buf, noPrefix) {\n return encoding.bufferToHex(buf, !noPrefix);\n}\nfunction convertBufferToNumber(buf) {\n return encoding.bufferToNumber(buf);\n}\nfunction encoding_concatBuffers(...args) {\n return encoding.concatBuffers(...args);\n}\nfunction convertUtf8ToArrayBuffer(utf8) {\n return encoding.utf8ToArray(utf8).buffer;\n}\nfunction convertUtf8ToBuffer(utf8) {\n return utf8ToBuffer(utf8);\n}\nfunction convertUtf8ToHex(utf8, noPrefix) {\n return utf8ToHex(utf8, !noPrefix);\n}\nfunction convertUtf8ToNumber(utf8) {\n return new BN(utf8, 10).toNumber();\n}\nfunction convertHexToBuffer(hex) {\n return encoding.hexToBuffer(hex);\n}\nfunction convertHexToArrayBuffer(hex) {\n return hexToArray(hex).buffer;\n}\nfunction convertHexToUtf8(hex) {\n return encoding.hexToUtf8(hex);\n}\nfunction convertHexToNumber(hex) {\n return new BN(encoding.removeHexPrefix(hex), \"hex\").toNumber();\n}\nfunction convertNumberToBuffer(num) {\n return encoding.numberToBuffer(num);\n}\nfunction convertNumberToArrayBuffer(num) {\n return encoding.numberToArray(num).buffer;\n}\nfunction convertNumberToUtf8(num) {\n return new BN(num).toString();\n}\nfunction convertNumberToHex(num, noPrefix) {\n const hex = removeHexPrefix(sanitizeHex(new (bn_default())(num).toString(16)));\n return noPrefix ? hex : addHexPrefix(hex);\n}\n//# sourceMappingURL=encoding.js.map\n// EXTERNAL MODULE: ./node_modules/js-sha3/src/sha3.js\nvar sha3 = __webpack_require__(91094);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/misc.js\n\n\n\nfunction misc_sanitizeHex(hex) {\n return sanitizeHex(hex);\n}\nfunction misc_addHexPrefix(hex) {\n return encoding.addHexPrefix(hex);\n}\nfunction misc_removeHexPrefix(hex) {\n return encoding.removeHexPrefix(hex);\n}\nfunction misc_removeHexLeadingZeros(hex) {\n return removeHexLeadingZeros(addHexPrefix(hex));\n}\nconst payloadId = esm.payloadId;\nfunction uuid() {\n const result = ((a, b) => {\n for (b = a = \"\"; a++ < 36; b += (a * 51) & 52 ? (a ^ 15 ? 8 ^ (Math.random() * (a ^ 20 ? 16 : 4)) : 4).toString(16) : \"-\") {\n }\n return b;\n })();\n return result;\n}\nfunction logDeprecationWarning() {\n console.warn(\"DEPRECATION WARNING: This WalletConnect client library will be deprecated in favor of @walletconnect/client. Please check docs.walletconnect.org to learn more about this migration!\");\n}\nfunction getInfuraRpcUrl(chainId, infuraId) {\n let rpcUrl;\n const network = infuraNetworks[chainId];\n if (network) {\n rpcUrl = `https://${network}.infura.io/v3/${infuraId}`;\n }\n return rpcUrl;\n}\nfunction getRpcUrl(chainId, rpc) {\n let rpcUrl;\n const infuraUrl = getInfuraRpcUrl(chainId, rpc.infuraId);\n if (rpc.custom && rpc.custom[chainId]) {\n rpcUrl = rpc.custom[chainId];\n }\n else if (infuraUrl) {\n rpcUrl = infuraUrl;\n }\n return rpcUrl;\n}\n//# sourceMappingURL=misc.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/validators.js\n\n\nfunction isEmptyString(value) {\n return value === \"\" || (typeof value === \"string\" && value.trim() === \"\");\n}\nfunction isEmptyArray(array) {\n return !(array && array.length);\n}\nfunction validators_isBuffer(val) {\n return encoding.isBuffer(val);\n}\nfunction validators_isTypedArray(val) {\n return encoding.isTypedArray(val);\n}\nfunction validators_isArrayBuffer(val) {\n return encoding.isArrayBuffer(val);\n}\nfunction validators_getType(val) {\n return encoding.getType(val);\n}\nfunction validators_getEncoding(val) {\n return encoding.getEncoding(val);\n}\nfunction validators_isHexString(value, length) {\n return isHexString(value, length);\n}\nfunction isJsonRpcSubscription(object) {\n return typeof object.params === \"object\";\n}\nfunction isJsonRpcRequest(object) {\n return typeof object.method !== \"undefined\";\n}\nfunction isJsonRpcResponseSuccess(object) {\n return typeof object.result !== \"undefined\";\n}\nfunction isJsonRpcResponseError(object) {\n return typeof object.error !== \"undefined\";\n}\nfunction isInternalEvent(object) {\n return typeof object.event !== \"undefined\";\n}\nfunction isReservedEvent(event) {\n return reservedEvents.includes(event) || event.startsWith(\"wc_\");\n}\nfunction isSilentPayload(request) {\n if (request.method.startsWith(\"wc_\")) {\n return true;\n }\n if (signingMethods.includes(request.method)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=validators.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/ethereum.js\n\n\n\n\n\nfunction toChecksumAddress(address) {\n address = removeHexPrefix(address.toLowerCase());\n const hash = removeHexPrefix((0,sha3.keccak_256)(convertUtf8ToBuffer(address)));\n let checksum = \"\";\n for (let i = 0; i < address.length; i++) {\n if (parseInt(hash[i], 16) > 7) {\n checksum += address[i].toUpperCase();\n }\n else {\n checksum += address[i];\n }\n }\n return addHexPrefix(checksum);\n}\nconst isValidAddress = (address) => {\n if (!address) {\n return false;\n }\n else if (address.toLowerCase().substring(0, 2) !== \"0x\") {\n return false;\n }\n else if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n }\n else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {\n return true;\n }\n else {\n return address === toChecksumAddress(address);\n }\n};\nfunction parsePersonalSign(params) {\n if (!isEmptyArray(params) && !validators_isHexString(params[0])) {\n params[0] = convertUtf8ToHex(params[0]);\n }\n return params;\n}\nfunction parseTransactionData(txData) {\n if (typeof txData.type !== \"undefined\" && txData.type !== \"0\")\n return txData;\n if (typeof txData.from === \"undefined\" || !isValidAddress(txData.from)) {\n throw new Error(`Transaction object must include a valid 'from' value.`);\n }\n function parseHexValues(value) {\n let result = value;\n if (typeof value === \"number\" || (typeof value === \"string\" && !isEmptyString(value))) {\n if (!validators_isHexString(value)) {\n result = convertNumberToHex(value);\n }\n else if (typeof value === \"string\") {\n result = misc_sanitizeHex(value);\n }\n }\n if (typeof result === \"string\") {\n result = misc_removeHexLeadingZeros(result);\n }\n return result;\n }\n const txDataRPC = {\n from: misc_sanitizeHex(txData.from),\n to: typeof txData.to === \"undefined\" ? undefined : misc_sanitizeHex(txData.to),\n gasPrice: typeof txData.gasPrice === \"undefined\" ? \"\" : parseHexValues(txData.gasPrice),\n gas: typeof txData.gas === \"undefined\"\n ? typeof txData.gasLimit === \"undefined\"\n ? \"\"\n : parseHexValues(txData.gasLimit)\n : parseHexValues(txData.gas),\n value: typeof txData.value === \"undefined\" ? \"\" : parseHexValues(txData.value),\n nonce: typeof txData.nonce === \"undefined\" ? \"\" : parseHexValues(txData.nonce),\n data: typeof txData.data === \"undefined\" ? \"\" : misc_sanitizeHex(txData.data) || \"0x\",\n };\n const prunable = [\"gasPrice\", \"gas\", \"value\", \"nonce\"];\n Object.keys(txDataRPC).forEach((key) => {\n if ((typeof txDataRPC[key] === \"undefined\" ||\n (typeof txDataRPC[key] === \"string\" && !txDataRPC[key].trim().length)) &&\n prunable.includes(key)) {\n delete txDataRPC[key];\n }\n });\n return txDataRPC;\n}\n//# sourceMappingURL=ethereum.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/payload.js\nfunction promisify(originalFn, thisArg) {\n const promisifiedFunction = async (...callArgs) => {\n return new Promise((resolve, reject) => {\n const callback = (err, data) => {\n if (err === null || typeof err === \"undefined\") {\n reject(err);\n }\n resolve(data);\n };\n originalFn.apply(thisArg, [...callArgs, callback]);\n });\n };\n return promisifiedFunction;\n}\nfunction formatRpcError(error) {\n const message = error.message || \"Failed or Rejected Request\";\n let code = -32000;\n if (error && !error.code) {\n switch (message) {\n case \"Parse error\":\n code = -32700;\n break;\n case \"Invalid request\":\n code = -32600;\n break;\n case \"Method not found\":\n code = -32601;\n break;\n case \"Invalid params\":\n code = -32602;\n break;\n case \"Internal error\":\n code = -32603;\n break;\n default:\n code = -32000;\n break;\n }\n }\n const result = {\n code,\n message,\n };\n return result;\n}\n//# sourceMappingURL=payload.js.map\n// EXTERNAL MODULE: ./node_modules/query-string/index.js\nvar query_string = __webpack_require__(17563);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/url.js\n\nfunction getQueryString(url) {\n const pathEnd = url.indexOf(\"?\") !== -1 ? url.indexOf(\"?\") : undefined;\n const queryString = typeof pathEnd !== \"undefined\" ? url.substr(pathEnd) : \"\";\n return queryString;\n}\nfunction appendToQueryString(queryString, newQueryParams) {\n let queryParams = parseQueryString(queryString);\n queryParams = Object.assign(Object.assign({}, queryParams), newQueryParams);\n queryString = formatQueryString(queryParams);\n return queryString;\n}\nfunction parseQueryString(queryString) {\n return query_string.parse(queryString);\n}\nfunction formatQueryString(queryParams) {\n return query_string.stringify(queryParams);\n}\n//# sourceMappingURL=url.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/session.js\n\nfunction isWalletConnectSession(object) {\n return typeof object.bridge !== \"undefined\";\n}\nfunction parseWalletConnectUri(str) {\n const pathStart = str.indexOf(\":\");\n const pathEnd = str.indexOf(\"?\") !== -1 ? str.indexOf(\"?\") : undefined;\n const protocol = str.substring(0, pathStart);\n const path = str.substring(pathStart + 1, pathEnd);\n function parseRequiredParams(path) {\n const separator = \"@\";\n const values = path.split(separator);\n const requiredParams = {\n handshakeTopic: values[0],\n version: parseInt(values[1], 10),\n };\n return requiredParams;\n }\n const requiredParams = parseRequiredParams(path);\n const queryString = typeof pathEnd !== \"undefined\" ? str.substr(pathEnd) : \"\";\n function parseQueryParams(queryString) {\n const result = parseQueryString(queryString);\n const parameters = {\n key: result.key || \"\",\n bridge: result.bridge || \"\",\n };\n return parameters;\n }\n const queryParams = parseQueryParams(queryString);\n const result = Object.assign(Object.assign({ protocol }, requiredParams), queryParams);\n return result;\n}\n//# sourceMappingURL=session.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/utils/dist/esm/index.js\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/socket-transport/dist/esm/network.js\nclass NetworkMonitor {\n constructor() {\n this._eventEmitters = [];\n if (typeof window !== \"undefined\" && typeof window.addEventListener !== \"undefined\") {\n window.addEventListener(\"online\", () => this.trigger(\"online\"));\n window.addEventListener(\"offline\", () => this.trigger(\"offline\"));\n }\n }\n on(event, callback) {\n this._eventEmitters.push({\n event,\n callback,\n });\n }\n trigger(event) {\n let eventEmitters = [];\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n eventEmitters.forEach((eventEmitter) => {\n eventEmitter.callback();\n });\n }\n}\n/* harmony default export */ var network = (NetworkMonitor);\n//# sourceMappingURL=network.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/socket-transport/dist/esm/index.js\n\n\nconst WS = typeof __webpack_require__.g.WebSocket !== \"undefined\" ? __webpack_require__.g.WebSocket : __webpack_require__(57026);\nclass SocketTransport {\n constructor(opts) {\n this.opts = opts;\n this._queue = [];\n this._events = [];\n this._subscriptions = [];\n this._protocol = opts.protocol;\n this._version = opts.version;\n this._url = \"\";\n this._netMonitor = null;\n this._socket = null;\n this._nextSocket = null;\n this._subscriptions = opts.subscriptions || [];\n this._netMonitor = opts.netMonitor || new network();\n if (!opts.url || typeof opts.url !== \"string\") {\n throw new Error(\"Missing or invalid WebSocket url\");\n }\n this._url = opts.url;\n this._netMonitor.on(\"online\", () => this._socketCreate());\n }\n set readyState(value) {\n }\n get readyState() {\n return this._socket ? this._socket.readyState : -1;\n }\n set connecting(value) {\n }\n get connecting() {\n return this.readyState === 0;\n }\n set connected(value) {\n }\n get connected() {\n return this.readyState === 1;\n }\n set closing(value) {\n }\n get closing() {\n return this.readyState === 2;\n }\n set closed(value) {\n }\n get closed() {\n return this.readyState === 3;\n }\n open() {\n this._socketCreate();\n }\n close() {\n this._socketClose();\n }\n send(message, topic, silent) {\n if (!topic || typeof topic !== \"string\") {\n throw new Error(\"Missing or invalid topic field\");\n }\n this._socketSend({\n topic: topic,\n type: \"pub\",\n payload: message,\n silent: !!silent,\n });\n }\n subscribe(topic) {\n this._socketSend({\n topic: topic,\n type: \"sub\",\n payload: \"\",\n silent: true,\n });\n }\n on(event, callback) {\n this._events.push({ event, callback });\n }\n _socketCreate() {\n if (this._nextSocket) {\n return;\n }\n const url = getWebSocketUrl(this._url, this._protocol, this._version);\n this._nextSocket = new WS(url);\n if (!this._nextSocket) {\n throw new Error(\"Failed to create socket\");\n }\n this._nextSocket.onmessage = (event) => this._socketReceive(event);\n this._nextSocket.onopen = () => this._socketOpen();\n this._nextSocket.onerror = (event) => this._socketError(event);\n this._nextSocket.onclose = () => {\n setTimeout(() => {\n this._nextSocket = null;\n this._socketCreate();\n }, 1000);\n };\n }\n _socketOpen() {\n this._socketClose();\n this._socket = this._nextSocket;\n this._nextSocket = null;\n this._queueSubscriptions();\n this._pushQueue();\n }\n _socketClose() {\n if (this._socket) {\n this._socket.onclose = () => {\n };\n this._socket.close();\n }\n }\n _socketSend(socketMessage) {\n const message = JSON.stringify(socketMessage);\n if (this._socket && this._socket.readyState === 1) {\n this._socket.send(message);\n }\n else {\n this._setToQueue(socketMessage);\n this._socketCreate();\n }\n }\n async _socketReceive(event) {\n let socketMessage;\n try {\n socketMessage = JSON.parse(event.data);\n }\n catch (error) {\n return;\n }\n this._socketSend({\n topic: socketMessage.topic,\n type: \"ack\",\n payload: \"\",\n silent: true,\n });\n if (this._socket && this._socket.readyState === 1) {\n const events = this._events.filter(event => event.event === \"message\");\n if (events && events.length) {\n events.forEach(event => event.callback(socketMessage));\n }\n }\n }\n _socketError(e) {\n const events = this._events.filter(event => event.event === \"error\");\n if (events && events.length) {\n events.forEach(event => event.callback(e));\n }\n }\n _queueSubscriptions() {\n const subscriptions = this._subscriptions;\n subscriptions.forEach((topic) => this._queue.push({\n topic: topic,\n type: \"sub\",\n payload: \"\",\n silent: true,\n }));\n this._subscriptions = this.opts.subscriptions || [];\n }\n _setToQueue(socketMessage) {\n this._queue.push(socketMessage);\n }\n _pushQueue() {\n const queue = this._queue;\n queue.forEach((socketMessage) => this._socketSend(socketMessage));\n this._queue = [];\n }\n}\nfunction getWebSocketUrl(_url, protocol, version) {\n var _a, _b;\n const url = _url.startsWith(\"https\")\n ? _url.replace(\"https\", \"wss\")\n : _url.startsWith(\"http\")\n ? _url.replace(\"http\", \"ws\")\n : _url;\n const splitUrl = url.split(\"?\");\n const params = (0,browser_utils_dist_esm.isBrowser)()\n ? {\n protocol,\n version,\n env: \"browser\",\n host: ((_a = (0,browser_utils_dist_esm.getLocation)()) === null || _a === void 0 ? void 0 : _a.host) || \"\",\n }\n : {\n protocol,\n version,\n env: ((_b = (0,browser_utils_dist_esm.detectEnv)()) === null || _b === void 0 ? void 0 : _b.name) || \"\",\n };\n const queryString = appendToQueryString(getQueryString(splitUrl[1] || \"\"), params);\n return splitUrl[0] + \"?\" + queryString;\n}\n/* harmony default export */ var socket_transport_dist_esm = (SocketTransport);\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/core/dist/esm/errors.js\nconst ERROR_SESSION_CONNECTED = \"Session currently connected\";\nconst ERROR_SESSION_DISCONNECTED = \"Session currently disconnected\";\nconst ERROR_SESSION_REJECTED = \"Session Rejected\";\nconst ERROR_MISSING_JSON_RPC = \"Missing JSON RPC response\";\nconst ERROR_MISSING_RESULT = `JSON-RPC success response must include \"result\" field`;\nconst ERROR_MISSING_ERROR = `JSON-RPC error response must include \"error\" field`;\nconst ERROR_MISSING_METHOD = `JSON RPC request must have valid \"method\" value`;\nconst ERROR_MISSING_ID = `JSON RPC request must have valid \"id\" value`;\nconst ERROR_MISSING_REQUIRED = \"Missing one of the required parameters: bridge / uri / session\";\nconst ERROR_INVALID_RESPONSE = \"JSON RPC response format is invalid\";\nconst ERROR_INVALID_URI = \"URI format is invalid\";\nconst ERROR_QRCODE_MODAL_NOT_PROVIDED = \"QRCode Modal not provided\";\nconst ERROR_QRCODE_MODAL_USER_CLOSED = \"User close QRCode Modal\";\n//# sourceMappingURL=errors.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/core/dist/esm/events.js\n\nclass EventManager {\n constructor() {\n this._eventEmitters = [];\n }\n subscribe(eventEmitter) {\n this._eventEmitters.push(eventEmitter);\n }\n unsubscribe(event) {\n this._eventEmitters = this._eventEmitters.filter(x => x.event !== event);\n }\n trigger(payload) {\n let eventEmitters = [];\n let event;\n if (isJsonRpcRequest(payload)) {\n event = payload.method;\n }\n else if (isJsonRpcResponseSuccess(payload) || isJsonRpcResponseError(payload)) {\n event = `response:${payload.id}`;\n }\n else if (isInternalEvent(payload)) {\n event = payload.event;\n }\n else {\n event = \"\";\n }\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n if ((!eventEmitters || !eventEmitters.length) &&\n !isReservedEvent(event) &&\n !isInternalEvent(event)) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === \"call_request\");\n }\n eventEmitters.forEach((eventEmitter) => {\n if (isJsonRpcResponseError(payload)) {\n const error = new Error(payload.error.message);\n eventEmitter.callback(error, null);\n }\n else {\n eventEmitter.callback(null, payload);\n }\n });\n }\n}\n/* harmony default export */ var esm_events = (EventManager);\n//# sourceMappingURL=events.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/core/dist/esm/storage.js\n\nclass SessionStorage {\n constructor(storageId = \"walletconnect\") {\n this.storageId = storageId;\n }\n getSession() {\n let session = null;\n const json = (0,browser_utils_dist_esm.getLocal)(this.storageId);\n if (json && isWalletConnectSession(json)) {\n session = json;\n }\n return session;\n }\n setSession(session) {\n (0,browser_utils_dist_esm.setLocal)(this.storageId, session);\n return session;\n }\n removeSession() {\n (0,browser_utils_dist_esm.removeLocal)(this.storageId);\n }\n}\n/* harmony default export */ var storage = (SessionStorage);\n//# sourceMappingURL=storage.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/core/dist/esm/url.js\nconst domain = \"walletconnect.org\";\nconst alphanumerical = \"abcdefghijklmnopqrstuvwxyz0123456789\";\nconst bridges = alphanumerical.split(\"\").map(char => `https://${char}.bridge.walletconnect.org`);\nfunction extractHostname(url) {\n let hostname = url.indexOf(\"//\") > -1 ? url.split(\"/\")[2] : url.split(\"/\")[0];\n hostname = hostname.split(\":\")[0];\n hostname = hostname.split(\"?\")[0];\n return hostname;\n}\nfunction extractRootDomain(url) {\n return extractHostname(url)\n .split(\".\")\n .slice(-2)\n .join(\".\");\n}\nfunction randomBridgeIndex() {\n return Math.floor(Math.random() * bridges.length);\n}\nfunction selectRandomBridgeUrl() {\n return bridges[randomBridgeIndex()];\n}\nfunction shouldSelectRandomly(url) {\n return extractRootDomain(url) === domain;\n}\nfunction getBridgeUrl(url) {\n if (shouldSelectRandomly(url)) {\n return selectRandomBridgeUrl();\n }\n return url;\n}\n//# sourceMappingURL=url.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/core/dist/esm/index.js\n\n\n\n\n\n\nclass Connector {\n constructor(opts) {\n this.protocol = \"wc\";\n this.version = 1;\n this._bridge = \"\";\n this._key = null;\n this._clientId = \"\";\n this._clientMeta = null;\n this._peerId = \"\";\n this._peerMeta = null;\n this._handshakeId = 0;\n this._handshakeTopic = \"\";\n this._connected = false;\n this._accounts = [];\n this._chainId = 0;\n this._networkId = 0;\n this._rpcUrl = \"\";\n this._eventManager = new esm_events();\n this._clientMeta = (0,browser_utils_dist_esm.getClientMeta)() || opts.connectorOpts.clientMeta || null;\n this._cryptoLib = opts.cryptoLib;\n this._sessionStorage = opts.sessionStorage || new storage(opts.connectorOpts.storageId);\n this._qrcodeModal = opts.connectorOpts.qrcodeModal;\n this._qrcodeModalOptions = opts.connectorOpts.qrcodeModalOptions;\n this._signingMethods = [...signingMethods, ...(opts.connectorOpts.signingMethods || [])];\n if (!opts.connectorOpts.bridge && !opts.connectorOpts.uri && !opts.connectorOpts.session) {\n throw new Error(ERROR_MISSING_REQUIRED);\n }\n if (opts.connectorOpts.bridge) {\n this.bridge = getBridgeUrl(opts.connectorOpts.bridge);\n }\n if (opts.connectorOpts.uri) {\n this.uri = opts.connectorOpts.uri;\n }\n const session = opts.connectorOpts.session || this._getStorageSession();\n if (session) {\n this.session = session;\n }\n if (this.handshakeId) {\n this._subscribeToSessionResponse(this.handshakeId, \"Session request rejected\");\n }\n this._transport =\n opts.transport ||\n new socket_transport_dist_esm({\n protocol: this.protocol,\n version: this.version,\n url: this.bridge,\n subscriptions: [this.clientId],\n });\n this._subscribeToInternalEvents();\n this._initTransport();\n if (opts.connectorOpts.uri) {\n this._subscribeToSessionRequest();\n }\n if (opts.pushServerOpts) {\n this._registerPushServer(opts.pushServerOpts);\n }\n }\n set bridge(value) {\n if (!value) {\n return;\n }\n this._bridge = value;\n }\n get bridge() {\n return this._bridge;\n }\n set key(value) {\n if (!value) {\n return;\n }\n const key = convertHexToArrayBuffer(value);\n this._key = key;\n }\n get key() {\n if (this._key) {\n const key = convertArrayBufferToHex(this._key, true);\n return key;\n }\n return \"\";\n }\n set clientId(value) {\n if (!value) {\n return;\n }\n this._clientId = value;\n }\n get clientId() {\n let clientId = this._clientId;\n if (!clientId) {\n clientId = this._clientId = uuid();\n }\n return this._clientId;\n }\n set peerId(value) {\n if (!value) {\n return;\n }\n this._peerId = value;\n }\n get peerId() {\n return this._peerId;\n }\n set clientMeta(value) {\n }\n get clientMeta() {\n let clientMeta = this._clientMeta;\n if (!clientMeta) {\n clientMeta = this._clientMeta = (0,browser_utils_dist_esm.getClientMeta)();\n }\n return clientMeta;\n }\n set peerMeta(value) {\n this._peerMeta = value;\n }\n get peerMeta() {\n const peerMeta = this._peerMeta;\n return peerMeta;\n }\n set handshakeTopic(value) {\n if (!value) {\n return;\n }\n this._handshakeTopic = value;\n }\n get handshakeTopic() {\n return this._handshakeTopic;\n }\n set handshakeId(value) {\n if (!value) {\n return;\n }\n this._handshakeId = value;\n }\n get handshakeId() {\n return this._handshakeId;\n }\n get uri() {\n const _uri = this._formatUri();\n return _uri;\n }\n set uri(value) {\n if (!value) {\n return;\n }\n const { handshakeTopic, bridge, key } = this._parseUri(value);\n this.handshakeTopic = handshakeTopic;\n this.bridge = bridge;\n this.key = key;\n }\n set chainId(value) {\n this._chainId = value;\n }\n get chainId() {\n const chainId = this._chainId;\n return chainId;\n }\n set networkId(value) {\n this._networkId = value;\n }\n get networkId() {\n const networkId = this._networkId;\n return networkId;\n }\n set accounts(value) {\n this._accounts = value;\n }\n get accounts() {\n const accounts = this._accounts;\n return accounts;\n }\n set rpcUrl(value) {\n this._rpcUrl = value;\n }\n get rpcUrl() {\n const rpcUrl = this._rpcUrl;\n return rpcUrl;\n }\n set connected(value) {\n }\n get connected() {\n return this._connected;\n }\n set pending(value) {\n }\n get pending() {\n return !!this._handshakeTopic;\n }\n get session() {\n return {\n connected: this.connected,\n accounts: this.accounts,\n chainId: this.chainId,\n bridge: this.bridge,\n key: this.key,\n clientId: this.clientId,\n clientMeta: this.clientMeta,\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n handshakeId: this.handshakeId,\n handshakeTopic: this.handshakeTopic,\n };\n }\n set session(value) {\n if (!value) {\n return;\n }\n this._connected = value.connected;\n this.accounts = value.accounts;\n this.chainId = value.chainId;\n this.bridge = value.bridge;\n this.key = value.key;\n this.clientId = value.clientId;\n this.clientMeta = value.clientMeta;\n this.peerId = value.peerId;\n this.peerMeta = value.peerMeta;\n this.handshakeId = value.handshakeId;\n this.handshakeTopic = value.handshakeTopic;\n }\n on(event, callback) {\n const eventEmitter = {\n event,\n callback,\n };\n this._eventManager.subscribe(eventEmitter);\n }\n off(event) {\n this._eventManager.unsubscribe(event);\n }\n async createInstantRequest(instantRequest) {\n this._key = await this._generateKey();\n const request = this._formatRequest({\n method: \"wc_instantRequest\",\n params: [\n {\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n request: this._formatRequest(instantRequest),\n },\n ],\n });\n this.handshakeId = request.id;\n this.handshakeTopic = uuid();\n this._eventManager.trigger({\n event: \"display_uri\",\n params: [this.uri],\n });\n this.on(\"modal_closed\", () => {\n throw new Error(ERROR_QRCODE_MODAL_USER_CLOSED);\n });\n const endInstantRequest = () => {\n this.killSession();\n };\n try {\n const result = await this._sendCallRequest(request);\n if (result) {\n endInstantRequest();\n }\n return result;\n }\n catch (error) {\n endInstantRequest();\n throw error;\n }\n }\n async connect(opts) {\n if (!this._qrcodeModal) {\n throw new Error(ERROR_QRCODE_MODAL_NOT_PROVIDED);\n }\n if (this.connected) {\n return {\n chainId: this.chainId,\n accounts: this.accounts,\n };\n }\n await this.createSession(opts);\n return new Promise(async (resolve, reject) => {\n this.on(\"modal_closed\", () => reject(new Error(ERROR_QRCODE_MODAL_USER_CLOSED)));\n this.on(\"connect\", (error, payload) => {\n if (error) {\n return reject(error);\n }\n resolve(payload.params[0]);\n });\n });\n }\n async createSession(opts) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n if (this.pending) {\n return;\n }\n this._key = await this._generateKey();\n const request = this._formatRequest({\n method: \"wc_sessionRequest\",\n params: [\n {\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n chainId: opts && opts.chainId ? opts.chainId : null,\n },\n ],\n });\n this.handshakeId = request.id;\n this.handshakeTopic = uuid();\n this._sendSessionRequest(request, \"Session update rejected\", {\n topic: this.handshakeTopic,\n });\n this._eventManager.trigger({\n event: \"display_uri\",\n params: [this.uri],\n });\n }\n approveSession(sessionStatus) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n this.chainId = sessionStatus.chainId;\n this.accounts = sessionStatus.accounts;\n this.networkId = sessionStatus.networkId || 0;\n this.rpcUrl = sessionStatus.rpcUrl || \"\";\n const sessionParams = {\n approved: true,\n chainId: this.chainId,\n networkId: this.networkId,\n accounts: this.accounts,\n rpcUrl: this.rpcUrl,\n peerId: this.clientId,\n peerMeta: this.clientMeta,\n };\n const response = {\n id: this.handshakeId,\n jsonrpc: \"2.0\",\n result: sessionParams,\n };\n this._sendResponse(response);\n this._connected = true;\n this._setStorageSession();\n this._eventManager.trigger({\n event: \"connect\",\n params: [\n {\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n rejectSession(sessionError) {\n if (this._connected) {\n throw new Error(ERROR_SESSION_CONNECTED);\n }\n const message = sessionError && sessionError.message ? sessionError.message : ERROR_SESSION_REJECTED;\n const response = this._formatResponse({\n id: this.handshakeId,\n error: { message },\n });\n this._sendResponse(response);\n this._connected = false;\n this._eventManager.trigger({\n event: \"disconnect\",\n params: [{ message }],\n });\n this._removeStorageSession();\n }\n updateSession(sessionStatus) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n this.chainId = sessionStatus.chainId;\n this.accounts = sessionStatus.accounts;\n this.networkId = sessionStatus.networkId || 0;\n this.rpcUrl = sessionStatus.rpcUrl || \"\";\n const sessionParams = {\n approved: true,\n chainId: this.chainId,\n networkId: this.networkId,\n accounts: this.accounts,\n rpcUrl: this.rpcUrl,\n };\n const request = this._formatRequest({\n method: \"wc_sessionUpdate\",\n params: [sessionParams],\n });\n this._sendSessionRequest(request, \"Session update rejected\");\n this._eventManager.trigger({\n event: \"session_update\",\n params: [\n {\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n this._manageStorageSession();\n }\n async killSession(sessionError) {\n const message = sessionError ? sessionError.message : \"Session Disconnected\";\n const sessionParams = {\n approved: false,\n chainId: null,\n networkId: null,\n accounts: null,\n };\n const request = this._formatRequest({\n method: \"wc_sessionUpdate\",\n params: [sessionParams],\n });\n await this._sendRequest(request);\n this._handleSessionDisconnect(message);\n }\n async sendTransaction(tx) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const parsedTx = parseTransactionData(tx);\n const request = this._formatRequest({\n method: \"eth_sendTransaction\",\n params: [parsedTx],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signTransaction(tx) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const parsedTx = parseTransactionData(tx);\n const request = this._formatRequest({\n method: \"eth_signTransaction\",\n params: [parsedTx],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signMessage(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const request = this._formatRequest({\n method: \"eth_sign\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signPersonalMessage(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n params = parsePersonalSign(params);\n const request = this._formatRequest({\n method: \"personal_sign\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async signTypedData(params) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n const request = this._formatRequest({\n method: \"eth_signTypedData\",\n params,\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n async updateChain(chainParams) {\n if (!this._connected) {\n throw new Error(\"Session currently disconnected\");\n }\n const request = this._formatRequest({\n method: \"wallet_updateChain\",\n params: [chainParams],\n });\n const result = await this._sendCallRequest(request);\n return result;\n }\n unsafeSend(request, options) {\n this._sendRequest(request, options);\n this._eventManager.trigger({\n event: \"call_request_sent\",\n params: [{ request, options }],\n });\n return new Promise((resolve, reject) => {\n this._subscribeToResponse(request.id, (error, payload) => {\n if (error) {\n reject(error);\n return;\n }\n if (!payload) {\n throw new Error(ERROR_MISSING_JSON_RPC);\n }\n resolve(payload);\n });\n });\n }\n async sendCustomRequest(request, options) {\n if (!this._connected) {\n throw new Error(ERROR_SESSION_DISCONNECTED);\n }\n switch (request.method) {\n case \"eth_accounts\":\n return this.accounts;\n case \"eth_chainId\":\n return convertNumberToHex(this.chainId);\n case \"eth_sendTransaction\":\n case \"eth_signTransaction\":\n if (request.params) {\n request.params[0] = parseTransactionData(request.params[0]);\n }\n break;\n case \"personal_sign\":\n if (request.params) {\n request.params = parsePersonalSign(request.params);\n }\n break;\n default:\n break;\n }\n const formattedRequest = this._formatRequest(request);\n const result = await this._sendCallRequest(formattedRequest, options);\n return result;\n }\n approveRequest(response) {\n if (isJsonRpcResponseSuccess(response)) {\n const formattedResponse = this._formatResponse(response);\n this._sendResponse(formattedResponse);\n }\n else {\n throw new Error(ERROR_MISSING_RESULT);\n }\n }\n rejectRequest(response) {\n if (isJsonRpcResponseError(response)) {\n const formattedResponse = this._formatResponse(response);\n this._sendResponse(formattedResponse);\n }\n else {\n throw new Error(ERROR_MISSING_ERROR);\n }\n }\n transportClose() {\n this._transport.close();\n }\n async _sendRequest(request, options) {\n const callRequest = this._formatRequest(request);\n const encryptionPayload = await this._encrypt(callRequest);\n const topic = typeof (options === null || options === void 0 ? void 0 : options.topic) !== \"undefined\" ? options.topic : this.peerId;\n const payload = JSON.stringify(encryptionPayload);\n const silent = typeof (options === null || options === void 0 ? void 0 : options.forcePushNotification) !== \"undefined\"\n ? !options.forcePushNotification\n : isSilentPayload(callRequest);\n this._transport.send(payload, topic, silent);\n }\n async _sendResponse(response) {\n const encryptionPayload = await this._encrypt(response);\n const topic = this.peerId;\n const payload = JSON.stringify(encryptionPayload);\n const silent = true;\n this._transport.send(payload, topic, silent);\n }\n async _sendSessionRequest(request, errorMsg, options) {\n this._sendRequest(request, options);\n this._subscribeToSessionResponse(request.id, errorMsg);\n }\n _sendCallRequest(request, options) {\n this._sendRequest(request, options);\n this._eventManager.trigger({\n event: \"call_request_sent\",\n params: [{ request, options }],\n });\n return this._subscribeToCallResponse(request.id);\n }\n _formatRequest(request) {\n if (typeof request.method === \"undefined\") {\n throw new Error(ERROR_MISSING_METHOD);\n }\n const formattedRequest = {\n id: typeof request.id === \"undefined\" ? payloadId() : request.id,\n jsonrpc: \"2.0\",\n method: request.method,\n params: typeof request.params === \"undefined\" ? [] : request.params,\n };\n return formattedRequest;\n }\n _formatResponse(response) {\n if (typeof response.id === \"undefined\") {\n throw new Error(ERROR_MISSING_ID);\n }\n const baseResponse = { id: response.id, jsonrpc: \"2.0\" };\n if (isJsonRpcResponseError(response)) {\n const error = formatRpcError(response.error);\n const errorResponse = Object.assign(Object.assign(Object.assign({}, baseResponse), response), { error });\n return errorResponse;\n }\n else if (isJsonRpcResponseSuccess(response)) {\n const successResponse = Object.assign(Object.assign({}, baseResponse), response);\n return successResponse;\n }\n throw new Error(ERROR_INVALID_RESPONSE);\n }\n _handleSessionDisconnect(errorMsg) {\n const message = errorMsg || \"Session Disconnected\";\n if (!this._connected) {\n if (this._qrcodeModal) {\n this._qrcodeModal.close();\n }\n (0,browser_utils_dist_esm.removeLocal)(browser_utils_dist_esm.mobileLinkChoiceKey);\n }\n if (this._connected) {\n this._connected = false;\n }\n if (this._handshakeId) {\n this._handshakeId = 0;\n }\n if (this._handshakeTopic) {\n this._handshakeTopic = \"\";\n }\n if (this._peerId) {\n this._peerId = \"\";\n }\n this._eventManager.trigger({\n event: \"disconnect\",\n params: [{ message }],\n });\n this._removeStorageSession();\n this.transportClose();\n }\n _handleSessionResponse(errorMsg, sessionParams) {\n if (sessionParams) {\n if (sessionParams.approved) {\n if (!this._connected) {\n this._connected = true;\n if (sessionParams.chainId) {\n this.chainId = sessionParams.chainId;\n }\n if (sessionParams.accounts) {\n this.accounts = sessionParams.accounts;\n }\n if (sessionParams.peerId && !this.peerId) {\n this.peerId = sessionParams.peerId;\n }\n if (sessionParams.peerMeta && !this.peerMeta) {\n this.peerMeta = sessionParams.peerMeta;\n }\n this._eventManager.trigger({\n event: \"connect\",\n params: [\n {\n peerId: this.peerId,\n peerMeta: this.peerMeta,\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n else {\n if (sessionParams.chainId) {\n this.chainId = sessionParams.chainId;\n }\n if (sessionParams.accounts) {\n this.accounts = sessionParams.accounts;\n }\n this._eventManager.trigger({\n event: \"session_update\",\n params: [\n {\n chainId: this.chainId,\n accounts: this.accounts,\n },\n ],\n });\n }\n this._manageStorageSession();\n }\n else {\n this._handleSessionDisconnect(errorMsg);\n }\n }\n else {\n this._handleSessionDisconnect(errorMsg);\n }\n }\n async _handleIncomingMessages(socketMessage) {\n const activeTopics = [this.clientId, this.handshakeTopic];\n if (!activeTopics.includes(socketMessage.topic)) {\n return;\n }\n let encryptionPayload;\n try {\n encryptionPayload = JSON.parse(socketMessage.payload);\n }\n catch (error) {\n return;\n }\n const payload = await this._decrypt(encryptionPayload);\n if (payload) {\n this._eventManager.trigger(payload);\n }\n }\n _subscribeToSessionRequest() {\n this._transport.subscribe(this.handshakeTopic);\n }\n _subscribeToResponse(id, callback) {\n this.on(`response:${id}`, callback);\n }\n _subscribeToSessionResponse(id, errorMsg) {\n this._subscribeToResponse(id, (error, payload) => {\n if (error) {\n this._handleSessionResponse(error.message);\n return;\n }\n if (isJsonRpcResponseSuccess(payload)) {\n this._handleSessionResponse(errorMsg, payload.result);\n }\n else if (payload.error && payload.error.message) {\n this._handleSessionResponse(payload.error.message);\n }\n else {\n this._handleSessionResponse(errorMsg);\n }\n });\n }\n _subscribeToCallResponse(id) {\n return new Promise((resolve, reject) => {\n this._subscribeToResponse(id, (error, payload) => {\n if (error) {\n reject(error);\n return;\n }\n if (isJsonRpcResponseSuccess(payload)) {\n resolve(payload.result);\n }\n else if (payload.error && payload.error.message) {\n reject(new Error(payload.error.message));\n }\n else {\n reject(new Error(ERROR_INVALID_RESPONSE));\n }\n });\n });\n }\n _subscribeToInternalEvents() {\n this.on(\"display_uri\", () => {\n if (this._qrcodeModal) {\n this._qrcodeModal.open(this.uri, () => {\n this._eventManager.trigger({\n event: \"modal_closed\",\n params: [],\n });\n }, this._qrcodeModalOptions);\n }\n });\n this.on(\"connect\", () => {\n if (this._qrcodeModal) {\n this._qrcodeModal.close();\n }\n });\n this.on(\"call_request_sent\", (error, payload) => {\n const { request } = payload.params[0];\n if ((0,browser_utils_dist_esm.isMobile)() && this._signingMethods.includes(request.method)) {\n const mobileLinkUrl = (0,browser_utils_dist_esm.getLocal)(browser_utils_dist_esm.mobileLinkChoiceKey);\n if (mobileLinkUrl) {\n window.location.href = mobileLinkUrl.href;\n }\n }\n });\n this.on(\"wc_sessionRequest\", (error, payload) => {\n if (error) {\n this._eventManager.trigger({\n event: \"error\",\n params: [\n {\n code: \"SESSION_REQUEST_ERROR\",\n message: error.toString(),\n },\n ],\n });\n }\n this.handshakeId = payload.id;\n this.peerId = payload.params[0].peerId;\n this.peerMeta = payload.params[0].peerMeta;\n const internalPayload = Object.assign(Object.assign({}, payload), { method: \"session_request\" });\n this._eventManager.trigger(internalPayload);\n });\n this.on(\"wc_sessionUpdate\", (error, payload) => {\n if (error) {\n this._handleSessionResponse(error.message);\n }\n this._handleSessionResponse(\"Session disconnected\", payload.params[0]);\n });\n }\n _initTransport() {\n this._transport.on(\"message\", (socketMessage) => this._handleIncomingMessages(socketMessage));\n this._transport.on(\"open\", () => this._eventManager.trigger({ event: \"transport_open\", params: [] }));\n this._transport.on(\"close\", () => this._eventManager.trigger({ event: \"transport_close\", params: [] }));\n this._transport.on(\"error\", () => this._eventManager.trigger({\n event: \"transport_error\",\n params: [\"Websocket connection failed\"],\n }));\n this._transport.open();\n }\n _formatUri() {\n const protocol = this.protocol;\n const handshakeTopic = this.handshakeTopic;\n const version = this.version;\n const bridge = encodeURIComponent(this.bridge);\n const key = this.key;\n const uri = `${protocol}:${handshakeTopic}@${version}?bridge=${bridge}&key=${key}`;\n return uri;\n }\n _parseUri(uri) {\n const result = parseWalletConnectUri(uri);\n if (result.protocol === this.protocol) {\n if (!result.handshakeTopic) {\n throw Error(\"Invalid or missing handshakeTopic parameter value\");\n }\n const handshakeTopic = result.handshakeTopic;\n if (!result.bridge) {\n throw Error(\"Invalid or missing bridge url parameter value\");\n }\n const bridge = decodeURIComponent(result.bridge);\n if (!result.key) {\n throw Error(\"Invalid or missing key parameter value\");\n }\n const key = result.key;\n return { handshakeTopic, bridge, key };\n }\n else {\n throw new Error(ERROR_INVALID_URI);\n }\n }\n async _generateKey() {\n if (this._cryptoLib) {\n const result = await this._cryptoLib.generateKey();\n return result;\n }\n return null;\n }\n async _encrypt(data) {\n const key = this._key;\n if (this._cryptoLib && key) {\n const result = await this._cryptoLib.encrypt(data, key);\n return result;\n }\n return null;\n }\n async _decrypt(payload) {\n const key = this._key;\n if (this._cryptoLib && key) {\n const result = await this._cryptoLib.decrypt(payload, key);\n return result;\n }\n return null;\n }\n _getStorageSession() {\n let result = null;\n if (this._sessionStorage) {\n result = this._sessionStorage.getSession();\n }\n return result;\n }\n _setStorageSession() {\n if (this._sessionStorage) {\n this._sessionStorage.setSession(this.session);\n }\n }\n _removeStorageSession() {\n if (this._sessionStorage) {\n this._sessionStorage.removeSession();\n }\n }\n _manageStorageSession() {\n if (this._connected) {\n this._setStorageSession();\n }\n else {\n this._removeStorageSession();\n }\n }\n _registerPushServer(pushServerOpts) {\n if (!pushServerOpts.url || typeof pushServerOpts.url !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.url parameter value\");\n }\n if (!pushServerOpts.type || typeof pushServerOpts.type !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.type parameter value\");\n }\n if (!pushServerOpts.token || typeof pushServerOpts.token !== \"string\") {\n throw Error(\"Invalid or missing pushServerOpts.token parameter value\");\n }\n const pushSubscription = {\n bridge: this.bridge,\n topic: this.clientId,\n type: pushServerOpts.type,\n token: pushServerOpts.token,\n peerName: \"\",\n language: pushServerOpts.language || \"\",\n };\n this.on(\"connect\", async (error, payload) => {\n if (error) {\n throw error;\n }\n if (pushServerOpts.peerMeta) {\n const peerName = payload.params[0].peerMeta.name;\n pushSubscription.peerName = peerName;\n }\n try {\n const response = await fetch(`${pushServerOpts.url}/new`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(pushSubscription),\n });\n const json = await response.json();\n if (!json.success) {\n throw Error(\"Failed to register in Push Server\");\n }\n }\n catch (error) {\n throw Error(\"Failed to register in Push Server\");\n }\n });\n }\n}\n/* harmony default export */ var core_dist_esm = (Connector);\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: ./node_modules/@walletconnect/environment/dist/cjs/index.js\nvar cjs = __webpack_require__(1468);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/randombytes/dist/esm/browser/index.js\n\nfunction randomBytes(length) {\n const browserCrypto = cjs.getBrowerCrypto();\n return browserCrypto.getRandomValues(new Uint8Array(length));\n}\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/constants/length.js\nconst LENGTH_0 = 0;\nconst length_LENGTH_1 = 1;\nconst length_LENGTH_16 = 16;\nconst length_LENGTH_32 = 32;\nconst LENGTH_64 = 64;\nconst LENGTH_128 = 128;\nconst LENGTH_256 = 256;\nconst length_LENGTH_512 = 512;\nconst LENGTH_1024 = 1024;\n//# sourceMappingURL=length.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/constants/default.js\n\nconst AES_LENGTH = LENGTH_256;\nconst HMAC_LENGTH = LENGTH_256;\nconst default_AES_BROWSER_ALGO = \"AES-CBC\";\nconst HMAC_BROWSER_ALGO = `SHA-${AES_LENGTH}`;\nconst default_HMAC_BROWSER = \"HMAC\";\nconst default_SHA256_BROWSER_ALGO = \"SHA-256\";\nconst default_SHA512_BROWSER_ALGO = \"SHA-512\";\nconst AES_NODE_ALGO = `aes-${AES_LENGTH}-cbc`;\nconst HMAC_NODE_ALGO = `sha${HMAC_LENGTH}`;\nconst SHA256_NODE_ALGO = \"sha256\";\nconst SHA512_NODE_ALGO = \"sha512\";\nconst RIPEMD160_NODE_ALGO = \"ripemd160\";\nconst PREFIX_LENGTH = (/* unused pure expression or super */ null && (LENGTH_1));\nconst KEY_LENGTH = (/* unused pure expression or super */ null && (LENGTH_32));\nconst IV_LENGTH = (/* unused pure expression or super */ null && (LENGTH_16));\nconst MAC_LENGTH = (/* unused pure expression or super */ null && (LENGTH_32));\n//# sourceMappingURL=default.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/constants/operations.js\nconst ENCRYPT_OP = \"encrypt\";\nconst DECRYPT_OP = \"decrypt\";\nconst SIGN_OP = \"sign\";\nconst VERIFY_OP = \"verify\";\n//# sourceMappingURL=operations.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/constants/index.js\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/lib/browser.js\n\n\nfunction getAlgo(type) {\n return type === default_AES_BROWSER_ALGO\n ? { length: AES_LENGTH, name: default_AES_BROWSER_ALGO }\n : {\n hash: { name: HMAC_BROWSER_ALGO },\n name: default_HMAC_BROWSER,\n };\n}\nfunction getOps(type) {\n return type === default_AES_BROWSER_ALGO\n ? [ENCRYPT_OP, DECRYPT_OP]\n : [SIGN_OP, VERIFY_OP];\n}\nasync function browserExportKey(cryptoKey, type = AES_BROWSER_ALGO) {\n const subtle = env.getSubtleCrypto();\n return new Uint8Array(await subtle.exportKey(\"raw\", cryptoKey));\n}\nasync function browserImportKey(buffer, type = default_AES_BROWSER_ALGO) {\n return cjs.getSubtleCrypto().importKey(\"raw\", buffer, getAlgo(type), true, getOps(type));\n}\nasync function browserAesEncrypt(iv, key, data) {\n const subtle = cjs.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, default_AES_BROWSER_ALGO);\n const result = await subtle.encrypt({\n iv,\n name: default_AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nasync function browserAesDecrypt(iv, key, data) {\n const subtle = cjs.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, default_AES_BROWSER_ALGO);\n const result = await subtle.decrypt({\n iv,\n name: default_AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nasync function browser_browserHmacSha256Sign(key, data) {\n const subtle = cjs.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, default_HMAC_BROWSER);\n const signature = await subtle.sign({\n length: HMAC_LENGTH,\n name: default_HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nasync function browser_browserHmacSha512Sign(key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, HMAC_BROWSER);\n const signature = await subtle.sign({\n length: LENGTH_512,\n name: HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nasync function browser_browserSha256(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA256_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\nasync function browser_browserSha512(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA512_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\n//# sourceMappingURL=browser.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/browser/aes.js\n\nfunction aesCbcEncrypt(iv, key, data) {\n return browserAesEncrypt(iv, key, data);\n}\nfunction aesCbcDecrypt(iv, key, data) {\n return browserAesDecrypt(iv, key, data);\n}\n//# sourceMappingURL=aes.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/helpers/env.js\n\n//# sourceMappingURL=env.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/helpers/pkcs7.js\nconst PADDING = [\n [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16],\n [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15],\n [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],\n [13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13],\n [12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],\n [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],\n [10, 10, 10, 10, 10, 10, 10, 10, 10, 10],\n [9, 9, 9, 9, 9, 9, 9, 9, 9],\n [8, 8, 8, 8, 8, 8, 8, 8],\n [7, 7, 7, 7, 7, 7, 7],\n [6, 6, 6, 6, 6, 6],\n [5, 5, 5, 5, 5],\n [4, 4, 4, 4],\n [3, 3, 3],\n [2, 2],\n [1],\n];\nconst pkcs7 = {\n pad(plaintext) {\n const padding = PADDING[plaintext.byteLength % 16 || 0];\n const result = new Uint8Array(plaintext.byteLength + padding.length);\n result.set(plaintext);\n result.set(padding, plaintext.byteLength);\n return result;\n },\n unpad(padded) {\n return padded.subarray(0, padded.byteLength - padded[padded.byteLength - 1]);\n },\n};\n//# sourceMappingURL=pkcs7.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/helpers/index.js\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/browser/hmac.js\n\n\nasync function hmacSha256Sign(key, msg) {\n const result = await browser_browserHmacSha256Sign(key, msg);\n return result;\n}\nasync function hmacSha256Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha256Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\nasync function hmacSha512Sign(key, msg) {\n const result = await browserHmacSha512Sign(key, msg);\n return result;\n}\nasync function hmacSha512Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha512Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\n//# sourceMappingURL=hmac.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/browser/sha2.js\n\nasync function sha256(msg) {\n const result = await browserSha256(msg);\n return result;\n}\nasync function sha512(msg) {\n const result = await browserSha512(msg);\n return result;\n}\nasync function ripemd160(msg) {\n throw new Error(\"Not supported for Browser async methods, use sync instead!\");\n}\n//# sourceMappingURL=sha2.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/crypto/dist/esm/browser/index.js\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/iso-crypto/dist/esm/index.js\n\n\n\nasync function generateKey(length) {\n const _length = (length || 256) / 8;\n const bytes = randomBytes(_length);\n const result = convertBufferToArrayBuffer(arrayToBuffer(bytes));\n return result;\n}\nasync function verifyHmac(payload, key) {\n const cipherText = hexToArray(payload.data);\n const iv = hexToArray(payload.iv);\n const hmac = hexToArray(payload.hmac);\n const hmacHex = arrayToHex(hmac, false);\n const unsigned = concatArrays(cipherText, iv);\n const chmac = await hmacSha256Sign(key, unsigned);\n const chmacHex = arrayToHex(chmac, false);\n if (removeHexPrefix(hmacHex) === removeHexPrefix(chmacHex)) {\n return true;\n }\n return false;\n}\nasync function encrypt(data, key, providedIv) {\n const _key = bufferToArray(convertArrayBufferToBuffer(key));\n const ivArrayBuffer = providedIv || (await generateKey(128));\n const iv = bufferToArray(convertArrayBufferToBuffer(ivArrayBuffer));\n const ivHex = arrayToHex(iv, false);\n const contentString = JSON.stringify(data);\n const content = utf8ToArray(contentString);\n const cipherText = await aesCbcEncrypt(iv, _key, content);\n const cipherTextHex = arrayToHex(cipherText, false);\n const unsigned = concatArrays(cipherText, iv);\n const hmac = await hmacSha256Sign(_key, unsigned);\n const hmacHex = arrayToHex(hmac, false);\n return {\n data: cipherTextHex,\n hmac: hmacHex,\n iv: ivHex,\n };\n}\nasync function decrypt(payload, key) {\n const _key = bufferToArray(convertArrayBufferToBuffer(key));\n if (!_key) {\n throw new Error(\"Missing key: required for decryption\");\n }\n const verified = await verifyHmac(payload, _key);\n if (!verified) {\n return null;\n }\n const cipherText = hexToArray(payload.data);\n const iv = hexToArray(payload.iv);\n const buffer = await aesCbcDecrypt(iv, _key, cipherText);\n const utf8 = arrayToUtf8(buffer);\n let data;\n try {\n data = JSON.parse(utf8);\n }\n catch (error) {\n return null;\n }\n return data;\n}\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/client/dist/esm/index.js\n\n\nclass WalletConnect extends core_dist_esm {\n constructor(connectorOpts, pushServerOpts) {\n super({\n cryptoLib: iso_crypto_dist_esm_namespaceObject,\n connectorOpts,\n pushServerOpts,\n });\n }\n}\n/* harmony default export */ var client_dist_esm = (WalletConnect);\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: ./node_modules/@walletconnect/qrcode-modal/dist/cjs/index.js\nvar dist_cjs = __webpack_require__(4337);\nvar dist_cjs_default = /*#__PURE__*/__webpack_require__.n(dist_cjs);\n// EXTERNAL MODULE: ./node_modules/@walletconnect/jsonrpc-types/dist/esm/provider.js + 1 modules\nvar esm_provider = __webpack_require__(73416);\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/signer-connection/dist/esm/index.js\n\n\n\n\n\nclass SignerConnection extends esm_provider/* IJsonRpcConnection */.XR {\n constructor(opts) {\n super();\n this.events = new (eventemitter3_default())();\n this.accounts = [];\n this.chainId = 1;\n this.pending = false;\n this.bridge = \"https://bridge.walletconnect.org\";\n this.qrcode = true;\n this.qrcodeModalOptions = undefined;\n this.opts = opts;\n this.chainId = (opts === null || opts === void 0 ? void 0 : opts.chainId) || this.chainId;\n this.wc = this.register(opts);\n }\n get connected() {\n return typeof this.wc !== \"undefined\" && this.wc.connected;\n }\n get connecting() {\n return this.pending;\n }\n get connector() {\n this.wc = this.register(this.opts);\n return this.wc;\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n async open(chainId) {\n if (this.connected) {\n this.onOpen();\n return;\n }\n return new Promise((resolve, reject) => {\n this.on(\"error\", err => {\n reject(err);\n });\n this.on(\"open\", () => {\n resolve();\n });\n this.create(chainId);\n });\n }\n async close() {\n if (typeof this.wc === \"undefined\")\n return;\n if (this.wc.connected) {\n this.wc.killSession();\n }\n this.onClose();\n }\n async send(payload) {\n this.wc = this.register(this.opts);\n if (!this.connected)\n await this.open();\n this.sendPayload(payload)\n .then((res) => this.events.emit(\"payload\", res))\n .catch(e => this.events.emit(\"payload\", (0,esm.formatJsonRpcError)(payload.id, e.message)));\n }\n register(opts) {\n if (this.wc)\n return this.wc;\n this.opts = opts || this.opts;\n this.bridge = (opts === null || opts === void 0 ? void 0 : opts.connector)\n ? opts.connector.bridge\n : (opts === null || opts === void 0 ? void 0 : opts.bridge) || \"https://bridge.walletconnect.org\";\n this.qrcode = typeof (opts === null || opts === void 0 ? void 0 : opts.qrcode) === \"undefined\" || opts.qrcode !== false;\n this.chainId = typeof (opts === null || opts === void 0 ? void 0 : opts.chainId) !== \"undefined\" ? opts.chainId : this.chainId;\n this.qrcodeModalOptions = opts === null || opts === void 0 ? void 0 : opts.qrcodeModalOptions;\n const connectorOpts = {\n bridge: this.bridge,\n qrcodeModal: this.qrcode ? (dist_cjs_default()) : undefined,\n qrcodeModalOptions: this.qrcodeModalOptions,\n storageId: opts === null || opts === void 0 ? void 0 : opts.storageId,\n signingMethods: opts === null || opts === void 0 ? void 0 : opts.signingMethods,\n clientMeta: opts === null || opts === void 0 ? void 0 : opts.clientMeta,\n };\n this.wc =\n typeof (opts === null || opts === void 0 ? void 0 : opts.connector) !== \"undefined\" ? opts.connector : new client_dist_esm(connectorOpts);\n if (typeof this.wc === \"undefined\") {\n throw new Error(\"Failed to register WalletConnect connector\");\n }\n if (this.wc.accounts.length) {\n this.accounts = this.wc.accounts;\n }\n if (this.wc.chainId) {\n this.chainId = this.wc.chainId;\n }\n this.registerConnectorEvents();\n return this.wc;\n }\n onOpen(wc) {\n this.pending = false;\n if (wc) {\n this.wc = wc;\n }\n this.events.emit(\"open\");\n }\n onClose() {\n this.pending = false;\n if (this.wc) {\n this.wc = undefined;\n }\n this.events.emit(\"close\");\n }\n onError(payload, message = \"Failed or Rejected Request\", code = -32000) {\n const errorPayload = {\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n error: { code, message },\n };\n this.events.emit(\"payload\", errorPayload);\n return errorPayload;\n }\n create(chainId) {\n this.wc = this.register(this.opts);\n this.chainId = chainId || this.chainId;\n if (this.connected || this.pending)\n return;\n this.pending = true;\n this.registerConnectorEvents();\n this.wc\n .createSession({ chainId: this.chainId })\n .then(() => this.events.emit(\"created\"))\n .catch((e) => this.events.emit(\"error\", e));\n }\n registerConnectorEvents() {\n this.wc = this.register(this.opts);\n this.wc.on(\"connect\", (err) => {\n var _a, _b;\n if (err) {\n this.events.emit(\"error\", err);\n return;\n }\n this.accounts = ((_a = this.wc) === null || _a === void 0 ? void 0 : _a.accounts) || [];\n this.chainId = ((_b = this.wc) === null || _b === void 0 ? void 0 : _b.chainId) || this.chainId;\n this.onOpen();\n });\n this.wc.on(\"disconnect\", (err) => {\n if (err) {\n this.events.emit(\"error\", err);\n return;\n }\n this.onClose();\n });\n this.wc.on(\"modal_closed\", () => {\n this.events.emit(\"error\", new Error(\"User closed modal\"));\n });\n this.wc.on(\"session_update\", (error, payload) => {\n const { accounts, chainId } = payload.params[0];\n if (!this.accounts || (accounts && this.accounts !== accounts)) {\n this.accounts = accounts;\n this.events.emit(\"accountsChanged\", accounts);\n }\n if (!this.chainId || (chainId && this.chainId !== chainId)) {\n this.chainId = chainId;\n this.events.emit(\"chainChanged\", chainId);\n }\n });\n }\n async sendPayload(payload) {\n this.wc = this.register(this.opts);\n try {\n const response = await this.wc.unsafeSend(payload);\n return this.sanitizeResponse(response);\n }\n catch (error) {\n return this.onError(payload, error.message);\n }\n }\n sanitizeResponse(response) {\n return typeof response.error !== \"undefined\" &&\n typeof response.error.code === \"undefined\"\n ? (0,esm.formatJsonRpcError)(response.id, response.error.message)\n : response;\n }\n}\n/* harmony default export */ var signer_connection_dist_esm = ((/* unused pure expression or super */ null && (SignerConnection)));\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/ethereum-provider/dist/esm/index.js\n\n\n\n\n\nclass WalletConnectProvider {\n constructor(opts) {\n this.events = new (eventemitter3_default())();\n this.rpc = { infuraId: opts === null || opts === void 0 ? void 0 : opts.infuraId, custom: opts === null || opts === void 0 ? void 0 : opts.rpc };\n this.signer = new JsonRpcProvider(new SignerConnection(opts));\n const chainId = this.signer.connection.chainId || (opts === null || opts === void 0 ? void 0 : opts.chainId) || 1;\n this.http = this.setHttpProvider(chainId);\n this.registerEventListeners();\n }\n get connected() {\n return this.signer.connection.connected;\n }\n get connector() {\n return this.signer.connection.connector;\n }\n get accounts() {\n return this.signer.connection.accounts;\n }\n get chainId() {\n return this.signer.connection.chainId;\n }\n get rpcUrl() {\n var _a;\n return ((_a = this.http) === null || _a === void 0 ? void 0 : _a.connection).url || \"\";\n }\n async request(args) {\n switch (args.method) {\n case \"eth_requestAccounts\":\n await this.connect();\n return this.signer.connection.accounts;\n case \"eth_accounts\":\n return this.signer.connection.accounts;\n case \"eth_chainId\":\n return this.signer.connection.chainId;\n default:\n break;\n }\n if (signingMethods.includes(args.method)) {\n return this.signer.request(args);\n }\n if (typeof this.http === \"undefined\") {\n throw new Error(`Cannot request JSON-RPC method (${args.method}) without provided rpc url`);\n }\n return this.http.request(args);\n }\n sendAsync(args, callback) {\n this.request(args)\n .then(response => callback(null, response))\n .catch(error => callback(error, undefined));\n }\n async enable() {\n const accounts = await this.request({ method: \"eth_requestAccounts\" });\n return accounts;\n }\n async connect() {\n if (!this.signer.connection.connected) {\n await this.signer.connect();\n }\n }\n async disconnect() {\n if (this.signer.connection.connected) {\n await this.signer.disconnect();\n }\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n get isWalletConnect() {\n return true;\n }\n registerEventListeners() {\n this.signer.connection.on(\"accountsChanged\", accounts => {\n this.events.emit(\"accountsChanged\", accounts);\n });\n this.signer.connection.on(\"chainChanged\", chainId => {\n this.http = this.setHttpProvider(chainId);\n this.events.emit(\"chainChanged\", chainId);\n });\n this.signer.on(\"disconnect\", () => {\n this.events.emit(\"disconnect\");\n });\n }\n setHttpProvider(chainId) {\n const rpcUrl = getRpcUrl(chainId, this.rpc);\n if (typeof rpcUrl === \"undefined\")\n return undefined;\n const http = new JsonRpcProvider(new http_HttpConnection(rpcUrl));\n return http;\n }\n}\n/* harmony default export */ var ethereum_provider_dist_esm = (WalletConnectProvider);\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ 35885:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"IJsonRpcProvider\": function() { return /* reexport safe */ _provider__WEBPACK_IMPORTED_MODULE_1__.x0; }\n/* harmony export */ });\n/* harmony import */ var _jsonrpc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74057);\n/* harmony import */ var _jsonrpc__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jsonrpc__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (checked) */ if(__webpack_require__.o(_jsonrpc__WEBPACK_IMPORTED_MODULE_0__, \"IJsonRpcProvider\")) __webpack_require__.d(__webpack_exports__, { \"IJsonRpcProvider\": function() { return _jsonrpc__WEBPACK_IMPORTED_MODULE_0__.IJsonRpcProvider; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_jsonrpc__WEBPACK_IMPORTED_MODULE_0__, \"isHttpUrl\")) __webpack_require__.d(__webpack_exports__, { \"isHttpUrl\": function() { return _jsonrpc__WEBPACK_IMPORTED_MODULE_0__.isHttpUrl; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_jsonrpc__WEBPACK_IMPORTED_MODULE_0__, \"isJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcError\": function() { return _jsonrpc__WEBPACK_IMPORTED_MODULE_0__.isJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_jsonrpc__WEBPACK_IMPORTED_MODULE_0__, \"isJsonRpcResponse\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcResponse\": function() { return _jsonrpc__WEBPACK_IMPORTED_MODULE_0__.isJsonRpcResponse; } });\n/* harmony import */ var _provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73416);\n/* harmony import */ var _validator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71948);\n/* harmony import */ var _validator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_validator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony reexport (checked) */ if(__webpack_require__.o(_validator__WEBPACK_IMPORTED_MODULE_2__, \"isHttpUrl\")) __webpack_require__.d(__webpack_exports__, { \"isHttpUrl\": function() { return _validator__WEBPACK_IMPORTED_MODULE_2__.isHttpUrl; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_validator__WEBPACK_IMPORTED_MODULE_2__, \"isJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcError\": function() { return _validator__WEBPACK_IMPORTED_MODULE_2__.isJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_validator__WEBPACK_IMPORTED_MODULE_2__, \"isJsonRpcResponse\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcResponse\": function() { return _validator__WEBPACK_IMPORTED_MODULE_2__.isJsonRpcResponse; } });\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ 74057:\n/***/ (function() {\n\n//# sourceMappingURL=jsonrpc.js.map\n\n/***/ }),\n\n/***/ 73416:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"XR\": function() { return /* binding */ IJsonRpcConnection; },\n \"x0\": function() { return /* binding */ IJsonRpcProvider; }\n});\n\n// UNUSED EXPORTS: IBaseJsonRpcProvider\n\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/jsonrpc-types/dist/esm/misc.js\nclass IEvents {\n}\n//# sourceMappingURL=misc.js.map\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/jsonrpc-types/dist/esm/provider.js\n\nclass IJsonRpcConnection extends IEvents {\n constructor(opts) {\n super();\n }\n}\nclass IBaseJsonRpcProvider extends IEvents {\n constructor() {\n super();\n }\n}\nclass IJsonRpcProvider extends IBaseJsonRpcProvider {\n constructor(connection) {\n super();\n }\n}\n//# sourceMappingURL=provider.js.map\n\n/***/ }),\n\n/***/ 71948:\n/***/ (function() {\n\n//# sourceMappingURL=validator.js.map\n\n/***/ }),\n\n/***/ 79806:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CA\": function() { return /* binding */ SERVER_ERROR; },\n/* harmony export */ \"JV\": function() { return /* binding */ DEFAULT_ERROR; },\n/* harmony export */ \"O4\": function() { return /* binding */ INTERNAL_ERROR; },\n/* harmony export */ \"dQ\": function() { return /* binding */ RESERVED_ERROR_CODES; },\n/* harmony export */ \"xK\": function() { return /* binding */ STANDARD_ERROR_MAP; }\n/* harmony export */ });\n/* unused harmony exports PARSE_ERROR, INVALID_REQUEST, METHOD_NOT_FOUND, INVALID_PARAMS, SERVER_ERROR_CODE_RANGE */\nconst PARSE_ERROR = \"PARSE_ERROR\";\nconst INVALID_REQUEST = \"INVALID_REQUEST\";\nconst METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nconst INVALID_PARAMS = \"INVALID_PARAMS\";\nconst INTERNAL_ERROR = \"INTERNAL_ERROR\";\nconst SERVER_ERROR = \"SERVER_ERROR\";\nconst RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nconst SERVER_ERROR_CODE_RANGE = (/* unused pure expression or super */ null && ([-32000, -32099]));\nconst STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nconst DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map\n\n/***/ }),\n\n/***/ 9698:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export isNodeJs */\n/* harmony import */ var _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1468);\n/* harmony import */ var _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__, \"IJsonRpcProvider\")) __webpack_require__.d(__webpack_exports__, { \"IJsonRpcProvider\": function() { return _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__.IJsonRpcProvider; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__, \"formatJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"formatJsonRpcError\": function() { return _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__.formatJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__, \"formatJsonRpcRequest\")) __webpack_require__.d(__webpack_exports__, { \"formatJsonRpcRequest\": function() { return _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__.formatJsonRpcRequest; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__, \"isHttpUrl\")) __webpack_require__.d(__webpack_exports__, { \"isHttpUrl\": function() { return _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__.isHttpUrl; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__, \"isJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcError\": function() { return _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__.isJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__, \"isJsonRpcResponse\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcResponse\": function() { return _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__.isJsonRpcResponse; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__, \"payloadId\")) __webpack_require__.d(__webpack_exports__, { \"payloadId\": function() { return _walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__.payloadId; } });\n\nconst isNodeJs = (/* unused pure expression or super */ null && (isNode));\n\n//# sourceMappingURL=env.js.map\n\n/***/ }),\n\n/***/ 90110:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CX\": function() { return /* binding */ parseConnectionError; },\n/* harmony export */ \"L2\": function() { return /* binding */ getErrorByCode; },\n/* harmony export */ \"by\": function() { return /* binding */ getError; },\n/* harmony export */ \"i5\": function() { return /* binding */ isReservedErrorCode; }\n/* harmony export */ });\n/* unused harmony exports isServerErrorCode, isValidErrorCode, validateJsonRpcError */\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79806);\n\nfunction isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nfunction isReservedErrorCode(code) {\n return _constants__WEBPACK_IMPORTED_MODULE_0__/* .RESERVED_ERROR_CODES.includes */ .dQ.includes(code);\n}\nfunction isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nfunction getError(type) {\n if (!Object.keys(_constants__WEBPACK_IMPORTED_MODULE_0__/* .STANDARD_ERROR_MAP */ .xK).includes(type)) {\n return _constants__WEBPACK_IMPORTED_MODULE_0__/* .STANDARD_ERROR_MAP */ .xK[_constants__WEBPACK_IMPORTED_MODULE_0__/* .DEFAULT_ERROR */ .JV];\n }\n return _constants__WEBPACK_IMPORTED_MODULE_0__/* .STANDARD_ERROR_MAP */ .xK[type];\n}\nfunction getErrorByCode(code) {\n const match = Object.values(_constants__WEBPACK_IMPORTED_MODULE_0__/* .STANDARD_ERROR_MAP */ .xK).find(e => e.code === code);\n if (!match) {\n return _constants__WEBPACK_IMPORTED_MODULE_0__/* .STANDARD_ERROR_MAP */ .xK[_constants__WEBPACK_IMPORTED_MODULE_0__/* .DEFAULT_ERROR */ .JV];\n }\n return match;\n}\nfunction validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nfunction parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map\n\n/***/ }),\n\n/***/ 71937:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RI\": function() { return /* binding */ formatJsonRpcError; },\n/* harmony export */ \"o0\": function() { return /* binding */ payloadId; },\n/* harmony export */ \"sT\": function() { return /* binding */ formatJsonRpcRequest; }\n/* harmony export */ });\n/* unused harmony exports formatJsonRpcResult, formatErrorMessage */\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90110);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79806);\n\n\nfunction payloadId() {\n const date = Date.now() * Math.pow(10, 3);\n const extra = Math.floor(Math.random() * Math.pow(10, 3));\n return date + extra;\n}\nfunction formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nfunction formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nfunction formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nfunction formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return (0,_error__WEBPACK_IMPORTED_MODULE_0__/* .getError */ .by)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .INTERNAL_ERROR */ .O4);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, (0,_error__WEBPACK_IMPORTED_MODULE_0__/* .getError */ .by)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .SERVER_ERROR */ .CA)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if ((0,_error__WEBPACK_IMPORTED_MODULE_0__/* .isReservedErrorCode */ .i5)(error.code)) {\n error = (0,_error__WEBPACK_IMPORTED_MODULE_0__/* .getErrorByCode */ .L2)(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map\n\n/***/ }),\n\n/***/ 56186:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"formatJsonRpcError\": function() { return /* reexport safe */ _format__WEBPACK_IMPORTED_MODULE_3__.RI; },\n/* harmony export */ \"formatJsonRpcRequest\": function() { return /* reexport safe */ _format__WEBPACK_IMPORTED_MODULE_3__.sT; },\n/* harmony export */ \"isHttpUrl\": function() { return /* reexport safe */ _url__WEBPACK_IMPORTED_MODULE_5__.jK; },\n/* harmony export */ \"isJsonRpcError\": function() { return /* reexport safe */ _validators__WEBPACK_IMPORTED_MODULE_6__.jg; },\n/* harmony export */ \"isJsonRpcResponse\": function() { return /* reexport safe */ _validators__WEBPACK_IMPORTED_MODULE_6__.u; },\n/* harmony export */ \"parseConnectionError\": function() { return /* reexport safe */ _error__WEBPACK_IMPORTED_MODULE_1__.CX; },\n/* harmony export */ \"payloadId\": function() { return /* reexport safe */ _format__WEBPACK_IMPORTED_MODULE_3__.o0; }\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79806);\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(90110);\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9698);\n/* harmony reexport (checked) */ if(__webpack_require__.o(_env__WEBPACK_IMPORTED_MODULE_2__, \"IJsonRpcProvider\")) __webpack_require__.d(__webpack_exports__, { \"IJsonRpcProvider\": function() { return _env__WEBPACK_IMPORTED_MODULE_2__.IJsonRpcProvider; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_env__WEBPACK_IMPORTED_MODULE_2__, \"formatJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"formatJsonRpcError\": function() { return _env__WEBPACK_IMPORTED_MODULE_2__.formatJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_env__WEBPACK_IMPORTED_MODULE_2__, \"formatJsonRpcRequest\")) __webpack_require__.d(__webpack_exports__, { \"formatJsonRpcRequest\": function() { return _env__WEBPACK_IMPORTED_MODULE_2__.formatJsonRpcRequest; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_env__WEBPACK_IMPORTED_MODULE_2__, \"isHttpUrl\")) __webpack_require__.d(__webpack_exports__, { \"isHttpUrl\": function() { return _env__WEBPACK_IMPORTED_MODULE_2__.isHttpUrl; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_env__WEBPACK_IMPORTED_MODULE_2__, \"isJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcError\": function() { return _env__WEBPACK_IMPORTED_MODULE_2__.isJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_env__WEBPACK_IMPORTED_MODULE_2__, \"isJsonRpcResponse\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcResponse\": function() { return _env__WEBPACK_IMPORTED_MODULE_2__.isJsonRpcResponse; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_env__WEBPACK_IMPORTED_MODULE_2__, \"payloadId\")) __webpack_require__.d(__webpack_exports__, { \"payloadId\": function() { return _env__WEBPACK_IMPORTED_MODULE_2__.payloadId; } });\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71937);\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26043);\n/* harmony reexport (checked) */ if(__webpack_require__.o(_types__WEBPACK_IMPORTED_MODULE_4__, \"IJsonRpcProvider\")) __webpack_require__.d(__webpack_exports__, { \"IJsonRpcProvider\": function() { return _types__WEBPACK_IMPORTED_MODULE_4__.IJsonRpcProvider; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_types__WEBPACK_IMPORTED_MODULE_4__, \"isHttpUrl\")) __webpack_require__.d(__webpack_exports__, { \"isHttpUrl\": function() { return _types__WEBPACK_IMPORTED_MODULE_4__.isHttpUrl; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_types__WEBPACK_IMPORTED_MODULE_4__, \"isJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcError\": function() { return _types__WEBPACK_IMPORTED_MODULE_4__.isJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_types__WEBPACK_IMPORTED_MODULE_4__, \"isJsonRpcResponse\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcResponse\": function() { return _types__WEBPACK_IMPORTED_MODULE_4__.isJsonRpcResponse; } });\n/* harmony import */ var _url__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46119);\n/* harmony import */ var _validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84733);\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ 26043:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"IJsonRpcProvider\": function() { return /* reexport safe */ _walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__.IJsonRpcProvider; }\n/* harmony export */ });\n/* harmony import */ var _walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35885);\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__, \"isHttpUrl\")) __webpack_require__.d(__webpack_exports__, { \"isHttpUrl\": function() { return _walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__.isHttpUrl; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__, \"isJsonRpcError\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcError\": function() { return _walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__.isJsonRpcError; } });\n/* harmony reexport (checked) */ if(__webpack_require__.o(_walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__, \"isJsonRpcResponse\")) __webpack_require__.d(__webpack_exports__, { \"isJsonRpcResponse\": function() { return _walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__.isJsonRpcResponse; } });\n\n//# sourceMappingURL=types.js.map\n\n/***/ }),\n\n/***/ 46119:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"jK\": function() { return /* binding */ isHttpUrl; }\n/* harmony export */ });\n/* unused harmony exports isWsUrl, isLocalhostUrl */\nconst HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n if (!matches || !matches.length)\n return;\n return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n const protocol = getUrlProtocol(url);\n if (typeof protocol === \"undefined\")\n return false;\n return new RegExp(regex).test(protocol);\n}\nfunction isHttpUrl(url) {\n return matchRegexProtocol(url, HTTP_REGEX);\n}\nfunction isWsUrl(url) {\n return matchRegexProtocol(url, WS_REGEX);\n}\nfunction isLocalhostUrl(url) {\n return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map\n\n/***/ }),\n\n/***/ 84733:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"jg\": function() { return /* binding */ isJsonRpcError; },\n/* harmony export */ \"u\": function() { return /* binding */ isJsonRpcResponse; }\n/* harmony export */ });\n/* unused harmony exports isJsonRpcPayload, isJsonRpcRequest, isJsonRpcResult, isJsonRpcValidationInvalid */\nfunction isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nfunction isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nfunction isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nfunction isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nfunction isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nfunction isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map\n\n/***/ }),\n\n/***/ 4337:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* provided dependency */ var process = __webpack_require__(34155);\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar browserUtils = __webpack_require__(96886);\nvar QRCode = _interopDefault(__webpack_require__(92592));\nvar copy = _interopDefault(__webpack_require__(20640));\nvar React = __webpack_require__(89714);\n\nfunction open(uri) {\n QRCode.toString(uri, {\n type: \"terminal\"\n }).then(console.log);\n}\n\nvar WALLETCONNECT_STYLE_SHEET = \":root {\\n --animation-duration: 300ms;\\n}\\n\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeOut {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n\\n.animated {\\n animation-duration: var(--animation-duration);\\n animation-fill-mode: both;\\n}\\n\\n.fadeIn {\\n animation-name: fadeIn;\\n}\\n\\n.fadeOut {\\n animation-name: fadeOut;\\n}\\n\\n#walletconnect-wrapper {\\n -webkit-user-select: none;\\n align-items: center;\\n display: flex;\\n height: 100%;\\n justify-content: center;\\n left: 0;\\n pointer-events: none;\\n position: fixed;\\n top: 0;\\n user-select: none;\\n width: 100%;\\n z-index: 99999999999999;\\n}\\n\\n.walletconnect-modal__headerLogo {\\n height: 21px;\\n}\\n\\n.walletconnect-modal__header p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n align-items: flex-start;\\n display: flex;\\n flex: 1;\\n margin-left: 5px;\\n}\\n\\n.walletconnect-modal__close__wrapper {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n z-index: 10000;\\n background: white;\\n border-radius: 26px;\\n padding: 6px;\\n box-sizing: border-box;\\n width: 26px;\\n height: 26px;\\n cursor: pointer;\\n}\\n\\n.walletconnect-modal__close__icon {\\n position: relative;\\n top: 7px;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transform: rotate(45deg);\\n}\\n\\n.walletconnect-modal__close__line1 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n}\\n\\n.walletconnect-modal__close__line2 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n transform: rotate(90deg);\\n}\\n\\n.walletconnect-qrcode__base {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n background: rgba(37, 41, 46, 0.95);\\n height: 100%;\\n left: 0;\\n pointer-events: auto;\\n position: fixed;\\n top: 0;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n width: 100%;\\n will-change: opacity;\\n padding: 40px;\\n box-sizing: border-box;\\n}\\n\\n.walletconnect-qrcode__text {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 10px 0 20px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-qrcode__text {\\n font-size: 4vw;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-qrcode__text {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-qrcode__image {\\n width: calc(100% - 30px);\\n box-sizing: border-box;\\n cursor: none;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-qrcode__notification {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n font-size: 16px;\\n padding: 16px 20px;\\n border-radius: 16px;\\n text-align: center;\\n transition: all 0.1s ease-in-out;\\n background: white;\\n color: black;\\n margin-bottom: -60px;\\n opacity: 0;\\n}\\n\\n.walletconnect-qrcode__notification.notification__show {\\n opacity: 1;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__header {\\n height: 130px;\\n }\\n .walletconnect-modal__base {\\n overflow: auto;\\n }\\n}\\n\\n@media only screen and (min-device-width: 415px) and (max-width: 768px) {\\n #content {\\n max-width: 768px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 375px) and (max-width: 415px) {\\n #content {\\n max-width: 414px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 320px) and (max-width: 375px) {\\n #content {\\n max-width: 375px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n #content {\\n max-width: 320px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.walletconnect-modal__base {\\n -webkit-font-smoothing: antialiased;\\n background: #ffffff;\\n border-radius: 24px;\\n box-shadow: 0 10px 50px 5px rgba(0, 0, 0, 0.4);\\n font-family: ui-rounded, \\\"SF Pro Rounded\\\", \\\"SF Pro Text\\\", medium-content-sans-serif-font,\\n -apple-system, BlinkMacSystemFont, ui-sans-serif, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell,\\n \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n margin-top: 41px;\\n padding: 24px 24px 22px;\\n pointer-events: auto;\\n position: relative;\\n text-align: center;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n will-change: transform;\\n overflow: visible;\\n transform: translateY(-50%);\\n top: 50%;\\n max-width: 500px;\\n margin: auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__base {\\n padding: 24px 12px;\\n }\\n}\\n\\n.walletconnect-modal__base .hidden {\\n transform: translateY(150%);\\n transition: 0.125s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.walletconnect-modal__header {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n left: 0;\\n justify-content: space-between;\\n position: absolute;\\n top: -42px;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base .wc-logo {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n margin-top: 15px;\\n padding-bottom: 15px;\\n pointer-events: auto;\\n}\\n\\n.walletconnect-modal__base .wc-logo div {\\n background-color: #3399ff;\\n height: 21px;\\n margin-right: 5px;\\n mask-image: url(\\\"images/wc-logo.svg\\\") center no-repeat;\\n width: 32px;\\n}\\n\\n.walletconnect-modal__base .wc-logo p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n}\\n\\n.walletconnect-modal__base h2 {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 0 0 19px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base__row {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n align-items: center;\\n border-radius: 20px;\\n cursor: pointer;\\n display: flex;\\n height: 56px;\\n justify-content: space-between;\\n padding: 0 15px;\\n position: relative;\\n margin: 0px 0px 8px;\\n text-align: left;\\n transition: 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n will-change: transform;\\n text-decoration: none;\\n}\\n\\n.walletconnect-modal__base__row:hover {\\n background: rgba(60, 66, 82, 0.06);\\n}\\n\\n.walletconnect-modal__base__row:active {\\n background: rgba(60, 66, 82, 0.06);\\n transform: scale(0.975);\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n}\\n\\n.walletconnect-modal__base__row__h3 {\\n color: #25292e;\\n font-size: 20px;\\n font-weight: 700;\\n margin: 0;\\n padding-bottom: 3px;\\n}\\n\\n.walletconnect-modal__base__row__right {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.walletconnect-modal__base__row__right__app-icon {\\n border-radius: 8px;\\n height: 34px;\\n margin: 0 11px 2px 0;\\n width: 34px;\\n background-size: 100%;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-modal__base__row__right__caret {\\n height: 18px;\\n opacity: 0.3;\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n width: 8px;\\n will-change: opacity;\\n}\\n\\n.walletconnect-modal__base__row:hover .caret,\\n.walletconnect-modal__base__row:active .caret {\\n opacity: 0.6;\\n}\\n\\n.walletconnect-modal__mobile__toggle {\\n width: 80%;\\n display: flex;\\n margin: 0 auto;\\n position: relative;\\n overflow: hidden;\\n border-radius: 8px;\\n margin-bottom: 18px;\\n background: #d4d5d9;\\n}\\n\\n.walletconnect-modal__single_wallet {\\n display: flex;\\n justify-content: center;\\n margin-top: 7px;\\n margin-bottom: 18px;\\n}\\n\\n.walletconnect-modal__single_wallet a {\\n cursor: pointer;\\n color: rgb(64, 153, 255);\\n font-size: 21px;\\n font-weight: 800;\\n text-decoration: none !important;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-modal__mobile__toggle_selector {\\n width: calc(50% - 8px);\\n background: white;\\n position: absolute;\\n border-radius: 5px;\\n height: calc(100% - 8px);\\n top: 4px;\\n transition: all 0.2s ease-in-out;\\n transform: translate3d(4px, 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle.right__selected .walletconnect-modal__mobile__toggle_selector {\\n transform: translate3d(calc(100% + 12px), 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle a {\\n font-size: 12px;\\n width: 50%;\\n text-align: center;\\n padding: 8px;\\n margin: 0;\\n font-weight: 600;\\n z-index: 1;\\n}\\n\\n.walletconnect-modal__footer {\\n display: flex;\\n justify-content: center;\\n margin-top: 20px;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__footer {\\n margin-top: 5vw;\\n }\\n}\\n\\n.walletconnect-modal__footer a {\\n cursor: pointer;\\n color: #898d97;\\n font-size: 15px;\\n margin: 0 auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__footer a {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-connect__buttons__wrapper {\\n max-height: 44vh;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__android {\\n margin: 50% 0;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__wrap {\\n display: grid;\\n grid-template-columns: repeat(4, 1fr);\\n margin: 10px 0;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__buttons__wrapper__wrap {\\n margin-top: 40px;\\n }\\n}\\n\\n.walletconnect-connect__button {\\n background-color: rgb(64, 153, 255);\\n padding: 12px;\\n border-radius: 8px;\\n text-decoration: none;\\n color: rgb(255, 255, 255);\\n font-weight: 500;\\n}\\n\\n.walletconnect-connect__button__icon_anchor {\\n cursor: pointer;\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n margin: 8px;\\n width: 42px;\\n justify-self: center;\\n flex-direction: column;\\n text-decoration: none !important;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-connect__button__icon_anchor {\\n margin: 4px;\\n }\\n}\\n\\n.walletconnect-connect__button__icon {\\n border-radius: 10px;\\n height: 42px;\\n margin: 0;\\n width: 42px;\\n background-size: cover !important;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-connect__button__text {\\n color: #424952;\\n font-size: 2.7vw;\\n text-decoration: none !important;\\n padding: 0;\\n margin-top: 1.8vw;\\n font-weight: 600;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__button__text {\\n font-size: 16px;\\n margin-top: 12px;\\n }\\n}\\n\\n.walletconnect-search__input {\\n border: none;\\n background: #d4d5d9;\\n border-style: none;\\n padding: 8px 16px;\\n outline: none;\\n font-style: normal;\\n font-stretch: normal;\\n font-size: 16px;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: normal;\\n letter-spacing: normal;\\n text-align: left;\\n border-radius: 8px;\\n width: calc(100% - 16px);\\n margin: 0;\\n margin-bottom: 8px;\\n}\\n\";\n\n// A type of promise-like that resolves synchronously and supports only one observer\nvar _iteratorSymbol = /*#__PURE__*/typeof Symbol !== \"undefined\" ? Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\")) : \"@@iterator\"; // Asynchronously iterate through an object's values\nvar _asyncIteratorSymbol = /*#__PURE__*/typeof Symbol !== \"undefined\" ? Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\")) : \"@@asyncIterator\"; // Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\n\nfunction _catch(body, recover) {\n try {\n var result = body();\n } catch (e) {\n return recover(e);\n }\n\n if (result && result.then) {\n return result.then(void 0, recover);\n }\n\n return result;\n} // Asynchronously await a promise and pass the result to a finally continuation\n\nvar WALLETCONNECT_LOGO_SVG_URL = \"data:image/svg+xml,%3Csvg height='185' viewBox='0 0 300 185' width='300' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m61.4385429 36.2562612c48.9112241-47.8881663 128.2119871-47.8881663 177.1232091 0l5.886545 5.7634174c2.445561 2.3944081 2.445561 6.2765112 0 8.6709204l-20.136695 19.715503c-1.222781 1.1972051-3.2053 1.1972051-4.428081 0l-8.100584-7.9311479c-34.121692-33.4079817-89.443886-33.4079817-123.5655788 0l-8.6750562 8.4936051c-1.2227816 1.1972041-3.205301 1.1972041-4.4280806 0l-20.1366949-19.7155031c-2.4455612-2.3944092-2.4455612-6.2765122 0-8.6709204zm218.7677961 40.7737449 17.921697 17.546897c2.445549 2.3943969 2.445563 6.2764769.000031 8.6708899l-80.810171 79.121134c-2.445544 2.394426-6.410582 2.394453-8.85616.000062-.00001-.00001-.000022-.000022-.000032-.000032l-57.354143-56.154572c-.61139-.598602-1.60265-.598602-2.21404 0-.000004.000004-.000007.000008-.000011.000011l-57.3529212 56.154531c-2.4455368 2.394432-6.4105755 2.394472-8.8561612.000087-.0000143-.000014-.0000296-.000028-.0000449-.000044l-80.81241943-79.122185c-2.44556021-2.394408-2.44556021-6.2765115 0-8.6709197l17.92172963-17.5468673c2.4455602-2.3944082 6.4105989-2.3944082 8.8561602 0l57.3549775 56.155357c.6113908.598602 1.602649.598602 2.2140398 0 .0000092-.000009.0000174-.000017.0000265-.000024l57.3521031-56.155333c2.445505-2.3944633 6.410544-2.3945531 8.856161-.0002.000034.0000336.000068.0000673.000101.000101l57.354902 56.155432c.61139.598601 1.60265.598601 2.21404 0l57.353975-56.1543249c2.445561-2.3944092 6.410599-2.3944092 8.85616 0z' fill='%233b99fc'/%3E%3C/svg%3E\";\n\nvar WALLETCONNECT_HEADER_TEXT = \"WalletConnect\";\nvar ANIMATION_DURATION = 300;\nvar DEFAULT_BUTTON_COLOR = \"rgb(64, 153, 255)\";\nvar WALLETCONNECT_WRAPPER_ID = \"walletconnect-wrapper\";\nvar WALLETCONNECT_STYLE_ID = \"walletconnect-style-sheet\";\nvar WALLETCONNECT_MODAL_ID = \"walletconnect-qrcode-modal\";\nvar WALLETCONNECT_CLOSE_BUTTON_ID = \"walletconnect-qrcode-close\";\nvar WALLETCONNECT_CTA_TEXT_ID = \"walletconnect-qrcode-text\";\nvar WALLETCONNECT_CONNECT_BUTTON_ID = \"walletconnect-connect-button\";\n\nfunction Header(props) {\n return React.createElement(\"div\", {\n className: \"walletconnect-modal__header\"\n }, React.createElement(\"img\", {\n src: WALLETCONNECT_LOGO_SVG_URL,\n className: \"walletconnect-modal__headerLogo\"\n }), React.createElement(\"p\", null, WALLETCONNECT_HEADER_TEXT), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__wrapper\",\n onClick: props.onClose\n }, React.createElement(\"div\", {\n id: WALLETCONNECT_CLOSE_BUTTON_ID,\n className: \"walletconnect-modal__close__icon\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line1\"\n }), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line2\"\n }))));\n}\n\nfunction ConnectButton(props) {\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button\",\n href: props.href,\n id: (WALLETCONNECT_CONNECT_BUTTON_ID + \"-\" + (props.name)),\n onClick: props.onClick,\n rel: \"noopener noreferrer\",\n style: {\n backgroundColor: props.color\n },\n target: \"_blank\"\n }, props.name);\n}\n\nvar CARET_SVG_URL = \"data:image/svg+xml,%3Csvg fill='none' height='18' viewBox='0 0 8 18' width='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='m.586301.213898c-.435947.33907-.5144813.967342-.175411 1.403292l4.87831 6.27212c.28087.36111.28087.86677 0 1.22788l-4.878311 6.27211c-.33907.436-.260536 1.0642.175412 1.4033.435949.3391 1.064219.2605 1.403289-.1754l4.87832-6.2721c.84259-1.08336.84259-2.60034 0-3.68367l-4.87832-6.27212c-.33907-.4359474-.96734-.514482-1.403289-.175412z' fill='%233c4252' fill-rule='evenodd'/%3E%3C/svg%3E\";\n\nfunction WalletButton(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n return React.createElement(\"a\", {\n className: \"walletconnect-modal__base__row\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"h3\", {\n className: \"walletconnect-modal__base__row__h3\"\n }, name), React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right__app-icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"img\", {\n src: CARET_SVG_URL,\n className: \"walletconnect-modal__base__row__right__caret\"\n })));\n}\n\nfunction WalletIcon(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n var fontSize = window.innerWidth < 768 ? ((name.length > 8 ? 2.5 : 2.7) + \"vw\") : \"inherit\";\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button__icon_anchor\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-connect__button__icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"div\", {\n style: {\n fontSize: fontSize\n },\n className: \"walletconnect-connect__button__text\"\n }, name));\n}\n\nvar GRID_MIN_COUNT = 5;\nvar LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props) {\n var android = browserUtils.isAndroid();\n var ref = React.useState(\"\");\n var input = ref[0];\n var setInput = ref[1];\n var ref$1 = React.useState(\"\");\n var filter = ref$1[0];\n var setFilter = ref$1[1];\n var ref$2 = React.useState(1);\n var page = ref$2[0];\n var setPage = ref$2[1];\n var links = filter ? props.links.filter(function (link) { return link.name.toLowerCase().includes(filter.toLowerCase()); }) : props.links;\n var errorMessage = props.errorMessage;\n var grid = filter || links.length > GRID_MIN_COUNT;\n var pages = Math.ceil(links.length / LINKS_PER_PAGE);\n var range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n var pageLinks = links.length ? links.filter(function (_, index) { return index + 1 >= range[0] && index + 1 <= range[1]; }) : [];\n var hasPaging = !!(!android && pages > 1);\n var filterTimeout = undefined;\n\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n\n if (e.target.value) {\n filterTimeout = setTimeout(function () {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet), !android && React.createElement(\"input\", {\n className: \"walletconnect-search__input\",\n placeholder: \"Search\",\n value: input,\n onChange: handleInput\n }), React.createElement(\"div\", {\n className: (\"walletconnect-connect__buttons__wrapper\" + (android ? \"__android\" : grid && links.length ? \"__wrap\" : \"\"))\n }, !android ? pageLinks.length ? pageLinks.map(function (entry) {\n var color = entry.color;\n var name = entry.name;\n var shortName = entry.shortName;\n var logo = entry.logo;\n var href = browserUtils.formatIOSMobile(props.uri, entry);\n var handleClickIOS = React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: name,\n href: href\n });\n }, [pageLinks]);\n return !grid ? React.createElement(WalletButton, {\n color: color,\n href: href,\n name: name,\n logo: logo,\n onClick: handleClickIOS\n }) : React.createElement(WalletIcon, {\n color: color,\n href: href,\n name: shortName || name,\n logo: logo,\n onClick: handleClickIOS\n });\n }) : React.createElement(React.Fragment, null, React.createElement(\"p\", null, errorMessage.length ? props.errorMessage : !!props.links.length && !links.length ? props.text.no_wallets_found : props.text.loading)) : React.createElement(ConnectButton, {\n name: props.text.connect,\n color: DEFAULT_BUTTON_COLOR,\n href: props.uri,\n onClick: React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri\n });\n }, [])\n })), hasPaging && React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, Array(pages).fill(0).map(function (_, index) {\n var pageNumber = index + 1;\n var selected = page === pageNumber;\n return React.createElement(\"a\", {\n style: {\n margin: \"auto 10px\",\n fontWeight: selected ? \"bold\" : \"normal\"\n },\n onClick: function () { return setPage(pageNumber); }\n }, pageNumber);\n })));\n}\n\nfunction Notification(props) {\n var show = !!props.message.trim();\n return React.createElement(\"div\", {\n className: (\"walletconnect-qrcode__notification\" + (show ? \" notification__show\" : \"\"))\n }, props.message);\n}\n\nvar formatQRCodeImage = function (data) {\n try {\n var result = \"\";\n return Promise.resolve(QRCode.toString(data, {\n margin: 0,\n type: \"svg\"\n })).then(function (dataString) {\n if (typeof dataString === \"string\") {\n result = dataString.replace(\" 0) {\n return;\n }\n\n React.useEffect(function () {\n var initLinks = function () {\n try {\n if (android) { return Promise.resolve(); }\n setLoading(true);\n\n var _temp = _catch(function () {\n var url = props.qrcodeModalOptions && props.qrcodeModalOptions.registryUrl ? props.qrcodeModalOptions.registryUrl : browserUtils.getWalletRegistryUrl();\n return Promise.resolve(fetch(url)).then(function (registryResponse) {\n return Promise.resolve(registryResponse.json()).then(function (_registryResponse$jso) {\n var registry = _registryResponse$jso.listings;\n var platform = mobile ? \"mobile\" : \"desktop\";\n\n var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist);\n\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n var hasSingleLink = _links.length === 1;\n\n if (hasSingleLink) {\n setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n\n setHasSingleLink(hasSingleLink);\n });\n });\n }, function (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e);\n });\n\n return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n var rightSelected = mobile ? displayQRCode : !displayQRCode;\n return React.createElement(\"div\", {\n id: WALLETCONNECT_MODAL_ID,\n className: \"walletconnect-qrcode__base animated fadeIn\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base\"\n }, React.createElement(Header, {\n onClose: props.onClose\n }), hasSingleLink && displayQRCode ? React.createElement(\"div\", {\n className: \"walletconnect-modal__single_wallet\"\n }, React.createElement(\"a\", {\n onClick: function () { return browserUtils.saveMobileLinkInfo({\n name: links[0].name,\n href: singleLinkHref\n }); },\n href: singleLinkHref,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\")) : android || loading || !loading && links.length ? React.createElement(\"div\", {\n className: (\"walletconnect-modal__mobile__toggle\" + (rightSelected ? \" right__selected\" : \"\"))\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__mobile__toggle_selector\"\n }), mobile ? React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.mobile), React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode)) : React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode), React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.desktop))) : null, React.createElement(\"div\", null, displayQRCode || !android && !loading && !links.length ? React.createElement(QRCodeDisplay, Object.assign({}, displayProps)) : React.createElement(LinkDisplay, Object.assign({}, displayProps,\n {links: links,\n errorMessage: errorMessage})))));\n}\n\nvar de = {\n choose_preferred_wallet: \"Wähle bevorzugte Wallet\",\n connect_mobile_wallet: \"Verbinde mit Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet\",\n connect: \"Verbinden\",\n qrcode: \"QR-Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"In die Zwischenablage kopieren\",\n copied_to_clipboard: \"In die Zwischenablage kopiert!\",\n connect_with: \"Verbinden mit Hilfe von\",\n loading: \"Laden...\",\n something_went_wrong: \"Etwas ist schief gelaufen\",\n no_supported_wallets: \"Es gibt noch keine unterstützten Wallet\",\n no_wallets_found: \"keine Wallet gefunden\"\n};\n\nvar en = {\n choose_preferred_wallet: \"Choose your preferred wallet\",\n connect_mobile_wallet: \"Connect to Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scan QR code with a WalletConnect-compatible wallet\",\n connect: \"Connect\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copy to clipboard\",\n copied_to_clipboard: \"Copied to clipboard!\",\n connect_with: \"Connect with\",\n loading: \"Loading...\",\n something_went_wrong: \"Something went wrong\",\n no_supported_wallets: \"There are no supported wallets yet\",\n no_wallets_found: \"No wallets found\"\n};\n\nvar es = {\n choose_preferred_wallet: \"Elige tu billetera preferida\",\n connect_mobile_wallet: \"Conectar a billetera móvil\",\n scan_qrcode_with_wallet: \"Escanea el código QR con una billetera compatible con WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvil\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Conectar mediante\",\n loading: \"Cargando...\",\n something_went_wrong: \"Algo salió mal\",\n no_supported_wallets: \"Todavía no hay billeteras compatibles\",\n no_wallets_found: \"No se encontraron billeteras\"\n};\n\nvar fr = {\n choose_preferred_wallet: \"Choisissez votre portefeuille préféré\",\n connect_mobile_wallet: \"Se connecter au portefeuille mobile\",\n scan_qrcode_with_wallet: \"Scannez le QR code avec un portefeuille compatible WalletConnect\",\n connect: \"Se connecter\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copier\",\n copied_to_clipboard: \"Copié!\",\n connect_with: \"Connectez-vous à l'aide de\",\n loading: \"Chargement...\",\n something_went_wrong: \"Quelque chose a mal tourné\",\n no_supported_wallets: \"Il n'y a pas encore de portefeuilles pris en charge\",\n no_wallets_found: \"Aucun portefeuille trouvé\"\n};\n\nvar ko = {\n choose_preferred_wallet: \"원하는 지갑을 선택하세요\",\n connect_mobile_wallet: \"모바일 지갑과 연결\",\n scan_qrcode_with_wallet: \"WalletConnect 지원 지갑에서 QR코드를 스캔하세요\",\n connect: \"연결\",\n qrcode: \"QR 코드\",\n mobile: \"모바일\",\n desktop: \"데스크탑\",\n copy_to_clipboard: \"클립보드에 복사\",\n copied_to_clipboard: \"클립보드에 복사되었습니다!\",\n connect_with: \"와 연결하다\",\n loading: \"로드 중...\",\n something_went_wrong: \"문제가 발생했습니다.\",\n no_supported_wallets: \"아직 지원되는 지갑이 없습니다\",\n no_wallets_found: \"지갑을 찾을 수 없습니다\"\n};\n\nvar pt = {\n choose_preferred_wallet: \"Escolha sua carteira preferida\",\n connect_mobile_wallet: \"Conectar-se à carteira móvel\",\n scan_qrcode_with_wallet: \"Ler o código QR com uma carteira compatível com WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvel\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Ligar por meio de\",\n loading: \"Carregamento...\",\n something_went_wrong: \"Algo correu mal\",\n no_supported_wallets: \"Ainda não há carteiras suportadas\",\n no_wallets_found: \"Nenhuma carteira encontrada\"\n};\n\nvar zh = {\n choose_preferred_wallet: \"选择你的钱包\",\n connect_mobile_wallet: \"连接至移动端钱包\",\n scan_qrcode_with_wallet: \"使用兼容 WalletConnect 的钱包扫描二维码\",\n connect: \"连接\",\n qrcode: \"二维码\",\n mobile: \"移动\",\n desktop: \"桌面\",\n copy_to_clipboard: \"复制到剪贴板\",\n copied_to_clipboard: \"复制到剪贴板成功!\",\n connect_with: \"通过以下方式连接\",\n loading: \"正在加载...\",\n something_went_wrong: \"出了问题\",\n no_supported_wallets: \"目前还没有支持的钱包\",\n no_wallets_found: \"没有找到钱包\"\n};\n\nvar fa = {\n choose_preferred_wallet: \"کیف پول مورد نظر خود را انتخاب کنید\",\n connect_mobile_wallet: \"به کیف پول موبایل وصل شوید\",\n scan_qrcode_with_wallet: \"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید\",\n connect: \"اتصال\",\n qrcode: \"کد QR\",\n mobile: \"سیار\",\n desktop: \"دسکتاپ\",\n copy_to_clipboard: \"کپی به کلیپ بورد\",\n copied_to_clipboard: \"در کلیپ بورد کپی شد!\",\n connect_with: \"ارتباط با\",\n loading: \"...بارگذاری\",\n something_went_wrong: \"مشکلی پیش آمد\",\n no_supported_wallets: \"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد\",\n no_wallets_found: \"هیچ کیف پولی پیدا نشد\"\n};\n\nvar languages = {\n de: de,\n en: en,\n es: es,\n fr: fr,\n ko: ko,\n pt: pt,\n zh: zh,\n fa: fa\n};\n\nfunction injectStyleSheet() {\n var doc = browserUtils.getDocumentOrThrow();\n var prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n\n if (prev) {\n doc.head.removeChild(prev);\n }\n\n var style = doc.createElement(\"style\");\n style.setAttribute(\"id\", WALLETCONNECT_STYLE_ID);\n style.innerText = WALLETCONNECT_STYLE_SHEET;\n doc.head.appendChild(style);\n}\n\nfunction renderWrapper() {\n var doc = browserUtils.getDocumentOrThrow();\n var wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation() {\n var doc = browserUtils.getDocumentOrThrow();\n var modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(function () {\n var wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb) {\n return function () {\n triggerCloseAnimation();\n\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText() {\n var lang = browserUtils.getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return languages[lang] || languages[\"en\"];\n}\n\nfunction open$1(uri, cb, qrcodeModalOptions) {\n injectStyleSheet();\n var wrapper = renderWrapper();\n React.render(React.createElement(Modal, {\n text: getText(),\n uri: uri,\n onClose: getWrappedCallback(cb),\n qrcodeModalOptions: qrcodeModalOptions\n }), wrapper);\n}\nfunction close$1() {\n triggerCloseAnimation();\n}\n\nvar isNode = function () { return typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\"; };\n\nfunction open$2(uri, cb, qrcodeModalOptions) {\n console.log(uri);\n\n if (isNode()) {\n open(uri);\n } else {\n open$1(uri, cb, qrcodeModalOptions);\n }\n}\n\nfunction close$2() {\n if (isNode()) ; else {\n close$1();\n }\n}\n\nvar index = {\n open: open$2,\n close: close$2\n};\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n\n\n/***/ }),\n\n/***/ 89714:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Children\": function() { return /* binding */ R; },\n \"Component\": function() { return /* reexport */ m; },\n \"Fragment\": function() { return /* reexport */ d; },\n \"PureComponent\": function() { return /* binding */ compat_module_C; },\n \"Suspense\": function() { return /* binding */ U; },\n \"SuspenseList\": function() { return /* binding */ O; },\n \"cloneElement\": function() { return /* binding */ K; },\n \"createContext\": function() { return /* reexport */ M; },\n \"createElement\": function() { return /* reexport */ h; },\n \"createFactory\": function() { return /* binding */ G; },\n \"createPortal\": function() { return /* binding */ compat_module_z; },\n \"createRef\": function() { return /* reexport */ y; },\n \"default\": function() { return /* binding */ compat_module; },\n \"findDOMNode\": function() { return /* binding */ X; },\n \"forwardRef\": function() { return /* binding */ S; },\n \"hydrate\": function() { return /* binding */ V; },\n \"isValidElement\": function() { return /* binding */ J; },\n \"lazy\": function() { return /* binding */ compat_module_L; },\n \"memo\": function() { return /* binding */ compat_module_; },\n \"render\": function() { return /* binding */ compat_module_T; },\n \"unmountComponentAtNode\": function() { return /* binding */ Q; },\n \"unstable_batchedUpdates\": function() { return /* binding */ Y; },\n \"useCallback\": function() { return /* reexport */ hooks_module_T; },\n \"useContext\": function() { return /* reexport */ hooks_module_w; },\n \"useDebugValue\": function() { return /* reexport */ hooks_module_A; },\n \"useEffect\": function() { return /* reexport */ hooks_module_l; },\n \"useErrorBoundary\": function() { return /* reexport */ F; },\n \"useImperativeHandle\": function() { return /* reexport */ hooks_module_s; },\n \"useLayoutEffect\": function() { return /* reexport */ hooks_module_y; },\n \"useMemo\": function() { return /* reexport */ hooks_module_h; },\n \"useReducer\": function() { return /* reexport */ hooks_module_p; },\n \"useRef\": function() { return /* reexport */ hooks_module_d; },\n \"useState\": function() { return /* reexport */ hooks_module_m; },\n \"version\": function() { return /* binding */ B; }\n});\n\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/qrcode-modal/node_modules/preact/dist/preact.module.js\nvar n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var i,t=arguments,r={};for(i in l)\"key\"!==i&&\"ref\"!==i&&(r[i]=l[i]);if(arguments.length>3)for(u=[u],i=3;i2&&(l.children=c.slice.call(arguments,2)),u={},l)\"key\"!==i&&\"ref\"!==i&&(u[i]=l[i]);return p(n.type,u,l.key||n.key,l.ref||n.ref,null)}function M(n){var l={},u={__c:\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var i,t=this;return this.getChildContext||(i=[],this.getChildContext=function(){return l[u.__c]=t,l},this.shouldComponentUpdate=function(n){t.props.value!==n.value&&i.some(function(l){l.context=n.value,g(l)})},this.sub=function(n){i.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){i.splice(i.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u.Provider.__=u,u}n={__e:function(n,l){for(var u,i;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(i=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(i=!0,u.componentDidCatch(n)),i)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},m.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),g(this))},m.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},m.prototype.render=d,u=[],i=0,t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=e,f=0;\n//# sourceMappingURL=preact.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/qrcode-modal/node_modules/preact/hooks/dist/hooks.module.js\nvar hooks_module_t,hooks_module_u,hooks_module_r,hooks_module_i=0,hooks_module_o=[],hooks_module_c=n.__r,hooks_module_f=n.diffed,hooks_module_e=n.__c,hooks_module_a=n.unmount;function hooks_module_v(t,r){n.__h&&n.__h(hooks_module_u,t,hooks_module_i||r),hooks_module_i=0;var o=hooks_module_u.__H||(hooks_module_u.__H={__:[],__h:[]});return t>=o.__.length&&o.__.push({}),o.__[t]}function hooks_module_m(n){return hooks_module_i=1,hooks_module_p(hooks_module_E,n)}function hooks_module_p(n,r,i){var o=hooks_module_v(hooks_module_t++,2);return o.__c||(o.__c=hooks_module_u,o.__=[i?i(r):hooks_module_E(void 0,r),function(t){var u=n(o.__[0],t);o.__[0]!==u&&(o.__[0]=u,o.__c.setState({}))}]),o.__}function hooks_module_l(r,i){var o=hooks_module_v(hooks_module_t++,3);!n.__s&&hooks_module_x(o.__H,i)&&(o.__=r,o.__H=i,hooks_module_u.__H.__h.push(o))}function hooks_module_y(r,i){var o=hooks_module_v(hooks_module_t++,4);!n.__s&&hooks_module_x(o.__H,i)&&(o.__=r,o.__H=i,hooks_module_u.__h.push(o))}function hooks_module_d(n){return hooks_module_i=5,hooks_module_h(function(){return{current:n}},[])}function hooks_module_s(n,t,u){hooks_module_i=6,hooks_module_y(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function hooks_module_h(n,u){var r=hooks_module_v(hooks_module_t++,7);return hooks_module_x(r.__H,u)?(r.__H=u,r.__h=n,r.__=n()):r.__}function hooks_module_T(n,t){return hooks_module_i=8,hooks_module_h(function(){return n},t)}function hooks_module_w(n){var r=hooks_module_u.context[n.__c],i=hooks_module_v(hooks_module_t++,9);return i.__c=n,r?(null==i.__&&(i.__=!0,r.sub(hooks_module_u)),r.props.value):n.__}function hooks_module_A(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function F(n){var r=hooks_module_v(hooks_module_t++,10),i=hooks_module_m();return r.__=n,hooks_module_u.componentDidCatch||(hooks_module_u.componentDidCatch=function(n){r.__&&r.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function hooks_module_(){hooks_module_o.some(function(t){if(t.__P)try{t.__H.__h.forEach(hooks_module_g),t.__H.__h.forEach(q),t.__H.__h=[]}catch(u){return t.__H.__h=[],n.__e(u,t.__v),!0}}),hooks_module_o=[]}function hooks_module_g(n){n.t&&n.t()}function q(n){var t=n.__();\"function\"==typeof t&&(n.t=t)}function hooks_module_x(n,t){return!n||t.some(function(t,u){return t!==n[u]})}function hooks_module_E(n,t){return\"function\"==typeof t?t(n):t}n.__r=function(n){hooks_module_c&&hooks_module_c(n),hooks_module_t=0,(hooks_module_u=n.__c).__H&&(hooks_module_u.__H.__h.forEach(hooks_module_g),hooks_module_u.__H.__h.forEach(q),hooks_module_u.__H.__h=[])},n.diffed=function(t){hooks_module_f&&hooks_module_f(t);var u=t.__c;if(u){var i=u.__H;i&&i.__h.length&&(1!==hooks_module_o.push(u)&&hooks_module_r===n.requestAnimationFrame||((hooks_module_r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(u))})(hooks_module_))}},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(hooks_module_g),t.__h=t.__h.filter(function(n){return!n.__||q(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),hooks_module_e&&hooks_module_e(t,u)},n.unmount=function(t){hooks_module_a&&hooks_module_a(t);var u=t.__c;if(u){var r=u.__H;if(r)try{r.__.forEach(function(n){return n.t&&n.t()})}catch(t){n.__e(t,u.__v)}}};\n//# sourceMappingURL=hooks.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/@walletconnect/qrcode-modal/node_modules/preact/compat/dist/compat.module.js\nfunction compat_module_E(n,t){for(var e in t)n[e]=t[e];return n}function compat_module_w(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}var compat_module_C=function(n){var t,e;function r(t){var e;return(e=n.call(this,t)||this).isPureReactComponent=!0,e}return e=n,(t=r).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,r.prototype.shouldComponentUpdate=function(n,t){return compat_module_w(this.props,n)||compat_module_w(this.state,t)},r}(m);function compat_module_(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:compat_module_w(this.props,n)}function r(t){return this.shouldComponentUpdate=e,h(n,compat_module_E({},t))}return r.prototype.isReactComponent=!0,r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.t=!0,r}var compat_module_A=n.__b;function S(n){function t(t){var e=compat_module_E({},t);return delete e.ref,n(e,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}n.__b=function(n){n.type&&n.type.t&&n.ref&&(n.props.ref=n.ref,n.ref=null),compat_module_A&&compat_module_A(n)};var compat_module_k=function(n,t){return n?x(n).reduce(function(n,e,r){return n.concat(t(e,r))},[]):null},R={map:compat_module_k,forEach:compat_module_k,count:function(n){return n?x(n).length:0},only:function(n){if(1!==(n=x(n)).length)throw new Error(\"Children.only() expects only one child.\");return n[0]},toArray:x},compat_module_F=n.__e;function compat_module_N(n){return n&&((n=compat_module_E({},n)).__c=null,n.__k=n.__k&&n.__k.map(compat_module_N)),n}function U(){this.__u=0,this.o=null,this.__b=null}function compat_module_M(n){var t=n.__.__c;return t&&t.u&&t.u(n)}function compat_module_L(n){var t,e,r;function o(o){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return h(e,o)}return o.displayName=\"Lazy\",o.t=!0,o}function O(){this.i=null,this.l=null}n.__e=function(n,t,e){if(n.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return r.__c(n,t.__c);compat_module_F(n,t,e)},(U.prototype=new m).__c=function(n,t){var e=this;null==e.o&&(e.o=[]),e.o.push(t);var r=compat_module_M(e.__v),o=!1,u=function(){o||(o=!0,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){var n;if(!--e.__u)for(e.__v.__k[0]=e.state.u,e.setState({u:e.__b=null});n=e.o.pop();)n.forceUpdate()};e.__u++||e.setState({u:e.__b=e.__v.__k[0]}),n.then(u,u)},U.prototype.render=function(n,t){return this.__b&&(this.__v.__k[0]=compat_module_N(this.__b),this.__b=null),[h(m,null,t.u?null:n.children),t.u&&n.fallback]};var compat_module_P=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1] 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n\n\n/***/ }),\n\n/***/ 62873:\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ 65755:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __webpack_unused_export__;\n\n__webpack_unused_export__ = ({ value: true });\nexports.D = void 0;\nconst window_getters_1 = __webpack_require__(62873);\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.D = getWindowMetadata;\n//# sourceMappingURL=index.js.map\n\n/***/ }),\n\n/***/ 20640:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar deselectCurrent = __webpack_require__(11742);\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n\n\n/***/ }),\n\n/***/ 44020:\n/***/ (function(module) {\n\n\"use strict\";\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n\n\n/***/ }),\n\n/***/ 65987:\n/***/ (function(module) {\n\n\"use strict\";\n\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (true) {\n module.exports = dijkstra;\n}\n\n\n/***/ }),\n\n/***/ 4501:\n/***/ (function(module) {\n\nmodule.exports = isTypedArray\nisTypedArray.strict = isStrictTypedArray\nisTypedArray.loose = isLooseTypedArray\n\nvar toString = Object.prototype.toString\nvar names = {\n '[object Int8Array]': true\n , '[object Int16Array]': true\n , '[object Int32Array]': true\n , '[object Uint8Array]': true\n , '[object Uint8ClampedArray]': true\n , '[object Uint16Array]': true\n , '[object Uint32Array]': true\n , '[object Float32Array]': true\n , '[object Float64Array]': true\n}\n\nfunction isTypedArray(arr) {\n return (\n isStrictTypedArray(arr)\n || isLooseTypedArray(arr)\n )\n}\n\nfunction isStrictTypedArray(arr) {\n return (\n arr instanceof Int8Array\n || arr instanceof Int16Array\n || arr instanceof Int32Array\n || arr instanceof Uint8Array\n || arr instanceof Uint8ClampedArray\n || arr instanceof Uint16Array\n || arr instanceof Uint32Array\n || arr instanceof Float32Array\n || arr instanceof Float64Array\n )\n}\n\nfunction isLooseTypedArray(arr) {\n return names[toString.call(arr)]\n}\n\n\n/***/ }),\n\n/***/ 92592:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar canPromise = __webpack_require__(47138)\n\nvar QRCode = __webpack_require__(95115)\nvar CanvasRenderer = __webpack_require__(6907)\nvar SvgRenderer = __webpack_require__(93776)\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n var args = [].slice.call(arguments, 1)\n var argsNum = args.length\n var isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n var data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n\n\n/***/ }),\n\n/***/ 47138:\n/***/ (function(module) {\n\n// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n\n\n/***/ }),\n\n/***/ 21845:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nvar getSymbolSize = (__webpack_require__(10242).getSymbolSize)\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n var posCount = Math.floor(version / 7) + 2\n var size = getSymbolSize(version)\n var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n var positions = [size - 7] // Last coord is always (size - 7)\n\n for (var i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * var pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var coords = []\n var pos = exports.getRowColCoords(version)\n var posLength = pos.length\n\n for (var i = 0; i < posLength; i++) {\n for (var j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n\n\n/***/ }),\n\n/***/ 8260:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar Mode = __webpack_require__(76910)\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nvar ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n var i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n\n\n/***/ }),\n\n/***/ 97245:\n/***/ (function(module) {\n\nfunction BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n\n\n/***/ }),\n\n/***/ 73280:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar BufferUtil = __webpack_require__(99131)\n\n/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n\n\n/***/ }),\n\n/***/ 43424:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar BufferUtil = __webpack_require__(99131)\nvar Mode = __webpack_require__(76910)\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n\n\n/***/ }),\n\n/***/ 26245:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar ECLevel = __webpack_require__(64908)\r\n\r\nvar EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nvar EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ 64908:\n/***/ (function(__unused_webpack_module, exports) {\n\nexports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n\n\n/***/ }),\n\n/***/ 76526:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar getSymbolSize = (__webpack_require__(10242).getSymbolSize)\nvar FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n\n\n/***/ }),\n\n/***/ 61642:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar Utils = __webpack_require__(10242)\n\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nvar G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n var data = ((errorCorrectionLevel.bit << 3) | mask)\n var d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n\n\n/***/ }),\n\n/***/ 69729:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar BufferUtil = __webpack_require__(99131)\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n\n\n/***/ }),\n\n/***/ 35442:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar Mode = __webpack_require__(76910)\nvar Utils = __webpack_require__(10242)\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n\n\n/***/ }),\n\n/***/ 27126:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n var size = data.size\n var points = 0\n var sameCountCol = 0\n var sameCountRow = 0\n var lastCol = null\n var lastRow = null\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n var size = data.size\n var points = 0\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n var size = data.size\n var points = 0\n var bitsCol = 0\n var bitsRow = 0\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (var col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n var size = data.size\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length\n var bestPattern = 0\n var lowerPenalty = Infinity\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n\n\n/***/ }),\n\n/***/ 76910:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar VersionCheck = __webpack_require__(43114)\nvar Regex = __webpack_require__(7007)\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n\n\n/***/ }),\n\n/***/ 41085:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar Mode = __webpack_require__(76910)\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n var i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n var remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n\n\n/***/ }),\n\n/***/ 26143:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar BufferUtil = __webpack_require__(99131)\nvar GF = __webpack_require__(69729)\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(p1.length + p2.length - 1)\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(divident)\n\n while ((result.length - divisor.length) >= 0) {\n var coeff = result[0]\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n\n\n/***/ }),\n\n/***/ 95115:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar BufferUtil = __webpack_require__(99131)\nvar Utils = __webpack_require__(10242)\nvar ECLevel = __webpack_require__(64908)\nvar BitBuffer = __webpack_require__(97245)\nvar BitMatrix = __webpack_require__(73280)\nvar AlignmentPattern = __webpack_require__(21845)\nvar FinderPattern = __webpack_require__(76526)\nvar MaskPattern = __webpack_require__(27126)\nvar ECCode = __webpack_require__(26245)\nvar ReedSolomonEncoder = __webpack_require__(52882)\nvar Version = __webpack_require__(23103)\nvar FormatInfo = __webpack_require__(61642)\nvar Mode = __webpack_require__(76910)\nvar Segments = __webpack_require__(16130)\nvar isArray = __webpack_require__(55147)\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n var size = matrix.size\n var pos = FinderPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n var size = matrix.size\n\n for (var r = 8; r < size - 8; r++) {\n var value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n var pos = AlignmentPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n var size = matrix.size\n var bits = Version.getEncodedBits(version)\n var row, col, mod\n\n for (var i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n var size = matrix.size\n var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n var i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Buffer} data Data codewords\n */\nfunction setupData (matrix, data) {\n var size = matrix.size\n var inc = -1\n var row = size - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (var i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n var blocksInGroup2 = totalCodewords % ecTotalBlocks\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n var rs = new ReedSolomonEncoder(ecCount)\n\n var offset = 0\n var dcData = new Array(ecTotalBlocks)\n var ecData = new Array(ecTotalBlocks)\n var maxDataSize = 0\n var buffer = BufferUtil.from(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n var data = BufferUtil.alloc(totalCodewords)\n var index = 0\n var i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n var segments\n\n if (isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n var estimatedVersion = version\n\n if (!estimatedVersion) {\n var rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments,\n errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n var bestVersion = Version.getBestVersionForData(segments,\n errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n var moduleCount = Utils.getSymbolSize(version)\n var modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n var errorCorrectionLevel = ECLevel.M\n var version\n var mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n\n\n/***/ }),\n\n/***/ 52882:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar BufferUtil = __webpack_require__(99131)\nvar Polynomial = __webpack_require__(26143)\nvar Buffer = (__webpack_require__(6772)/* .Buffer */ .lW)\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Buffer} data Buffer containing input data\n * @return {Buffer} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n var pad = BufferUtil.alloc(this.degree)\n var paddedData = Buffer.concat([data, pad], data.length + this.degree)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n var remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n var start = this.degree - remainder.length\n if (start > 0) {\n var buff = BufferUtil.alloc(this.degree)\n remainder.copy(buff, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n\n\n/***/ }),\n\n/***/ 7007:\n/***/ (function(__unused_webpack_module, exports) {\n\nvar numeric = '[0-9]+'\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+'\nvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nvar TEST_KANJI = new RegExp('^' + kanji + '$')\nvar TEST_NUMERIC = new RegExp('^' + numeric + '$')\nvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n\n\n/***/ }),\n\n/***/ 16130:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar Mode = __webpack_require__(76910)\nvar NumericData = __webpack_require__(41085)\nvar AlphanumericData = __webpack_require__(8260)\nvar ByteData = __webpack_require__(43424)\nvar KanjiData = __webpack_require__(35442)\nvar Regex = __webpack_require__(7007)\nvar Utils = __webpack_require__(10242)\nvar dijkstra = __webpack_require__(65987)\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n var segments = []\n var result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n var byteSegs\n var kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n var nodes = []\n for (var i = 0; i < segs.length; i++) {\n var seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n var table = {}\n var graph = {'start': {}}\n var prevNodeIds = ['start']\n\n for (var i = 0; i < nodes.length; i++) {\n var nodeGroup = nodes[i]\n var currentNodeIds = []\n\n for (var j = 0; j < nodeGroup.length; j++) {\n var node = nodeGroup[j]\n var key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (var n = 0; n < prevNodeIds.length; n++) {\n var prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]]['end'] = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n var mode\n var bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n var nodes = buildNodes(segs)\n var graph = buildGraph(nodes, version)\n var path = dijkstra.find_path(graph.map, 'start', 'end')\n\n var optimizedSegs = []\n for (var i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n\n\n/***/ }),\n\n/***/ 10242:\n/***/ (function(__unused_webpack_module, exports) {\n\nvar toSJISFunction\nvar CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n var digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n\n\n/***/ }),\n\n/***/ 43114:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n\n\n/***/ }),\n\n/***/ 23103:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar Utils = __webpack_require__(10242)\nvar ECCode = __webpack_require__(26245)\nvar ECLevel = __webpack_require__(64908)\nvar Mode = __webpack_require__(76910)\nvar VersionCheck = __webpack_require__(43114)\nvar isArray = __webpack_require__(55147)\n\n// Generator polynomial used to encode version information\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nvar G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n var totalBits = 0\n\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n var length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n var seg\n\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n var d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n\n\n/***/ }),\n\n/***/ 6907:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar Utils = __webpack_require__(89653)\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n var opts = options\n var canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n var opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n\n\n/***/ }),\n\n/***/ 93776:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar Utils = __webpack_require__(89653)\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n var path = ''\n var moveBy = 0\n var newRow = false\n var lineLength = 0\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size)\n var row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var size = qrData.modules.size\n var data = qrData.modules.data\n var qrcodesize = size + opts.margin * 2\n\n var bg = !opts.color.light.a\n ? ''\n : ''\n\n var path =\n ''\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n\n\n/***/ }),\n\n/***/ 89653:\n/***/ (function(__unused_webpack_module, exports) {\n\nfunction hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n var hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n var hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n var margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0 ? 4 : options.margin\n\n var width = options.width && options.width >= 21 ? options.width : undefined\n var scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n var scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n var size = qr.modules.size\n var data = qr.modules.data\n var scale = exports.getScale(size, opts)\n var symbolSize = Math.floor((size + opts.margin * 2) * scale)\n var scaledMargin = opts.margin * scale\n var palette = [opts.color.light, opts.color.dark]\n\n for (var i = 0; i < symbolSize; i++) {\n for (var j = 0; j < symbolSize; j++) {\n var posDst = (i * symbolSize + j) * 4\n var pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n var iSrc = Math.floor((i - scaledMargin) / scale)\n var jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n\n\n/***/ }),\n\n/***/ 99131:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Implementation of a subset of node.js Buffer methods for the browser.\n * Based on https://github.com/feross/buffer\n */\n\n/* eslint-disable no-proto */\n\n\n\nvar isArray = __webpack_require__(55147)\n\nfunction typedArraySupport () {\n // Can typed array instances be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n\nfunction Buffer (arg, offset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, offset, length)\n }\n\n if (typeof arg === 'number') {\n return allocUnsafe(this, arg)\n }\n\n return from(this, arg, offset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\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 isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\nfunction createBuffer (that, length) {\n var buf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = that\n if (buf === null) {\n buf = new Buffer(length)\n }\n buf.length = length\n }\n\n return buf\n}\n\nfunction allocUnsafe (that, size) {\n var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n buf[i] = 0\n }\n }\n\n return buf\n}\n\nfunction fromString (that, string) {\n var length = byteLength(string) | 0\n var buf = createBuffer(that, length)\n\n var actual = buf.write(string)\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 (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of 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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = fromArrayLike(that, buf)\n }\n\n return buf\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(that, 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) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\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 byteLength (string) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n return utf8ToBytes(string).length\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\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction from (that, value, offset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, offset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, offset)\n }\n\n return fromObject(that, value)\n}\n\nBuffer.prototype.write = function write (string, offset, length) {\n // Buffer#write(string)\n if (offset === undefined) {\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n } else {\n length = undefined\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 return utf8Write(this, string, offset, length)\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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\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('sourceStart out of bounds')\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 var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\nBuffer.prototype.fill = function fill (val, start, end) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\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 : new Buffer(val)\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return createBuffer(null, 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 = allocUnsafe(null, length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nBuffer.byteLength = byteLength\n\nBuffer.prototype._isBuffer = true\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nmodule.exports.alloc = function (size) {\n var buffer = new Buffer(size)\n buffer.fill(0)\n return buffer\n}\n\nmodule.exports.from = function (data) {\n return new Buffer(data)\n}\n\n\n/***/ }),\n\n/***/ 6772:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __webpack_unused_export__;\n/*!\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\n\nvar base64 = __webpack_require__(79742)\nvar ieee754 = __webpack_require__(80645)\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.lW = Buffer\n__webpack_unused_export__ = SlowBuffer\nexports.h2 = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\n__webpack_unused_export__ = 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.h2\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\n\n/***/ }),\n\n/***/ 55147:\n/***/ (function(module) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n\n/***/ 17563:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nconst strictUriEncode = __webpack_require__(70610);\nconst decodeComponent = __webpack_require__(44020);\nconst splitOnFirst = __webpack_require__(80500);\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.split('').indexOf(options.arrayFormatSeparator) > -1;\n\t\t\t\tconst newValue = isArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(input, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url, hash] = splitOnFirst(input, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url.split('?')[0] || '',\n\t\t\tquery: parse(extract(input), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(input.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(input.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, input.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(input.url);\n\tif (input.fragmentIdentifier) {\n\t\thash = `#${encode(input.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\n\n/***/ }),\n\n/***/ 80500:\n/***/ (function(module) {\n\n\"use strict\";\n\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n\n\n/***/ }),\n\n/***/ 70610:\n/***/ (function(module) {\n\n\"use strict\";\n\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\n\n/***/ }),\n\n/***/ 11742:\n/***/ (function(module) {\n\n\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n\n\n/***/ }),\n\n/***/ 65054:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* provided dependency */ var Buffer = __webpack_require__(48764)[\"Buffer\"];\n/**\n * Convert a typed array to a Buffer without a copy\n *\n * Author: Feross Aboukhadijeh \n * License: MIT\n *\n * `npm install typedarray-to-buffer`\n */\n\nvar isTypedArray = (__webpack_require__(4501).strict)\n\nmodule.exports = function typedarrayToBuffer (arr) {\n if (isTypedArray(arr)) {\n // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer\n var buf = Buffer.from(arr.buffer)\n if (arr.byteLength !== arr.buffer.byteLength) {\n // Respect the \"view\", i.e. byteOffset and byteLength, without doing a copy\n buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength)\n }\n return buf\n } else {\n // Pass through all other types to `Buffer.from`\n return Buffer.from(arr)\n }\n}\n\n\n/***/ }),\n\n/***/ 57026:\n/***/ (function(module) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n\n\n/***/ })\n\n}]);"],"names":["self","push","__unused_webpack_module","__webpack_exports__","__webpack_require__","r","d","detectEnv","browser_detectOS","formatIOSMobile","formatMobileRegistry","formatMobileRegistryEntry","getClientMeta","getCrypto","getCryptoOrThrow","getDappRegistryUrl","getDocument","getDocumentOrThrow","getFromWindow","getFromWindowOrThrow","getLocal","getLocalStorage","getLocalStorageOrThrow","getLocation","getLocationOrThrow","getMobileLinkRegistry","getMobileRegistryEntry","getNavigator","getNavigatorOrThrow","getWalletRegistryUrl","isAndroid","isBrowser","isIOS","isMobile","isNode","mobileLinkChoiceKey","removeLocal","safeJsonParse","safeJsonStringify","saveMobileLinkInfo","setLocal","cjs","dist_cjs","process","__spreadArrays","s","i","il","arguments","length","Array","k","a","j","jl","BrowserInfo","name","version","os","type","NodeInfo","platform","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","userAgentRules","operatingSystemRules","parseUserAgent","ua","matchedRule","reduce","matched","_a","browser","regex","uaMatch","exec","match","versionParts","split","slice","createVersionParts","count","output","ii","REQUIRED_VERSION_PARTS","join","detectOS","searchBotMatch","userAgent","document","navigator","product","env","undefined","toLowerCase","includes","maxTouchPoints","result","D","esm","u","key","data","raw","local","setItem","getItem","removeItem","uri","entry","encodedUri","encodeURIComponent","universalLink","deepLink","endsWith","focusUri","href","Object","assign","registry","filter","whitelist","links","map","Boolean","API_URL","shortName","metadata","color","colors","primary","logo","image_url","sm","universal","native","values","exports","getBrowerCrypto","g","crypto","msCrypto","getSubtleCrypto","browserCrypto","subtle","webkitSubtle","defineProperty","value","isBrowserCryptoAvailable","isReactNative","versions","node","__createBinding","create","o","m","k2","enumerable","get","__exportStar","p","hasOwnProperty","ethereum_provider_dist_esm","iso_crypto_dist_esm_namespaceObject","decrypt","encrypt","generateKey","verifyHmac","eventemitter3","eventemitter3_default","n","events","JsonRpcProvider","IJsonRpcProvider","constructor","connection","EventEmitter","hasRegisteredEventListeners","setConnection","connected","registerEventListeners","connect","open","disconnect","close","on","event","listener","once","off","removeListener","request","context","requestStrict","formatJsonRpcRequest","method","params","Promise","resolve","reject","e","id","response","isJsonRpcError","error","send","onPayload","payload","emit","isJsonRpcResponse","browser_ponyfill","browser_ponyfill_default","safe_json_dist_esm","DEFAULT_FETCH_OPTS","headers","Accept","http_HttpConnection","url","isAvailable","registering","isHttpUrl","connecting","register","onClose","body","res","json","onError","jsonrpc","onOpen","parseError","message","toString","formatJsonRpcError","parseConnectionError","browser_utils_dist_esm","reservedEvents","signingMethods","infuraNetworks","bn","bn_default","typedarray_to_buffer","typedarray_to_buffer_default","Buffer","ENC_UTF8","bufferToArray","buf","Uint8Array","bufferToHex","prefixed","hex","addHexPrefix","arrayToBuffer","arr","arrayToHex","hexToArray","from","removeHexPrefix","utf8ToBuffer","utf8","concatArrays","args","forEach","arg","concat","replace","startsWith","sanitizeHex","sanitizeBytes","str","byteSize","padding","padLeft","padString","left","diff","pad","repeat","calcByteLength","remainder","convertArrayBufferToBuffer","arrBuf","convertNumberToHex","num","noPrefix","sha3","payloadId","uuid","b","Math","random","validators_isHexString","isJsonRpcResponseSuccess","object","isJsonRpcResponseError","isInternalEvent","isValidAddress","address","substring","test","toChecksumAddress","hash","keccak_256","checksum","parseInt","toUpperCase","parsePersonalSign","array","utf8ToHex","parseTransactionData","txData","parseHexValues","trim","removeHexLeadingZeros","txDataRPC","to","gasPrice","gas","gasLimit","nonce","prunable","keys","query_string","parseQueryString","queryString","parse","network","_eventEmitters","window","addEventListener","trigger","callback","eventEmitters","eventEmitter","WS","WebSocket","socket_transport_dist_esm","opts","_queue","_events","_subscriptions","_protocol","protocol","_version","_url","_netMonitor","_socket","_nextSocket","subscriptions","netMonitor","_socketCreate","readyState","closing","closed","_socketClose","topic","silent","_socketSend","subscribe","getWebSocketUrl","_b","newQueryParams","queryParams","splitUrl","host","getQueryString","pathEnd","indexOf","substr","stringify","onmessage","_socketReceive","onopen","_socketOpen","onerror","_socketError","onclose","setTimeout","_queueSubscriptions","_pushQueue","socketMessage","JSON","_setToQueue","queue","ERROR_SESSION_CONNECTED","ERROR_SESSION_DISCONNECTED","ERROR_INVALID_RESPONSE","ERROR_QRCODE_MODAL_USER_CLOSED","esm_events","unsubscribe","x","storage","storageId","getSession","session","bridge","setSession","removeSession","bridges","alphanumerical","char","core_dist_esm","_bridge","_key","_clientId","_clientMeta","_peerId","_peerMeta","_handshakeId","_handshakeTopic","_connected","_accounts","_chainId","_networkId","_rpcUrl","_eventManager","connectorOpts","clientMeta","_cryptoLib","cryptoLib","_sessionStorage","sessionStorage","_qrcodeModal","qrcodeModal","_qrcodeModalOptions","qrcodeModalOptions","_signingMethods","hostname","extractHostname","floor","_getStorageSession","handshakeId","_subscribeToSessionResponse","_transport","transport","clientId","_subscribeToInternalEvents","_initTransport","_subscribeToSessionRequest","pushServerOpts","_registerPushServer","buffer","peerId","peerMeta","handshakeTopic","_uri","_formatUri","_parseUri","chainId","networkId","accounts","rpcUrl","pending","createInstantRequest","instantRequest","_generateKey","_formatRequest","endInstantRequest","killSession","_sendCallRequest","createSession","_sendSessionRequest","approveSession","sessionStatus","sessionParams","approved","_sendResponse","_setStorageSession","rejectSession","sessionError","_formatResponse","_removeStorageSession","updateSession","_manageStorageSession","_sendRequest","_handleSessionDisconnect","sendTransaction","tx","parsedTx","signTransaction","signMessage","signPersonalMessage","signTypedData","updateChain","chainParams","unsafeSend","options","_subscribeToResponse","sendCustomRequest","formattedRequest","approveRequest","formattedResponse","rejectRequest","transportClose","callRequest","encryptionPayload","_encrypt","forcePushNotification","errorMsg","_subscribeToCallResponse","baseResponse","formatRpcError","code","errorResponse","successResponse","_handleSessionResponse","_handleIncomingMessages","activeTopics","_decrypt","mobileLinkUrl","location","internalPayload","parseWalletConnectUri","pathStart","path","requiredParams","parseRequiredParams","parseQueryParams","parameters","Error","decodeURIComponent","token","pushSubscription","peerName","language","fetch","success","default_AES_BROWSER_ALGO","default_HMAC_BROWSER","browserImportKey","importKey","browserAesEncrypt","iv","cryptoKey","browserAesDecrypt","browser_browserHmacSha256Sign","signature","sign","hmacSha256Sign","msg","bytes","randomBytes","getRandomValues","cipherText","hmac","hmacHex","unsigned","chmac","chmacHex","providedIv","ivArrayBuffer","ivHex","contentString","content","cipherTextHex","verified","client_dist_esm","dist_cjs_default","esm_provider","SignerConnection","XR","qrcode","wc","connector","err","sendPayload","then","catch","registerConnectorEvents","errorPayload","sanitizeResponse","rpc","infuraId","custom","signer","http","setHttpProvider","sendAsync","enable","isWalletConnect","getRpcUrl","infuraUrl","getInfuraRpcUrl","_provider__WEBPACK_IMPORTED_MODULE_1__","x0","_jsonrpc__WEBPACK_IMPORTED_MODULE_0__","_validator__WEBPACK_IMPORTED_MODULE_2__","IJsonRpcConnection","IEvents","IBaseJsonRpcProvider","SERVER_ERROR","DEFAULT_ERROR","INTERNAL_ERROR","RESERVED_ERROR_CODES","STANDARD_ERROR_MAP","_walletconnect_environment__WEBPACK_IMPORTED_MODULE_0__","getErrorByCode","getError","isReservedErrorCode","_constants__WEBPACK_IMPORTED_MODULE_0__","dQ","xK","JV","find","_error__WEBPACK_IMPORTED_MODULE_0__","_constants__WEBPACK_IMPORTED_MODULE_1__","date","Date","now","by","O4","CA","i5","L2","_format__WEBPACK_IMPORTED_MODULE_3__","RI","sT","_url__WEBPACK_IMPORTED_MODULE_5__","jK","_validators__WEBPACK_IMPORTED_MODULE_6__","jg","_error__WEBPACK_IMPORTED_MODULE_1__","CX","o0","_env__WEBPACK_IMPORTED_MODULE_2__","_types__WEBPACK_IMPORTED_MODULE_4__","_walletconnect_jsonrpc_types__WEBPACK_IMPORTED_MODULE_0__","matchRegexProtocol","getUrlProtocol","matches","isJsonRpcResult","module","__unused_webpack_exports","_interopDefault","ex","browserUtils","QRCode","copy","React","Symbol","iterator","asyncIterator","WALLETCONNECT_WRAPPER_ID","WALLETCONNECT_STYLE_ID","WALLETCONNECT_MODAL_ID","WALLETCONNECT_CTA_TEXT_ID","Header","props","createElement","className","src","onClick","ConnectButton","WALLETCONNECT_CONNECT_BUTTON_ID","rel","style","backgroundColor","target","WalletButton","background","backgroundSize","WalletIcon","fontSize","innerWidth","LinkDisplay","android","ref","useState","input","setInput","ref$1","setFilter","ref$2","page","setPage","link","errorMessage","grid","pages","ceil","range","pageLinks","_","index","filterTimeout","text","connect_mobile_wallet","choose_preferred_wallet","placeholder","onChange","clearTimeout","useCallback","handleClickIOS","Fragment","no_wallets_found","loading","hasPaging","fill","pageNumber","margin","fontWeight","selected","Notification","show","formatQRCodeImage","dataString","QRCodeDisplay","notification","setNotification","svg","setSvg","useEffect","_formatQRCodeImage","copyToClipboard","copied_to_clipboard","setInterval","scan_qrcode_with_wallet","dangerouslySetInnerHTML","__html","copy_to_clipboard","Modal","mobile","mobileLinks","desktopLinks","setLoading","fetched","setFetched","displayQRCode","setDisplayQRCode","displayProps","ref$3","singleLinkHref","setSingleLinkHref","ref$4","hasSingleLink","setHasSingleLink","ref$5","setLinks","ref$6","setErrorMessage","getLinksIfNeeded","initLinks","_temp","_catch","recover","registryUrl","registryResponse","_registryResponse$jso","listings","_links","no_supported_wallets","something_went_wrong","console","connect_with","rightSelected","desktop","languages","de","en","es","fr","ko","pt","zh","fa","triggerCloseAnimation","doc","modal","getElementById","wrapper","removeChild","cb","log","prev","head","setAttribute","innerText","appendChild","render","R","compat_module_C","U","O","K","M","h","G","compat_module_z","y","compat_module","X","S","V","J","compat_module_L","compat_module_","compat_module_T","Q","Y","hooks_module_T","hooks_module_w","hooks_module_A","hooks_module_l","F","hooks_module_s","hooks_module_y","hooks_module_h","hooks_module_p","hooks_module_d","hooks_module_m","B","t","f","c","l","v","parentNode","children","defaultProps","__k","__","__b","__e","__d","__c","__v","vnode","w","base","debounceRendering","sort","some","__P","A","__n","ownerSVGElement","T","nextSibling","insertBefore","isArray","C","setProperty","N","cssText","z","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","P","contextType","__E","prototype","E","sub","state","__h","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","__r","getChildContext","getSnapshotBeforeUpdate","$","nodeType","localName","createTextNode","createElementNS","is","call","childNodes","attributes","innerHTML","checked","diffed","current","unmount","componentWillUnmount","H","I","L","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","bind","hooks_module_t","hooks_module_u","hooks_module_r","hooks_module_i","hooks_module_o","hooks_module_c","hooks_module_f","hooks_module_e","hooks_module_a","hooks_module_v","__H","hooks_module_E","hooks_module_x","useDebugValue","hooks_module_","hooks_module_g","q","compat_module_E","compat_module_w","requestAnimationFrame","cancelAnimationFrame","isPureReactComponent","__proto__","isReactComponent","displayName","compat_module_A","compat_module_k","only","toArray","compat_module_F","__u","compat_module_M","default","pop","compat_module_N","fallback","compat_module_P","delete","revealOrder","size","Map","reverse","set","W","compat_module_j","container","compat_module_D","compat_module_H","for","firstChild","Z","compat_module_I","configurable","persist","stopPropagation","preventDefault","isPropagationStopped","isDefaultPrevented","nativeEvent","compat_module_$","class","compat_module_q","$$typeof","defaultValue","multiple","ondoubleclick","ondblclick","onbeforeinput","onchange","oninput","apply","useReducer","useLayoutEffect","useRef","useImperativeHandle","useMemo","useContext","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cloneElement","createRef","isValidElement","findDOMNode","Component","PureComponent","memo","forwardRef","unstable_batchedUpdates","Suspense","SuspenseList","lazy","assert","val","inherits","ctor","superCtor","super_","TempCtor","BN","number","endian","isBN","negative","words","red","_init","wordSize","parseHex","start","end","len","min","charCodeAt","parseBase","mul","max","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","total","mod","word","imuln","_iaddn","pow","dest","clone","_expand","_normSign","inspect","zeros","groupSizes","groupBases","smallMulTo","out","lo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","ArrayType","byteLength","reqLength","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","hi","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","fftm","FFTM","mulp","mulTo","bigMulTo","hncarry","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","mode","bhi","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","outLen","next","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","nmd","window_getters_1","loc","getWindowMetadataOfAny","metaTags","getElementsByTagName","tag","getAttribute","attr","title","description","getDescription","origin","icons","getIcons","absoluteHref","pathname","finalPath","absoluteUrl","deselectCurrent","clipboardToIE11Formatting","copyKey","debug","reselectPrevious","selection","mark","createRange","getSelection","textContent","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","format","clipboardData","warn","clearData","setData","onCopy","selectNodeContents","addRange","execCommand","prompt","removeRange","removeAllRanges","singleMatcher","multiMatcher","decodeComponents","components","decode","tokens","encodedURI","customDecodeURIComponent","replaceMap","entries","dijkstra","single_source_shortest_paths","graph","closest","cost_of_s_to_u","adjacent_nodes","cost_of_e","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","first_visit","predecessors","costs","PriorityQueue","make","empty","cost","extract_shortest_path_from_predecessor_list","nodes","find_path","sorter","default_sorter","isTypedArray","strict","isStrictTypedArray","loose","isLooseTypedArray","names","Int8Array","Int16Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","Float32Array","Float64Array","canPromise","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","argsNum","isLastArgCb","getContext","toCanvas","toDataURL","renderToDataURL","getSymbolSize","getRowColCoords","posCount","intervals","positions","getPositions","coords","pos","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","put","BitBuffer","putBit","getLengthInBits","bufIndex","BufferUtil","BitMatrix","alloc","reservedBit","row","col","reserved","isReserved","ByteData","BYTE","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","isValid","level","fromString","string","lcStr","Utils","G15_BCH","getBCHDigit","getEncodedBits","G15","EXP_TABLE","LOG_TABLE","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","N1","N2","N3","N4","getMaskAt","maskPattern","isNaN","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","Infinity","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","remainingNum","GF","p1","p2","coeff","divident","divisor","offset","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","toSJISFunc","setToSJISFunction","createSymbol","segments","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","createData","totalCodewords","getSymbolTotalCodewords","ecTotalCodewords","dataTotalCodewordsBits","remainingByte","createCodewords","ecTotalBlocks","blocksInGroup1","dataCodewordsInGroup1","dataTotalCodewords","dataCodewordsInGroup2","ecCount","totalCodewordsInGroup1","rs","dcData","ecData","maxDataSize","dataSize","encode","moduleCount","modules","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","setupData","inc","bitIndex","byteIndex","dark","Polynomial","lW","genPoly","initialize","paddedData","buff","numeric","kanji","byte","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","getSegments","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","isKanjiModeEnabled","segs","s1","s2","obj","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","seg","buildGraph","table","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildNodes","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","getBestVersionForMixedData","currentVersion","getBestVersionForDataLength","G18","qrData","canvasEl","getCanvasElement","getOptions","getImageWidth","image","createImageData","qrToImageData","clearRect","height","putImageData","rendererOpts","quality","getColorAttrib","attrib","alpha","toFixed","svgCmd","cmd","qrcodesize","bg","light","qrToPath","moveBy","newRow","lineLength","svgTag","hex2rgba","hexCode","hexValue","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","iSrc","TYPED_ARRAY_SUPPORT","typedArraySupport","foo","K_MAX_LENGTH","allocUnsafe","that","ArrayBuffer","fromArrayBuffer","byteOffset","fromArrayLike","actual","createBuffer","fromObject","isBuffer","utf8ToBytes","units","codePoint","leadSurrogate","isView","species","writable","isFinite","remaining","blitBuffer","dst","newBuf","subarray","sliceLen","targetStart","list","_isBuffer","base64","ieee754","customInspectSymbol","setPrototypeOf","encodingOrOffset","encoding","isEncoding","fromArrayView","arrayView","isInstance","SharedArrayBuffer","valueOf","numberIsNaN","toPrimitive","assertSize","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","hexWrite","Number","strLen","parsed","utf8Write","asciiWrite","asciiToBytes","byteArray","base64Write","ucs2Write","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","decodeCodePointsArray","codePoints","fromCharCode","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","h2","proto","poolSize","allocUnsafeSlow","compare","swap16","swap32","swap64","toLocaleString","equals","thisStart","thisEnd","thisCopy","targetCopy","_arr","readUintLE","readUIntLE","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","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","INVALID_BASE64_RE","toByteArray","base64clean","alphabet","i16","strictUriEncode","decodeComponent","splitOnFirst","isNullOrUndefined","validateArrayFormatSeparator","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","parserForArrayFormat","accumulator","newValue","item","param","keysSorter","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","parseUrl","query","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","separator","separatorIndex","rangeCount","active","activeElement","ranges","getRangeAt","tagName","blur","focus"],"sourceRoot":""}