{"version":3,"file":"2249.js","mappings":"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","sources":["webpack://new_ui/./node_modules/@solana/buffer-layout/lib/Layout.js","webpack://new_ui/./node_modules/@noble/secp256k1/lib/esm/index.js","webpack://new_ui/./node_modules/@solana/web3.js/lib/index.browser.esm.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/_assert.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/cryptoBrowser.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/utils.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/_sha2.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/_u64.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/sha512.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/sha256.js","webpack://new_ui/./node_modules/superstruct/lib/index.es.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/sha3.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/@noble/hashes/esm/hmac.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/bs58/index.js","webpack://new_ui/./node_modules/@solana/web3.js/node_modules/buffer/index.js","webpack://new_ui/./node_modules/base-x/src/index.js","webpack://new_ui/./node_modules/base64-js/index.js","webpack://new_ui/./node_modules/bigint-buffer/dist/browser.js","webpack://new_ui/./node_modules/bn.js/lib/bn.js","webpack://new_ui/./node_modules/borsh/lib/index.js","webpack://new_ui/./node_modules/borsh/node_modules/bs58/index.js","webpack://new_ui/./node_modules/buffer/index.js","webpack://new_ui/./node_modules/eventemitter3/index.js","webpack://new_ui/./node_modules/ieee754/index.js","webpack://new_ui/./node_modules/jayson/lib/client/browser/index.js","webpack://new_ui/./node_modules/jayson/lib/generateRequest.js","webpack://new_ui/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://new_ui/./node_modules/react-dom/client.js","webpack://new_ui/./node_modules/react-dom/index.js","webpack://new_ui/./node_modules/react-icons/lib/esm/iconContext.js","webpack://new_ui/./node_modules/react-icons/lib/esm/iconBase.js","webpack://new_ui/./node_modules/react-icons/md/index.esm.js","webpack://new_ui/./node_modules/react-id-generator/lib/index.js","webpack://new_ui/./node_modules/react/cjs/react.production.min.js","webpack://new_ui/./node_modules/react/index.js","webpack://new_ui/./node_modules/rpc-websockets/dist/lib/client.js","webpack://new_ui/./node_modules/rpc-websockets/dist/lib/client/websocket.browser.js","webpack://new_ui/./node_modules/safe-buffer/index.js","webpack://new_ui/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://new_ui/./node_modules/scheduler/index.js","webpack://new_ui/./node_modules/text-encoding-utf-8/lib/encoding.lib.js","webpack://new_ui/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://new_ui/./node_modules/uuid/dist/esm-browser/rng.js","webpack://new_ui/./node_modules/uuid/dist/esm-browser/regex.js","webpack://new_ui/./node_modules/uuid/dist/esm-browser/validate.js","webpack://new_ui/./node_modules/uuid/dist/esm-browser/v4.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/createClass.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/inherits.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/helpers/typeof.js","webpack://new_ui/./node_modules/rpc-websockets/node_modules/@babel/runtime/regenerator/index.js","webpack://new_ui/./node_modules/@noble/ed25519/lib/esm/index.js","webpack://new_ui/./node_modules/react-hot-toast/dist/index.mjs","webpack://new_ui/./node_modules/goober/dist/goober.modern.js"],"sourcesContent":["/* The MIT License (MIT)\n *\n * Copyright 2015-2018 Peter A. Bigot\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\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 */\n/**\n * Support for translating between Uint8Array instances and JavaScript\n * native types.\n *\n * {@link module:Layout~Layout|Layout} is the basis of a class\n * hierarchy that associates property names with sequences of encoded\n * bytes.\n *\n * Layouts are supported for these scalar (numeric) types:\n * * {@link module:Layout~UInt|Unsigned integers in little-endian\n * format} with {@link module:Layout.u8|8-bit}, {@link\n * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit},\n * {@link module:Layout.u32|32-bit}, {@link\n * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit}\n * representation ranges;\n * * {@link module:Layout~UIntBE|Unsigned integers in big-endian\n * format} with {@link module:Layout.u16be|16-bit}, {@link\n * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit},\n * {@link module:Layout.u40be|40-bit}, and {@link\n * module:Layout.u48be|48-bit} representation ranges;\n * * {@link module:Layout~Int|Signed integers in little-endian\n * format} with {@link module:Layout.s8|8-bit}, {@link\n * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit},\n * {@link module:Layout.s32|32-bit}, {@link\n * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit}\n * representation ranges;\n * * {@link module:Layout~IntBE|Signed integers in big-endian format}\n * with {@link module:Layout.s16be|16-bit}, {@link\n * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit},\n * {@link module:Layout.s40be|40-bit}, and {@link\n * module:Layout.s48be|48-bit} representation ranges;\n * * 64-bit integral values that decode to an exact (if magnitude is\n * less than 2^53) or nearby integral Number in {@link\n * module:Layout.nu64|unsigned little-endian}, {@link\n * module:Layout.nu64be|unsigned big-endian}, {@link\n * module:Layout.ns64|signed little-endian}, and {@link\n * module:Layout.ns64be|unsigned big-endian} encodings;\n * * 32-bit floating point values with {@link\n * module:Layout.f32|little-endian} and {@link\n * module:Layout.f32be|big-endian} representations;\n * * 64-bit floating point values with {@link\n * module:Layout.f64|little-endian} and {@link\n * module:Layout.f64be|big-endian} representations;\n * * {@link module:Layout.const|Constants} that take no space in the\n * encoded expression.\n *\n * and for these aggregate types:\n * * {@link module:Layout.seq|Sequence}s of instances of a {@link\n * module:Layout~Layout|Layout}, with JavaScript representation as\n * an Array and constant or data-dependent {@link\n * module:Layout~Sequence#count|length};\n * * {@link module:Layout.struct|Structure}s that aggregate a\n * heterogeneous sequence of {@link module:Layout~Layout|Layout}\n * instances, with JavaScript representation as an Object;\n * * {@link module:Layout.union|Union}s that support multiple {@link\n * module:Layout~VariantLayout|variant layouts} over a fixed\n * (padded) or variable (not padded) span of bytes, using an\n * unsigned integer at the start of the data or a separate {@link\n * module:Layout.unionLayoutDiscriminator|layout element} to\n * determine which layout to use when interpreting the buffer\n * contents;\n * * {@link module:Layout.bits|BitStructure}s that contain a sequence\n * of individual {@link\n * module:Layout~BitStructure#addField|BitField}s packed into an 8,\n * 16, 24, or 32-bit unsigned integer starting at the least- or\n * most-significant bit;\n * * {@link module:Layout.cstr|C strings} of varying length;\n * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link\n * module:Layout~Blob#length|length} raw data.\n *\n * All {@link module:Layout~Layout|Layout} instances are immutable\n * after construction, to prevent internal state from becoming\n * inconsistent.\n *\n * @local Layout\n * @local ExternalLayout\n * @local GreedyCount\n * @local OffsetLayout\n * @local UInt\n * @local UIntBE\n * @local Int\n * @local IntBE\n * @local NearUInt64\n * @local NearUInt64BE\n * @local NearInt64\n * @local NearInt64BE\n * @local Float\n * @local FloatBE\n * @local Double\n * @local DoubleBE\n * @local Sequence\n * @local Structure\n * @local UnionDiscriminator\n * @local UnionLayoutDiscriminator\n * @local Union\n * @local VariantLayout\n * @local BitStructure\n * @local BitField\n * @local Boolean\n * @local Blob\n * @local CString\n * @local Constant\n * @local bindConstructorLayout\n * @module Layout\n * @license MIT\n * @author Peter A. Bigot\n * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub}\n */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.s16 = exports.s8 = exports.nu64be = exports.u48be = exports.u40be = exports.u32be = exports.u24be = exports.u16be = exports.nu64 = exports.u48 = exports.u40 = exports.u32 = exports.u24 = exports.u16 = exports.u8 = exports.offset = exports.greedy = exports.Constant = exports.UTF8 = exports.CString = exports.Blob = exports.Boolean = exports.BitField = exports.BitStructure = exports.VariantLayout = exports.Union = exports.UnionLayoutDiscriminator = exports.UnionDiscriminator = exports.Structure = exports.Sequence = exports.DoubleBE = exports.Double = exports.FloatBE = exports.Float = exports.NearInt64BE = exports.NearInt64 = exports.NearUInt64BE = exports.NearUInt64 = exports.IntBE = exports.Int = exports.UIntBE = exports.UInt = exports.OffsetLayout = exports.GreedyCount = exports.ExternalLayout = exports.bindConstructorLayout = exports.nameWithProperty = exports.Layout = exports.uint8ArrayToBuffer = exports.checkUint8Array = void 0;\nexports.constant = exports.utf8 = exports.cstr = exports.blob = exports.unionLayoutDiscriminator = exports.union = exports.seq = exports.bits = exports.struct = exports.f64be = exports.f64 = exports.f32be = exports.f32 = exports.ns64be = exports.s48be = exports.s40be = exports.s32be = exports.s24be = exports.s16be = exports.ns64 = exports.s48 = exports.s40 = exports.s32 = exports.s24 = void 0;\nconst buffer_1 = require(\"buffer\");\n/* Check if a value is a Uint8Array.\n *\n * @ignore */\nfunction checkUint8Array(b) {\n if (!(b instanceof Uint8Array)) {\n throw new TypeError('b must be a Uint8Array');\n }\n}\nexports.checkUint8Array = checkUint8Array;\n/* Create a Buffer instance from a Uint8Array.\n *\n * @ignore */\nfunction uint8ArrayToBuffer(b) {\n checkUint8Array(b);\n return buffer_1.Buffer.from(b.buffer, b.byteOffset, b.length);\n}\nexports.uint8ArrayToBuffer = uint8ArrayToBuffer;\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\nclass Layout {\n constructor(span, property) {\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n this.span = span;\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n makeDestinationObject() {\n return {};\n }\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Uint8Array} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n getSpan(b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n return this.span;\n }\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n replicate(property) {\n const rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n }\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n fromArray(values) {\n return undefined;\n }\n}\nexports.Layout = Layout;\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\nfunction nameWithProperty(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n return name;\n}\nexports.nameWithProperty = nameWithProperty;\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\n// `Class` must be a constructor Function, but the assignment of a `layout_` property to it makes it difficult to type\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction bindConstructorLayout(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n if (Object.prototype.hasOwnProperty.call(Class, 'layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n if (!(layout && (layout instanceof Layout))) {\n throw new TypeError('layout must be a Layout');\n }\n if (Object.prototype.hasOwnProperty.call(layout, 'boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n layout.makeDestinationObject = (() => new Class());\n Object.defineProperty(Class.prototype, 'encode', {\n value(b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true,\n });\n Object.defineProperty(Class, 'decode', {\n value(b, offset) {\n return layout.decode(b, offset);\n },\n writable: true,\n });\n}\nexports.bindConstructorLayout = bindConstructorLayout;\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\nclass ExternalLayout extends Layout {\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n isCount() {\n throw new Error('ExternalLayout is abstract');\n }\n}\nexports.ExternalLayout = ExternalLayout;\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\nclass GreedyCount extends ExternalLayout {\n constructor(elementSpan = 1, property) {\n if ((!Number.isInteger(elementSpan)) || (0 >= elementSpan)) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n super(-1, property);\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n this.elementSpan = elementSpan;\n }\n /** @override */\n isCount() {\n return true;\n }\n /** @override */\n decode(b, offset = 0) {\n checkUint8Array(b);\n const rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n }\n /** @override */\n encode(src, b, offset) {\n return 0;\n }\n}\nexports.GreedyCount = GreedyCount;\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\nclass OffsetLayout extends ExternalLayout {\n constructor(layout, offset = 0, property) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n super(layout.span, property || layout.property);\n /** The subordinated layout. */\n this.layout = layout;\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Uint8Array\n * being accessed. */\n this.offset = offset;\n }\n /** @override */\n isCount() {\n return ((this.layout instanceof UInt)\n || (this.layout instanceof UIntBE));\n }\n /** @override */\n decode(b, offset = 0) {\n return this.layout.decode(b, offset + this.offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n return this.layout.encode(src, b, offset + this.offset);\n }\n}\nexports.OffsetLayout = OffsetLayout;\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UInt extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readUIntLE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeUIntLE(src, offset, this.span);\n return this.span;\n }\n}\nexports.UInt = UInt;\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UIntBE extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readUIntBE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeUIntBE(src, offset, this.span);\n return this.span;\n }\n}\nexports.UIntBE = UIntBE;\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Int extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readIntLE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeIntLE(src, offset, this.span);\n return this.span;\n }\n}\nexports.Int = Int;\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass IntBE extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readIntBE(offset, this.span);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeIntBE(src, offset, this.span);\n return this.span;\n }\n}\nexports.IntBE = IntBE;\nconst V2E32 = Math.pow(2, 32);\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\nfunction divmodInt64(src) {\n const hi32 = Math.floor(src / V2E32);\n const lo32 = src - (hi32 * V2E32);\n return { hi32, lo32 };\n}\n/* Reconstruct Number from quotient and non-negative remainder */\nfunction roundedInt64(hi32, lo32) {\n return hi32 * V2E32 + lo32;\n}\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const lo32 = buffer.readUInt32LE(offset);\n const hi32 = buffer.readUInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\nexports.NearUInt64 = NearUInt64;\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const hi32 = buffer.readUInt32BE(offset);\n const lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\nexports.NearUInt64BE = NearUInt64BE;\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const lo32 = buffer.readUInt32LE(offset);\n const hi32 = buffer.readInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\nexports.NearInt64 = NearInt64;\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n const buffer = uint8ArrayToBuffer(b);\n const hi32 = buffer.readInt32BE(offset);\n const lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n /** @override */\n encode(src, b, offset = 0) {\n const split = divmodInt64(src);\n const buffer = uint8ArrayToBuffer(b);\n buffer.writeInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\nexports.NearInt64BE = NearInt64BE;\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Float extends Layout {\n constructor(property) {\n super(4, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readFloatLE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeFloatLE(src, offset);\n return 4;\n }\n}\nexports.Float = Float;\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass FloatBE extends Layout {\n constructor(property) {\n super(4, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readFloatBE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeFloatBE(src, offset);\n return 4;\n }\n}\nexports.FloatBE = FloatBE;\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Double extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readDoubleLE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeDoubleLE(src, offset);\n return 8;\n }\n}\nexports.Double = Double;\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass DoubleBE extends Layout {\n constructor(property) {\n super(8, property);\n }\n /** @override */\n decode(b, offset = 0) {\n return uint8ArrayToBuffer(b).readDoubleBE(offset);\n }\n /** @override */\n encode(src, b, offset = 0) {\n uint8ArrayToBuffer(b).writeDoubleBE(src, offset);\n return 8;\n }\n}\nexports.DoubleBE = DoubleBE;\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Sequence extends Layout {\n constructor(elementLayout, count, property) {\n if (!(elementLayout instanceof Layout)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n if (!(((count instanceof ExternalLayout) && count.isCount())\n || (Number.isInteger(count) && (0 <= count)))) {\n throw new TypeError('count must be non-negative integer '\n + 'or an unsigned integer ExternalLayout');\n }\n let span = -1;\n if ((!(count instanceof ExternalLayout))\n && (0 < elementLayout.span)) {\n span = count * elementLayout.span;\n }\n super(span, property);\n /** The layout for individual elements of the sequence. */\n this.elementLayout = elementLayout;\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n this.count = count;\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n return this.span;\n }\n let span = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n }\n else {\n let idx = 0;\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n return span;\n }\n /** @override */\n decode(b, offset = 0) {\n const rv = [];\n let i = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n return rv;\n }\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset = 0) {\n const elo = this.elementLayout;\n const span = src.reduce((span, v) => {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n if (this.count instanceof ExternalLayout) {\n this.count.encode(src.length, b, offset);\n }\n return span;\n }\n}\nexports.Sequence = Sequence;\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\nclass Structure extends Layout {\n constructor(fields, property, decodePrefixes) {\n if (!(Array.isArray(fields)\n && fields.reduce((acc, v) => acc && (v instanceof Layout), true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n if (('boolean' === typeof property)\n && (undefined === decodePrefixes)) {\n decodePrefixes = property;\n property = undefined;\n }\n /* Verify absence of unnamed variable-length fields. */\n for (const fd of fields) {\n if ((0 > fd.span)\n && (undefined === fd.property)) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n let span = -1;\n try {\n span = fields.reduce((span, fd) => span + fd.getSpan(), 0);\n }\n catch (e) {\n // ignore error\n }\n super(span, property);\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n this.fields = fields;\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n this.decodePrefixes = !!decodePrefixes;\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n return this.span;\n }\n let span = 0;\n try {\n span = this.fields.reduce((span, fd) => {\n const fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n }\n catch (e) {\n throw new RangeError('indeterminate span');\n }\n return span;\n }\n /** @override */\n decode(b, offset = 0) {\n checkUint8Array(b);\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n offset += fd.getSpan(b, offset);\n if (this.decodePrefixes\n && (b.length === offset)) {\n break;\n }\n }\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n encode(src, b, offset = 0) {\n const firstOffset = offset;\n let lastOffset = 0;\n let lastWrote = 0;\n for (const fd of this.fields) {\n let span = fd.span;\n lastWrote = (0 < span) ? span : 0;\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n return (lastOffset + lastWrote) - firstOffset;\n }\n /** @override */\n fromArray(values) {\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if ((undefined !== fd.property)\n && (0 < values.length)) {\n dest[fd.property] = values.shift();\n }\n }\n return dest;\n }\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n layoutFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n return undefined;\n }\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n offsetOf(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n let offset = 0;\n for (const fd of this.fields) {\n if (fd.property === property) {\n return offset;\n }\n if (0 > fd.span) {\n offset = -1;\n }\n else if (0 <= offset) {\n offset += fd.span;\n }\n }\n return undefined;\n }\n}\nexports.Structure = Structure;\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\nclass UnionDiscriminator {\n constructor(property) {\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n this.property = property;\n }\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n decode(b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n }\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n encode(src, b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n }\n}\nexports.UnionDiscriminator = UnionDiscriminator;\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\nclass UnionLayoutDiscriminator extends UnionDiscriminator {\n constructor(layout, property) {\n if (!((layout instanceof ExternalLayout)\n && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n super(property || layout.property || 'variant');\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n this.layout = layout;\n }\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n decode(b, offset) {\n return this.layout.decode(b, offset);\n }\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n encode(src, b, offset) {\n return this.layout.encode(src, b, offset);\n }\n}\nexports.UnionLayoutDiscriminator = UnionLayoutDiscriminator;\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Union extends Layout {\n constructor(discr, defaultLayout, property) {\n let discriminator;\n if ((discr instanceof UInt)\n || (discr instanceof UIntBE)) {\n discriminator = new UnionLayoutDiscriminator(new OffsetLayout(discr));\n }\n else if ((discr instanceof ExternalLayout)\n && discr.isCount()) {\n discriminator = new UnionLayoutDiscriminator(discr);\n }\n else if (!(discr instanceof UnionDiscriminator)) {\n throw new TypeError('discr must be a UnionDiscriminator '\n + 'or an unsigned integer layout');\n }\n else {\n discriminator = discr;\n }\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n if (!((null === defaultLayout)\n || (defaultLayout instanceof Layout))) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n let span = -1;\n if (defaultLayout) {\n span = defaultLayout.span;\n if ((0 <= span) && ((discr instanceof UInt)\n || (discr instanceof UIntBE))) {\n span += discriminator.layout.span;\n }\n }\n super(span, property);\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n this.discriminator = discriminator;\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n this.usesPrefixDiscriminator = (discr instanceof UInt)\n || (discr instanceof UIntBE);\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n this.defaultLayout = defaultLayout;\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n this.registry = {};\n /* Private variable used when invoking getSourceVariant */\n let boundGetSourceVariant = this.defaultGetSourceVariant.bind(this);\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n this.getSourceVariant = function (src) {\n return boundGetSourceVariant(src);\n };\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n this.configGetSourceVariant = function (gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n return this.span;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n const vlo = this.getVariant(b, offset);\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n return vlo.getSpan(b, offset);\n }\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisfied rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n defaultGetSourceVariant(src) {\n if (Object.prototype.hasOwnProperty.call(src, this.discriminator.property)) {\n if (this.defaultLayout && this.defaultLayout.property\n && Object.prototype.hasOwnProperty.call(src, this.defaultLayout.property)) {\n return undefined;\n }\n const vlo = this.registry[src[this.discriminator.property]];\n if (vlo\n && ((!vlo.layout)\n || (vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property)))) {\n return vlo;\n }\n }\n else {\n for (const tag in this.registry) {\n const vlo = this.registry[tag];\n if (vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property)) {\n return vlo;\n }\n }\n }\n throw new Error('unable to infer src variant');\n }\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n decode(b, offset = 0) {\n let dest;\n const dlo = this.discriminator;\n const discr = dlo.decode(b, offset);\n const clo = this.registry[discr];\n if (undefined === clo) {\n const defaultLayout = this.defaultLayout;\n let contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr;\n // defaultLayout.property can be undefined, but this is allowed by buffer-layout\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n dest[defaultLayout.property] = defaultLayout.decode(b, offset + contentOffset);\n }\n else {\n dest = clo.decode(b, offset);\n }\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n encode(src, b, offset = 0) {\n const vlo = this.getSourceVariant(src);\n if (undefined === vlo) {\n const dlo = this.discriminator;\n // this.defaultLayout is not undefined when vlo is undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const clo = this.defaultLayout;\n let contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dlo.encode(src[dlo.property], b, offset);\n // clo.property is not undefined when vlo is undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return contentOffset + clo.encode(src[clo.property], b, offset + contentOffset);\n }\n return vlo.encode(src, b, offset);\n }\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n addVariant(variant, layout, property) {\n const rv = new VariantLayout(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n }\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Uint8Array)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Uint8Array}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n getVariant(vb, offset = 0) {\n let variant;\n if (vb instanceof Uint8Array) {\n variant = this.discriminator.decode(vb, offset);\n }\n else {\n variant = vb;\n }\n return this.registry[variant];\n }\n}\nexports.Union = Union;\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\nclass VariantLayout extends Layout {\n constructor(union, variant, layout, property) {\n if (!(union instanceof Union)) {\n throw new TypeError('union must be a Union');\n }\n if ((!Number.isInteger(variant)) || (0 > variant)) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n if (('string' === typeof layout)\n && (undefined === property)) {\n property = layout;\n layout = null;\n }\n if (layout) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if ((null !== union.defaultLayout)\n && (0 <= layout.span)\n && (layout.span > union.defaultLayout.span)) {\n throw new Error('variant span exceeds span of containing union');\n }\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n let span = union.span;\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n if ((0 <= span) && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n super(span, property);\n /** The {@link Union} to which this variant belongs. */\n this.union = union;\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n this.variant = variant;\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n this.layout = layout || null;\n }\n /** @override */\n getSpan(b, offset = 0) {\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n let span = 0;\n if (this.layout) {\n span = this.layout.getSpan(b, offset + contentOffset);\n }\n return contentOffset + span;\n }\n /** @override */\n decode(b, offset = 0) {\n const dest = this.makeDestinationObject();\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout) {\n dest[this.property] = this.layout.decode(b, offset + contentOffset);\n }\n else if (this.property) {\n dest[this.property] = true;\n }\n else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n return dest;\n }\n /** @override */\n encode(src, b, offset = 0) {\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout\n && (!Object.prototype.hasOwnProperty.call(src, this.property))) {\n throw new TypeError('variant lacks property ' + this.property);\n }\n this.union.discriminator.encode(this.variant, b, offset);\n let span = contentOffset;\n if (this.layout) {\n this.layout.encode(src[this.property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n if ((0 <= this.union.span)\n && (span > this.union.span)) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n return span;\n }\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n fromArray(values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n return undefined;\n }\n}\nexports.VariantLayout = VariantLayout;\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\nfunction fixBitwiseResult(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n return v;\n}\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass BitStructure extends Layout {\n constructor(word, msb, property) {\n if (!((word instanceof UInt)\n || (word instanceof UIntBE))) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n if (('string' === typeof msb)\n && (undefined === property)) {\n property = msb;\n msb = false;\n }\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n super(word.span, property);\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n this.word = word;\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n this.msb = !!msb;\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n this.fields = [];\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n let value = 0;\n this._packedSetValue = function (v) {\n value = fixBitwiseResult(v);\n return this;\n };\n this._packedGetValue = function () {\n return value;\n };\n }\n /** @override */\n decode(b, offset = 0) {\n const dest = this.makeDestinationObject();\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b);\n }\n }\n return dest;\n }\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n encode(src, b, offset = 0) {\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n return this.word.encode(this._packedGetValue(), b, offset);\n }\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n addField(bits, property) {\n const bf = new BitField(this, bits, property);\n this.fields.push(bf);\n return bf;\n }\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n // `Boolean` conflicts with the native primitive type\n // eslint-disable-next-line @typescript-eslint/ban-types\n addBoolean(property) {\n // This is my Boolean, not the Javascript one.\n const bf = new Boolean(this, property);\n this.fields.push(bf);\n return bf;\n }\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n fieldFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n return undefined;\n }\n}\nexports.BitStructure = BitStructure;\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\nclass BitField {\n constructor(container, bits, property) {\n if (!(container instanceof BitStructure)) {\n throw new TypeError('container must be a BitStructure');\n }\n if ((!Number.isInteger(bits)) || (0 >= bits)) {\n throw new TypeError('bits must be positive integer');\n }\n const totalBits = 8 * container.span;\n const usedBits = container.fields.reduce((sum, fd) => sum + fd.bits, 0);\n if ((bits + usedBits) > totalBits) {\n throw new Error('bits too long for span remainder ('\n + (totalBits - usedBits) + ' of '\n + totalBits + ' remain)');\n }\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n this.container = container;\n /** The span of this value in bits. */\n this.bits = bits;\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n this.valueMask = (1 << bits) - 1;\n if (32 === bits) { // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n this.start = usedBits;\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n this.wordMask = fixBitwiseResult(this.valueMask << this.start);\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n decode(b, offset) {\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(word & this.wordMask);\n const value = wordValue >>> this.start;\n return value;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n encode(value) {\n if ('number' !== typeof value\n || !Number.isInteger(value)\n || (value !== fixBitwiseResult(value & this.valueMask))) {\n throw new TypeError(nameWithProperty('BitField.encode', this)\n + ' value must be integer not exceeding ' + this.valueMask);\n }\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(value << this.start);\n this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask)\n | wordValue);\n }\n}\nexports.BitField = BitField;\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n/* eslint-disable no-extend-native */\nclass Boolean extends BitField {\n constructor(container, property) {\n super(container, 1, property);\n }\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n decode(b, offset) {\n return !!super.decode(b, offset);\n }\n /** @override */\n encode(value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n super.encode(value);\n }\n}\nexports.Boolean = Boolean;\n/* eslint-enable no-extend-native */\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Uint8Array.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Blob extends Layout {\n constructor(length, property) {\n if (!(((length instanceof ExternalLayout) && length.isCount())\n || (Number.isInteger(length) && (0 <= length)))) {\n throw new TypeError('length must be positive integer '\n + 'or an unsigned integer ExternalLayout');\n }\n let span = -1;\n if (!(length instanceof ExternalLayout)) {\n span = length;\n }\n super(span, property);\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n this.length = length;\n }\n /** @override */\n getSpan(b, offset) {\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return span;\n }\n /** @override */\n decode(b, offset = 0) {\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return uint8ArrayToBuffer(b).slice(offset, offset + span);\n }\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n let span = this.length;\n if (this.length instanceof ExternalLayout) {\n span = src.length;\n }\n if (!(src instanceof Uint8Array && span === src.length)) {\n throw new TypeError(nameWithProperty('Blob.encode', this)\n + ' requires (length ' + span + ') Uint8Array as src');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Uint8Array');\n }\n const srcBuffer = uint8ArrayToBuffer(src);\n uint8ArrayToBuffer(b).write(srcBuffer.toString('hex'), offset, span, 'hex');\n if (this.length instanceof ExternalLayout) {\n this.length.encode(span, b, offset);\n }\n return span;\n }\n}\nexports.Blob = Blob;\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass CString extends Layout {\n constructor(property) {\n super(-1, property);\n }\n /** @override */\n getSpan(b, offset = 0) {\n checkUint8Array(b);\n let idx = offset;\n while ((idx < b.length) && (0 !== b[idx])) {\n idx += 1;\n }\n return 1 + idx - offset;\n }\n /** @override */\n decode(b, offset = 0) {\n const span = this.getSpan(b, offset);\n return uint8ArrayToBuffer(b).slice(offset, offset + span - 1).toString('utf-8');\n }\n /** @override */\n encode(src, b, offset = 0) {\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = String(src);\n }\n const srcb = buffer_1.Buffer.from(src, 'utf8');\n const span = srcb.length;\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n const buffer = uint8ArrayToBuffer(b);\n srcb.copy(buffer, offset);\n buffer[offset + span] = 0;\n return span + 1;\n }\n}\nexports.CString = CString;\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UTF8 extends Layout {\n constructor(maxSpan, property) {\n if (('string' === typeof maxSpan) && (undefined === property)) {\n property = maxSpan;\n maxSpan = undefined;\n }\n if (undefined === maxSpan) {\n maxSpan = -1;\n }\n else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n super(-1, property);\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n this.maxSpan = maxSpan;\n }\n /** @override */\n getSpan(b, offset = 0) {\n checkUint8Array(b);\n return b.length - offset;\n }\n /** @override */\n decode(b, offset = 0) {\n const span = this.getSpan(b, offset);\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n return uint8ArrayToBuffer(b).slice(offset, offset + span).toString('utf-8');\n }\n /** @override */\n encode(src, b, offset = 0) {\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = String(src);\n }\n const srcb = buffer_1.Buffer.from(src, 'utf8');\n const span = srcb.length;\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(uint8ArrayToBuffer(b), offset);\n return span;\n }\n}\nexports.UTF8 = UTF8;\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Constant extends Layout {\n constructor(value, property) {\n super(0, property);\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n this.value = value;\n }\n /** @override */\n decode(b, offset) {\n return this.value;\n }\n /** @override */\n encode(src, b, offset) {\n /* Constants take no space */\n return 0;\n }\n}\nexports.Constant = Constant;\n/** Factory for {@link GreedyCount}. */\nexports.greedy = ((elementSpan, property) => new GreedyCount(elementSpan, property));\n/** Factory for {@link OffsetLayout}. */\nexports.offset = ((layout, offset, property) => new OffsetLayout(layout, offset, property));\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\nexports.u8 = ((property) => new UInt(1, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16 = ((property) => new UInt(2, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24 = ((property) => new UInt(3, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32 = ((property) => new UInt(4, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40 = ((property) => new UInt(5, property));\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48 = ((property) => new UInt(6, property));\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64 = ((property) => new NearUInt64(property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16be = ((property) => new UIntBE(2, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24be = ((property) => new UIntBE(3, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32be = ((property) => new UIntBE(4, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40be = ((property) => new UIntBE(5, property));\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48be = ((property) => new UIntBE(6, property));\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64be = ((property) => new NearUInt64BE(property));\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\nexports.s8 = ((property) => new Int(1, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\nexports.s16 = ((property) => new Int(2, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\nexports.s24 = ((property) => new Int(3, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\nexports.s32 = ((property) => new Int(4, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\nexports.s40 = ((property) => new Int(5, property));\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\nexports.s48 = ((property) => new Int(6, property));\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64 = ((property) => new NearInt64(property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\nexports.s16be = ((property) => new IntBE(2, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\nexports.s24be = ((property) => new IntBE(3, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\nexports.s32be = ((property) => new IntBE(4, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\nexports.s40be = ((property) => new IntBE(5, property));\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\nexports.s48be = ((property) => new IntBE(6, property));\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64be = ((property) => new NearInt64BE(property));\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\nexports.f32 = ((property) => new Float(property));\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\nexports.f32be = ((property) => new FloatBE(property));\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\nexports.f64 = ((property) => new Double(property));\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\nexports.f64be = ((property) => new DoubleBE(property));\n/** Factory for {@link Structure} values. */\nexports.struct = ((fields, property, decodePrefixes) => new Structure(fields, property, decodePrefixes));\n/** Factory for {@link BitStructure} values. */\nexports.bits = ((word, msb, property) => new BitStructure(word, msb, property));\n/** Factory for {@link Sequence} values. */\nexports.seq = ((elementLayout, count, property) => new Sequence(elementLayout, count, property));\n/** Factory for {@link Union} values. */\nexports.union = ((discr, defaultLayout, property) => new Union(discr, defaultLayout, property));\n/** Factory for {@link UnionLayoutDiscriminator} values. */\nexports.unionLayoutDiscriminator = ((layout, property) => new UnionLayoutDiscriminator(layout, property));\n/** Factory for {@link Blob} values. */\nexports.blob = ((length, property) => new Blob(length, property));\n/** Factory for {@link CString} values. */\nexports.cstr = ((property) => new CString(property));\n/** Factory for {@link UTF8} values. */\nexports.utf8 = ((maxSpan, property) => new UTF8(maxSpan, property));\n/** Factory for {@link Constant} values. */\nexports.constant = ((value, property) => new Constant(value, property));\n//# sourceMappingURL=Layout.js.map","/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport * as nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst endo = {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar(k) {\n const { n } = CURVE;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000');\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n};\nconst fieldLen = 32;\nconst groupLen = 32;\nconst hashLen = 32;\nconst compressedLen = fieldLen + 1;\nconst uncompressedLen = 2 * fieldLen + 1;\nexport { CURVE };\nfunction weierstrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nfunction assertJacPoint(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n if (p.equals(Point.ZERO))\n return JacobianPoint.ZERO;\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.BASE;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1;\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n k1p = constTimeNegate(k1neg, k1p);\n k2p = constTimeNegate(k2neg, k2p);\n k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ) {\n const { x, y, z } = this;\n const is0 = this.equals(JacobianPoint.ZERO);\n if (invZ == null)\n invZ = is0 ? _8n : invert(z);\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (is0)\n return Point.ZERO;\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nconst pointPrecomputes = new WeakMap();\nexport class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, fieldLen + 1));\n const y = bytesToNumber(bytes.subarray(fieldLen + 1, fieldLen * 2 + 1));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === fieldLen)\n return this.fromCompressedHex(bytes);\n if (len === compressedLen && (header === 0x02 || header === 0x03)) {\n return this.fromCompressedHex(bytes);\n }\n if (len === uncompressedLen && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n const { r, s } = normalizeSignature(signature);\n if (![0, 1, 2, 3].includes(recovery))\n throw new Error('Cannot recover: invalid recovery bit');\n const h = truncateHash(ensureBytes(msgHash));\n const { n } = CURVE;\n const radj = recovery === 2 || recovery === 3 ? r + n : r;\n const rinv = invert(radj, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(radj));\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weierstrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nexport class Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, mod(-this.s, CURVE.n)) : this;\n }\n toDERRawBytes() {\n return hexToBytes(this.toDERHex());\n }\n toDERHex() {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const sHexL = sHex.length / 2;\n const rHexL = rHex.length / 2;\n const sLen = numberToHexUnpadded(sHexL);\n const rLen = numberToHexUnpadded(rHexL);\n const length = numberToHexUnpadded(rHexL + sHexL + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number 0 <= n < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n const rt = pow2(t2, _2n);\n const xc = (rt * rt) % P;\n if (xc !== x)\n throw new Error('Cannot find square root');\n return rt;\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nfunction bits2int_2(bytes) {\n const delta = bytes.length * 8 - groupLen * 8;\n const num = bytesToNumber(bytes);\n return delta > 0 ? num >> BigInt(delta) : num;\n}\nfunction truncateHash(hash, truncateOnly = false) {\n const h = bits2int_2(hash);\n if (truncateOnly)\n return h;\n const { n } = CURVE;\n return h >= n ? h - n : h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor(hashLen, qByteLen) {\n this.hashLen = hashLen;\n this.qByteLen = qByteLen;\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n this.v = new Uint8Array(hashLen).fill(1);\n this.k = new Uint8Array(hashLen).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = await this.hmac(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n generateSync() {\n this.checkSync();\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = this.hmacSync(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d, lowS = true) {\n const { n } = CURVE;\n const k = truncateHash(kBytes, true);\n if (!isWithinCurveOrder(k))\n return;\n const kinv = invert(k, n);\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(kinv * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n let sig = new Signature(r, s);\n let recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n if (lowS && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 2 * groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nexport function getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexport function recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === compressedLen * 2 || len === uncompressedLen * 2;\n if (item instanceof Point)\n return true;\n return false;\n}\nexport function getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nfunction bits2int(bytes) {\n const slice = bytes.length > fieldLen ? bytes.slice(0, fieldLen) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = utils.randomBytes(fieldLen);\n const e = ensureBytes(extraEntropy);\n if (e.length !== fieldLen)\n throw new Error(`sign: Expected ${fieldLen} bytes of extra data`);\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n const { sig, recovery } = recSig;\n const { der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n await drbg.reseed(seed);\n let sig;\n while (!(sig = kmdToSig(await drbg.generate(), m, d, opts.canonical)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n drbg.reseedSync(seed);\n let sig;\n while (!(sig = kmdToSig(drbg.generateSync(), m, d, opts.canonical)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexport { sign, signSync };\nconst vopts = { strict: true };\nexport function verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexport const schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexport const utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n const minLen = groupLen + 8;\n if (hash.length < minLen || hash.length > 1024) {\n throw new Error(`Expected valid bytes of private key as per FIPS 186`);\n }\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => utils.hashToPrivateKey(utils.randomBytes(groupLen + 8)),\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n _JacobianPoint: JacobianPoint,\n};\nObject.defineProperties(utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n","import { Buffer } from 'buffer';\nimport { sha512 } from '@noble/hashes/sha512';\nimport * as ed25519 from '@noble/ed25519';\nimport BN from 'bn.js';\nimport bs58 from 'bs58';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { serialize, deserialize, deserializeUnchecked } from 'borsh';\nimport * as BufferLayout from '@solana/buffer-layout';\nimport { blob } from '@solana/buffer-layout';\nimport { toBigIntLE, toBufferLE } from 'bigint-buffer';\nimport { coerce, instance, string, tuple, literal, unknown, type, number, array, nullable, optional, boolean, record, union, create, any, assert as assert$1 } from 'superstruct';\nimport RpcClient from 'jayson/lib/client/browser';\nimport RpcWebSocketCommonClient from 'rpc-websockets/dist/lib/client';\nimport createRpc from 'rpc-websockets/dist/lib/client/websocket.browser';\nimport { keccak_256 } from '@noble/hashes/sha3';\nimport { hmac } from '@noble/hashes/hmac';\nimport * as secp256k1 from '@noble/secp256k1';\n\n/**\n * A 64 byte secret key, the first 32 bytes of which is the\n * private scalar and the last 32 bytes is the public key.\n * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n\ned25519.utils.sha512Sync = (...m) => sha512(ed25519.utils.concatBytes(...m));\n\nconst generatePrivateKey = ed25519.utils.randomPrivateKey;\nconst generateKeypair = () => {\n const privateScalar = ed25519.utils.randomPrivateKey();\n const publicKey = getPublicKey(privateScalar);\n const secretKey = new Uint8Array(64);\n secretKey.set(privateScalar);\n secretKey.set(publicKey, 32);\n return {\n publicKey,\n secretKey\n };\n};\nconst getPublicKey = ed25519.sync.getPublicKey;\nfunction isOnCurve(publicKey) {\n try {\n ed25519.Point.fromHex(publicKey, true\n /* strict */\n );\n return true;\n } catch {\n return false;\n }\n}\nconst sign = (message, secretKey) => ed25519.sync.sign(message, secretKey.slice(0, 32));\nconst verify = ed25519.sync.verify;\n\nconst toBuffer = arr => {\n if (Buffer.isBuffer(arr)) {\n return arr;\n } else if (arr instanceof Uint8Array) {\n return Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength);\n } else {\n return Buffer.from(arr);\n }\n};\n\nclass Struct {\n constructor(properties) {\n Object.assign(this, properties);\n }\n\n encode() {\n return Buffer.from(serialize(SOLANA_SCHEMA, this));\n }\n\n static decode(data) {\n return deserialize(SOLANA_SCHEMA, this, data);\n }\n\n static decodeUnchecked(data) {\n return deserializeUnchecked(SOLANA_SCHEMA, this, data);\n }\n\n} // Class representing a Rust-compatible enum, since enums are only strings or\n// numbers in pure JS\n\nclass Enum extends Struct {\n constructor(properties) {\n super(properties);\n this.enum = '';\n\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n\n Object.keys(properties).map(key => {\n this.enum = key;\n });\n }\n\n}\nconst SOLANA_SCHEMA = new Map();\n\nlet _Symbol$toStringTag;\n/**\n * Maximum length of derived pubkey seed\n */\n\nconst MAX_SEED_LENGTH = 32;\n/**\n * Size of public key in bytes\n */\n\nconst PUBLIC_KEY_LENGTH = 32;\n/**\n * Value to be converted into public key\n */\n\nfunction isPublicKeyData(value) {\n return value._bn !== undefined;\n} // local counter used by PublicKey.unique()\n\n\nlet uniquePublicKeyCounter = 1;\n/**\n * A public key\n */\n\n_Symbol$toStringTag = Symbol.toStringTag;\nclass PublicKey extends Struct {\n /** @internal */\n\n /**\n * Create a new PublicKey object\n * @param value ed25519 public key as buffer or base-58 encoded string\n */\n constructor(value) {\n super({});\n this._bn = void 0;\n\n if (isPublicKeyData(value)) {\n this._bn = value._bn;\n } else {\n if (typeof value === 'string') {\n // assume base 58 encoding by default\n const decoded = bs58.decode(value);\n\n if (decoded.length != PUBLIC_KEY_LENGTH) {\n throw new Error(`Invalid public key input`);\n }\n\n this._bn = new BN(decoded);\n } else {\n this._bn = new BN(value);\n }\n\n if (this._bn.byteLength() > PUBLIC_KEY_LENGTH) {\n throw new Error(`Invalid public key input`);\n }\n }\n }\n /**\n * Returns a unique PublicKey for tests and benchmarks using a counter\n */\n\n\n static unique() {\n const key = new PublicKey(uniquePublicKeyCounter);\n uniquePublicKeyCounter += 1;\n return new PublicKey(key.toBuffer());\n }\n /**\n * Default public key value. The base58-encoded string representation is all ones (as seen below)\n * The underlying BN number is 32 bytes that are all zeros\n */\n\n\n /**\n * Checks if two publicKeys are equal\n */\n equals(publicKey) {\n return this._bn.eq(publicKey._bn);\n }\n /**\n * Return the base-58 representation of the public key\n */\n\n\n toBase58() {\n return bs58.encode(this.toBytes());\n }\n\n toJSON() {\n return this.toBase58();\n }\n /**\n * Return the byte array representation of the public key in big endian\n */\n\n\n toBytes() {\n const buf = this.toBuffer();\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Return the Buffer representation of the public key in big endian\n */\n\n\n toBuffer() {\n const b = this._bn.toArrayLike(Buffer);\n\n if (b.length === PUBLIC_KEY_LENGTH) {\n return b;\n }\n\n const zeroPad = Buffer.alloc(32);\n b.copy(zeroPad, 32 - b.length);\n return zeroPad;\n }\n\n get [_Symbol$toStringTag]() {\n return `PublicKey(${this.toString()})`;\n }\n /**\n * Return the base-58 representation of the public key\n */\n\n\n toString() {\n return this.toBase58();\n }\n /**\n * Derive a public key from another key, a seed, and a program ID.\n * The program ID will also serve as the owner of the public key, giving\n * it permission to write data to the account.\n */\n\n /* eslint-disable require-await */\n\n\n static async createWithSeed(fromPublicKey, seed, programId) {\n const buffer = Buffer.concat([fromPublicKey.toBuffer(), Buffer.from(seed), programId.toBuffer()]);\n const publicKeyBytes = sha256(buffer);\n return new PublicKey(publicKeyBytes);\n }\n /**\n * Derive a program address from seeds and a program ID.\n */\n\n /* eslint-disable require-await */\n\n\n static createProgramAddressSync(seeds, programId) {\n let buffer = Buffer.alloc(0);\n seeds.forEach(function (seed) {\n if (seed.length > MAX_SEED_LENGTH) {\n throw new TypeError(`Max seed length exceeded`);\n }\n\n buffer = Buffer.concat([buffer, toBuffer(seed)]);\n });\n buffer = Buffer.concat([buffer, programId.toBuffer(), Buffer.from('ProgramDerivedAddress')]);\n const publicKeyBytes = sha256(buffer);\n\n if (isOnCurve(publicKeyBytes)) {\n throw new Error(`Invalid seeds, address must fall off the curve`);\n }\n\n return new PublicKey(publicKeyBytes);\n }\n /**\n * Async version of createProgramAddressSync\n * For backwards compatibility\n *\n * @deprecated Use {@link createProgramAddressSync} instead\n */\n\n /* eslint-disable require-await */\n\n\n static async createProgramAddress(seeds, programId) {\n return this.createProgramAddressSync(seeds, programId);\n }\n /**\n * Find a valid program address\n *\n * Valid program addresses must fall off the ed25519 curve. This function\n * iterates a nonce until it finds one that when combined with the seeds\n * results in a valid program address.\n */\n\n\n static findProgramAddressSync(seeds, programId) {\n let nonce = 255;\n let address;\n\n while (nonce != 0) {\n try {\n const seedsWithNonce = seeds.concat(Buffer.from([nonce]));\n address = this.createProgramAddressSync(seedsWithNonce, programId);\n } catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n\n nonce--;\n continue;\n }\n\n return [address, nonce];\n }\n\n throw new Error(`Unable to find a viable program address nonce`);\n }\n /**\n * Async version of findProgramAddressSync\n * For backwards compatibility\n *\n * @deprecated Use {@link findProgramAddressSync} instead\n */\n\n\n static async findProgramAddress(seeds, programId) {\n return this.findProgramAddressSync(seeds, programId);\n }\n /**\n * Check that a pubkey is on the ed25519 curve.\n */\n\n\n static isOnCurve(pubkeyData) {\n const pubkey = new PublicKey(pubkeyData);\n return isOnCurve(pubkey.toBytes());\n }\n\n}\nPublicKey.default = new PublicKey('11111111111111111111111111111111');\nSOLANA_SCHEMA.set(PublicKey, {\n kind: 'struct',\n fields: [['_bn', 'u256']]\n});\n\n/**\n * An account key pair (public and secret keys).\n *\n * @deprecated since v1.10.0, please use {@link Keypair} instead.\n */\n\nclass Account {\n /** @internal */\n\n /** @internal */\n\n /**\n * Create a new Account object\n *\n * If the secretKey parameter is not provided a new key pair is randomly\n * created for the account\n *\n * @param secretKey Secret key for the account\n */\n constructor(secretKey) {\n this._publicKey = void 0;\n this._secretKey = void 0;\n\n if (secretKey) {\n const secretKeyBuffer = toBuffer(secretKey);\n\n if (secretKey.length !== 64) {\n throw new Error('bad secret key size');\n }\n\n this._publicKey = secretKeyBuffer.slice(32, 64);\n this._secretKey = secretKeyBuffer.slice(0, 32);\n } else {\n this._secretKey = toBuffer(generatePrivateKey());\n this._publicKey = toBuffer(getPublicKey(this._secretKey));\n }\n }\n /**\n * The public key for this account\n */\n\n\n get publicKey() {\n return new PublicKey(this._publicKey);\n }\n /**\n * The **unencrypted** secret key for this account. The first 32 bytes\n * is the private scalar and the last 32 bytes is the public key.\n * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\n\n\n get secretKey() {\n return Buffer.concat([this._secretKey, this._publicKey], 64);\n }\n\n}\n\nconst BPF_LOADER_DEPRECATED_PROGRAM_ID = new PublicKey('BPFLoader1111111111111111111111111111111111');\n\n/**\n * Maximum over-the-wire size of a Transaction\n *\n * 1280 is IPv6 minimum MTU\n * 40 bytes is the size of the IPv6 header\n * 8 bytes is the size of the fragment header\n */\nconst PACKET_DATA_SIZE = 1280 - 40 - 8;\nconst VERSION_PREFIX_MASK = 0x7f;\nconst SIGNATURE_LENGTH_IN_BYTES = 64;\n\nclass TransactionExpiredBlockheightExceededError extends Error {\n constructor(signature) {\n super(`Signature ${signature} has expired: block height exceeded.`);\n this.signature = void 0;\n this.signature = signature;\n }\n\n}\nObject.defineProperty(TransactionExpiredBlockheightExceededError.prototype, 'name', {\n value: 'TransactionExpiredBlockheightExceededError'\n});\nclass TransactionExpiredTimeoutError extends Error {\n constructor(signature, timeoutSeconds) {\n super(`Transaction was not confirmed in ${timeoutSeconds.toFixed(2)} seconds. It is ` + 'unknown if it succeeded or failed. Check signature ' + `${signature} using the Solana Explorer or CLI tools.`);\n this.signature = void 0;\n this.signature = signature;\n }\n\n}\nObject.defineProperty(TransactionExpiredTimeoutError.prototype, 'name', {\n value: 'TransactionExpiredTimeoutError'\n});\nclass TransactionExpiredNonceInvalidError extends Error {\n constructor(signature) {\n super(`Signature ${signature} has expired: the nonce is no longer valid.`);\n this.signature = void 0;\n this.signature = signature;\n }\n\n}\nObject.defineProperty(TransactionExpiredNonceInvalidError.prototype, 'name', {\n value: 'TransactionExpiredNonceInvalidError'\n});\n\nclass MessageAccountKeys {\n constructor(staticAccountKeys, accountKeysFromLookups) {\n this.staticAccountKeys = void 0;\n this.accountKeysFromLookups = void 0;\n this.staticAccountKeys = staticAccountKeys;\n this.accountKeysFromLookups = accountKeysFromLookups;\n }\n\n keySegments() {\n const keySegments = [this.staticAccountKeys];\n\n if (this.accountKeysFromLookups) {\n keySegments.push(this.accountKeysFromLookups.writable);\n keySegments.push(this.accountKeysFromLookups.readonly);\n }\n\n return keySegments;\n }\n\n get(index) {\n for (const keySegment of this.keySegments()) {\n if (index < keySegment.length) {\n return keySegment[index];\n } else {\n index -= keySegment.length;\n }\n }\n\n return;\n }\n\n get length() {\n return this.keySegments().flat().length;\n }\n\n compileInstructions(instructions) {\n // Bail early if any account indexes would overflow a u8\n const U8_MAX = 255;\n\n if (this.length > U8_MAX + 1) {\n throw new Error('Account index overflow encountered during compilation');\n }\n\n const keyIndexMap = new Map();\n this.keySegments().flat().forEach((key, index) => {\n keyIndexMap.set(key.toBase58(), index);\n });\n\n const findKeyIndex = key => {\n const keyIndex = keyIndexMap.get(key.toBase58());\n if (keyIndex === undefined) throw new Error('Encountered an unknown instruction account key during compilation');\n return keyIndex;\n };\n\n return instructions.map(instruction => {\n return {\n programIdIndex: findKeyIndex(instruction.programId),\n accountKeyIndexes: instruction.keys.map(meta => findKeyIndex(meta.pubkey)),\n data: instruction.data\n };\n });\n }\n\n}\n\n/**\n * Layout for a public key\n */\nconst publicKey = (property = 'publicKey') => {\n return BufferLayout.blob(32, property);\n};\n/**\n * Layout for a signature\n */\n\nconst signature = (property = 'signature') => {\n return BufferLayout.blob(64, property);\n};\n\n/**\n * Layout for a Rust String type\n */\nconst rustString = (property = 'string') => {\n const rsl = BufferLayout.struct([BufferLayout.u32('length'), BufferLayout.u32('lengthPadding'), BufferLayout.blob(BufferLayout.offset(BufferLayout.u32(), -8), 'chars')], property);\n\n const _decode = rsl.decode.bind(rsl);\n\n const _encode = rsl.encode.bind(rsl);\n\n const rslShim = rsl;\n\n rslShim.decode = (b, offset) => {\n const data = _decode(b, offset);\n\n return data['chars'].toString();\n };\n\n rslShim.encode = (str, b, offset) => {\n const data = {\n chars: Buffer.from(str, 'utf8')\n };\n return _encode(data, b, offset);\n };\n\n rslShim.alloc = str => {\n return BufferLayout.u32().span + BufferLayout.u32().span + Buffer.from(str, 'utf8').length;\n };\n\n return rslShim;\n};\n/**\n * Layout for an Authorized object\n */\n\nconst authorized = (property = 'authorized') => {\n return BufferLayout.struct([publicKey('staker'), publicKey('withdrawer')], property);\n};\n/**\n * Layout for a Lockup object\n */\n\nconst lockup = (property = 'lockup') => {\n return BufferLayout.struct([BufferLayout.ns64('unixTimestamp'), BufferLayout.ns64('epoch'), publicKey('custodian')], property);\n};\n/**\n * Layout for a VoteInit object\n */\n\nconst voteInit = (property = 'voteInit') => {\n return BufferLayout.struct([publicKey('nodePubkey'), publicKey('authorizedVoter'), publicKey('authorizedWithdrawer'), BufferLayout.u8('commission')], property);\n};\n/**\n * Layout for a VoteAuthorizeWithSeedArgs object\n */\n\nconst voteAuthorizeWithSeedArgs = (property = 'voteAuthorizeWithSeedArgs') => {\n return BufferLayout.struct([BufferLayout.u32('voteAuthorizationType'), publicKey('currentAuthorityDerivedKeyOwnerPubkey'), rustString('currentAuthorityDerivedKeySeed'), publicKey('newAuthorized')], property);\n};\nfunction getAlloc(type, fields) {\n const getItemAlloc = item => {\n if (item.span >= 0) {\n return item.span;\n } else if (typeof item.alloc === 'function') {\n return item.alloc(fields[item.property]);\n } else if ('count' in item && 'elementLayout' in item) {\n const field = fields[item.property];\n\n if (Array.isArray(field)) {\n return field.length * getItemAlloc(item.elementLayout);\n }\n } else if ('fields' in item) {\n // This is a `Structure` whose size needs to be recursively measured.\n return getAlloc({\n layout: item\n }, fields[item.property]);\n } // Couldn't determine allocated size of layout\n\n\n return 0;\n };\n\n let alloc = 0;\n type.layout.fields.forEach(item => {\n alloc += getItemAlloc(item);\n });\n return alloc;\n}\n\nfunction decodeLength(bytes) {\n let len = 0;\n let size = 0;\n\n for (;;) {\n let elem = bytes.shift();\n len |= (elem & 0x7f) << size * 7;\n size += 1;\n\n if ((elem & 0x80) === 0) {\n break;\n }\n }\n\n return len;\n}\nfunction encodeLength(bytes, len) {\n let rem_len = len;\n\n for (;;) {\n let elem = rem_len & 0x7f;\n rem_len >>= 7;\n\n if (rem_len == 0) {\n bytes.push(elem);\n break;\n } else {\n elem |= 0x80;\n bytes.push(elem);\n }\n }\n}\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error(message || 'Assertion failed');\n }\n}\n\nclass CompiledKeys {\n constructor(payer, keyMetaMap) {\n this.payer = void 0;\n this.keyMetaMap = void 0;\n this.payer = payer;\n this.keyMetaMap = keyMetaMap;\n }\n\n static compile(instructions, payer) {\n const keyMetaMap = new Map();\n\n const getOrInsertDefault = pubkey => {\n const address = pubkey.toBase58();\n let keyMeta = keyMetaMap.get(address);\n\n if (keyMeta === undefined) {\n keyMeta = {\n isSigner: false,\n isWritable: false,\n isInvoked: false\n };\n keyMetaMap.set(address, keyMeta);\n }\n\n return keyMeta;\n };\n\n const payerKeyMeta = getOrInsertDefault(payer);\n payerKeyMeta.isSigner = true;\n payerKeyMeta.isWritable = true;\n\n for (const ix of instructions) {\n getOrInsertDefault(ix.programId).isInvoked = true;\n\n for (const accountMeta of ix.keys) {\n const keyMeta = getOrInsertDefault(accountMeta.pubkey);\n keyMeta.isSigner || (keyMeta.isSigner = accountMeta.isSigner);\n keyMeta.isWritable || (keyMeta.isWritable = accountMeta.isWritable);\n }\n }\n\n return new CompiledKeys(payer, keyMetaMap);\n }\n\n getMessageComponents() {\n const mapEntries = [...this.keyMetaMap.entries()];\n assert(mapEntries.length <= 256, 'Max static account keys length exceeded');\n const writableSigners = mapEntries.filter(([, meta]) => meta.isSigner && meta.isWritable);\n const readonlySigners = mapEntries.filter(([, meta]) => meta.isSigner && !meta.isWritable);\n const writableNonSigners = mapEntries.filter(([, meta]) => !meta.isSigner && meta.isWritable);\n const readonlyNonSigners = mapEntries.filter(([, meta]) => !meta.isSigner && !meta.isWritable);\n const header = {\n numRequiredSignatures: writableSigners.length + readonlySigners.length,\n numReadonlySignedAccounts: readonlySigners.length,\n numReadonlyUnsignedAccounts: readonlyNonSigners.length\n }; // sanity checks\n\n {\n assert(writableSigners.length > 0, 'Expected at least one writable signer key');\n const [payerAddress] = writableSigners[0];\n assert(payerAddress === this.payer.toBase58(), 'Expected first writable signer key to be the fee payer');\n }\n const staticAccountKeys = [...writableSigners.map(([address]) => new PublicKey(address)), ...readonlySigners.map(([address]) => new PublicKey(address)), ...writableNonSigners.map(([address]) => new PublicKey(address)), ...readonlyNonSigners.map(([address]) => new PublicKey(address))];\n return [header, staticAccountKeys];\n }\n\n extractTableLookup(lookupTable) {\n const [writableIndexes, drainedWritableKeys] = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, keyMeta => !keyMeta.isSigner && !keyMeta.isInvoked && keyMeta.isWritable);\n const [readonlyIndexes, drainedReadonlyKeys] = this.drainKeysFoundInLookupTable(lookupTable.state.addresses, keyMeta => !keyMeta.isSigner && !keyMeta.isInvoked && !keyMeta.isWritable); // Don't extract lookup if no keys were found\n\n if (writableIndexes.length === 0 && readonlyIndexes.length === 0) {\n return;\n }\n\n return [{\n accountKey: lookupTable.key,\n writableIndexes,\n readonlyIndexes\n }, {\n writable: drainedWritableKeys,\n readonly: drainedReadonlyKeys\n }];\n }\n /** @internal */\n\n\n drainKeysFoundInLookupTable(lookupTableEntries, keyMetaFilter) {\n const lookupTableIndexes = new Array();\n const drainedKeys = new Array();\n\n for (const [address, keyMeta] of this.keyMetaMap.entries()) {\n if (keyMetaFilter(keyMeta)) {\n const key = new PublicKey(address);\n const lookupTableIndex = lookupTableEntries.findIndex(entry => entry.equals(key));\n\n if (lookupTableIndex >= 0) {\n assert(lookupTableIndex < 256, 'Max lookup table index exceeded');\n lookupTableIndexes.push(lookupTableIndex);\n drainedKeys.push(key);\n this.keyMetaMap.delete(address);\n }\n }\n }\n\n return [lookupTableIndexes, drainedKeys];\n }\n\n}\n\n/**\n * An instruction to execute by a program\n *\n * @property {number} programIdIndex\n * @property {number[]} accounts\n * @property {string} data\n */\n\n/**\n * List of instructions to be processed atomically\n */\nclass Message {\n constructor(args) {\n this.header = void 0;\n this.accountKeys = void 0;\n this.recentBlockhash = void 0;\n this.instructions = void 0;\n this.indexToProgramIds = new Map();\n this.header = args.header;\n this.accountKeys = args.accountKeys.map(account => new PublicKey(account));\n this.recentBlockhash = args.recentBlockhash;\n this.instructions = args.instructions;\n this.instructions.forEach(ix => this.indexToProgramIds.set(ix.programIdIndex, this.accountKeys[ix.programIdIndex]));\n }\n\n get version() {\n return 'legacy';\n }\n\n get staticAccountKeys() {\n return this.accountKeys;\n }\n\n get compiledInstructions() {\n return this.instructions.map(ix => ({\n programIdIndex: ix.programIdIndex,\n accountKeyIndexes: ix.accounts,\n data: bs58.decode(ix.data)\n }));\n }\n\n get addressTableLookups() {\n return [];\n }\n\n getAccountKeys() {\n return new MessageAccountKeys(this.staticAccountKeys);\n }\n\n static compile(args) {\n const compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n const [header, staticAccountKeys] = compiledKeys.getMessageComponents();\n const accountKeys = new MessageAccountKeys(staticAccountKeys);\n const instructions = accountKeys.compileInstructions(args.instructions).map(ix => ({\n programIdIndex: ix.programIdIndex,\n accounts: ix.accountKeyIndexes,\n data: bs58.encode(ix.data)\n }));\n return new Message({\n header,\n accountKeys: staticAccountKeys,\n recentBlockhash: args.recentBlockhash,\n instructions\n });\n }\n\n isAccountSigner(index) {\n return index < this.header.numRequiredSignatures;\n }\n\n isAccountWritable(index) {\n const numSignedAccounts = this.header.numRequiredSignatures;\n\n if (index >= this.header.numRequiredSignatures) {\n const unsignedAccountIndex = index - numSignedAccounts;\n const numUnsignedAccounts = this.accountKeys.length - numSignedAccounts;\n const numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n return unsignedAccountIndex < numWritableUnsignedAccounts;\n } else {\n const numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts;\n return index < numWritableSignedAccounts;\n }\n }\n\n isProgramId(index) {\n return this.indexToProgramIds.has(index);\n }\n\n programIds() {\n return [...this.indexToProgramIds.values()];\n }\n\n nonProgramIds() {\n return this.accountKeys.filter((_, index) => !this.isProgramId(index));\n }\n\n serialize() {\n const numKeys = this.accountKeys.length;\n let keyCount = [];\n encodeLength(keyCount, numKeys);\n const instructions = this.instructions.map(instruction => {\n const {\n accounts,\n programIdIndex\n } = instruction;\n const data = Array.from(bs58.decode(instruction.data));\n let keyIndicesCount = [];\n encodeLength(keyIndicesCount, accounts.length);\n let dataCount = [];\n encodeLength(dataCount, data.length);\n return {\n programIdIndex,\n keyIndicesCount: Buffer.from(keyIndicesCount),\n keyIndices: accounts,\n dataLength: Buffer.from(dataCount),\n data\n };\n });\n let instructionCount = [];\n encodeLength(instructionCount, instructions.length);\n let instructionBuffer = Buffer.alloc(PACKET_DATA_SIZE);\n Buffer.from(instructionCount).copy(instructionBuffer);\n let instructionBufferLength = instructionCount.length;\n instructions.forEach(instruction => {\n const instructionLayout = BufferLayout.struct([BufferLayout.u8('programIdIndex'), BufferLayout.blob(instruction.keyIndicesCount.length, 'keyIndicesCount'), BufferLayout.seq(BufferLayout.u8('keyIndex'), instruction.keyIndices.length, 'keyIndices'), BufferLayout.blob(instruction.dataLength.length, 'dataLength'), BufferLayout.seq(BufferLayout.u8('userdatum'), instruction.data.length, 'data')]);\n const length = instructionLayout.encode(instruction, instructionBuffer, instructionBufferLength);\n instructionBufferLength += length;\n });\n instructionBuffer = instructionBuffer.slice(0, instructionBufferLength);\n const signDataLayout = BufferLayout.struct([BufferLayout.blob(1, 'numRequiredSignatures'), BufferLayout.blob(1, 'numReadonlySignedAccounts'), BufferLayout.blob(1, 'numReadonlyUnsignedAccounts'), BufferLayout.blob(keyCount.length, 'keyCount'), BufferLayout.seq(publicKey('key'), numKeys, 'keys'), publicKey('recentBlockhash')]);\n const transaction = {\n numRequiredSignatures: Buffer.from([this.header.numRequiredSignatures]),\n numReadonlySignedAccounts: Buffer.from([this.header.numReadonlySignedAccounts]),\n numReadonlyUnsignedAccounts: Buffer.from([this.header.numReadonlyUnsignedAccounts]),\n keyCount: Buffer.from(keyCount),\n keys: this.accountKeys.map(key => toBuffer(key.toBytes())),\n recentBlockhash: bs58.decode(this.recentBlockhash)\n };\n let signData = Buffer.alloc(2048);\n const length = signDataLayout.encode(transaction, signData);\n instructionBuffer.copy(signData, length);\n return signData.slice(0, length + instructionBuffer.length);\n }\n /**\n * Decode a compiled message into a Message object.\n */\n\n\n static from(buffer) {\n // Slice up wire data\n let byteArray = [...buffer];\n const numRequiredSignatures = byteArray.shift();\n\n if (numRequiredSignatures !== (numRequiredSignatures & VERSION_PREFIX_MASK)) {\n throw new Error('Versioned messages must be deserialized with VersionedMessage.deserialize()');\n }\n\n const numReadonlySignedAccounts = byteArray.shift();\n const numReadonlyUnsignedAccounts = byteArray.shift();\n const accountCount = decodeLength(byteArray);\n let accountKeys = [];\n\n for (let i = 0; i < accountCount; i++) {\n const account = byteArray.slice(0, PUBLIC_KEY_LENGTH);\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n accountKeys.push(new PublicKey(Buffer.from(account)));\n }\n\n const recentBlockhash = byteArray.slice(0, PUBLIC_KEY_LENGTH);\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n const instructionCount = decodeLength(byteArray);\n let instructions = [];\n\n for (let i = 0; i < instructionCount; i++) {\n const programIdIndex = byteArray.shift();\n const accountCount = decodeLength(byteArray);\n const accounts = byteArray.slice(0, accountCount);\n byteArray = byteArray.slice(accountCount);\n const dataLength = decodeLength(byteArray);\n const dataSlice = byteArray.slice(0, dataLength);\n const data = bs58.encode(Buffer.from(dataSlice));\n byteArray = byteArray.slice(dataLength);\n instructions.push({\n programIdIndex,\n accounts,\n data\n });\n }\n\n const messageArgs = {\n header: {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts\n },\n recentBlockhash: bs58.encode(Buffer.from(recentBlockhash)),\n accountKeys,\n instructions\n };\n return new Message(messageArgs);\n }\n\n}\n\n/**\n * Message constructor arguments\n */\n\nclass MessageV0 {\n constructor(args) {\n this.header = void 0;\n this.staticAccountKeys = void 0;\n this.recentBlockhash = void 0;\n this.compiledInstructions = void 0;\n this.addressTableLookups = void 0;\n this.header = args.header;\n this.staticAccountKeys = args.staticAccountKeys;\n this.recentBlockhash = args.recentBlockhash;\n this.compiledInstructions = args.compiledInstructions;\n this.addressTableLookups = args.addressTableLookups;\n }\n\n get version() {\n return 0;\n }\n\n get numAccountKeysFromLookups() {\n let count = 0;\n\n for (const lookup of this.addressTableLookups) {\n count += lookup.readonlyIndexes.length + lookup.writableIndexes.length;\n }\n\n return count;\n }\n\n getAccountKeys(args) {\n let accountKeysFromLookups;\n\n if (args && 'accountKeysFromLookups' in args && args.accountKeysFromLookups) {\n if (this.numAccountKeysFromLookups != args.accountKeysFromLookups.writable.length + args.accountKeysFromLookups.readonly.length) {\n throw new Error('Failed to get account keys because of a mismatch in the number of account keys from lookups');\n }\n\n accountKeysFromLookups = args.accountKeysFromLookups;\n } else if (args && 'addressLookupTableAccounts' in args && args.addressLookupTableAccounts) {\n accountKeysFromLookups = this.resolveAddressTableLookups(args.addressLookupTableAccounts);\n } else if (this.addressTableLookups.length > 0) {\n throw new Error('Failed to get account keys because address table lookups were not resolved');\n }\n\n return new MessageAccountKeys(this.staticAccountKeys, accountKeysFromLookups);\n }\n\n isAccountSigner(index) {\n return index < this.header.numRequiredSignatures;\n }\n\n isAccountWritable(index) {\n const numSignedAccounts = this.header.numRequiredSignatures;\n const numStaticAccountKeys = this.staticAccountKeys.length;\n\n if (index >= numStaticAccountKeys) {\n const lookupAccountKeysIndex = index - numStaticAccountKeys;\n const numWritableLookupAccountKeys = this.addressTableLookups.reduce((count, lookup) => count + lookup.writableIndexes.length, 0);\n return lookupAccountKeysIndex < numWritableLookupAccountKeys;\n } else if (index >= this.header.numRequiredSignatures) {\n const unsignedAccountIndex = index - numSignedAccounts;\n const numUnsignedAccounts = numStaticAccountKeys - numSignedAccounts;\n const numWritableUnsignedAccounts = numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n return unsignedAccountIndex < numWritableUnsignedAccounts;\n } else {\n const numWritableSignedAccounts = numSignedAccounts - this.header.numReadonlySignedAccounts;\n return index < numWritableSignedAccounts;\n }\n }\n\n resolveAddressTableLookups(addressLookupTableAccounts) {\n const accountKeysFromLookups = {\n writable: [],\n readonly: []\n };\n\n for (const tableLookup of this.addressTableLookups) {\n const tableAccount = addressLookupTableAccounts.find(account => account.key.equals(tableLookup.accountKey));\n\n if (!tableAccount) {\n throw new Error(`Failed to find address lookup table account for table key ${tableLookup.accountKey.toBase58()}`);\n }\n\n for (const index of tableLookup.writableIndexes) {\n if (index < tableAccount.state.addresses.length) {\n accountKeysFromLookups.writable.push(tableAccount.state.addresses[index]);\n } else {\n throw new Error(`Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`);\n }\n }\n\n for (const index of tableLookup.readonlyIndexes) {\n if (index < tableAccount.state.addresses.length) {\n accountKeysFromLookups.readonly.push(tableAccount.state.addresses[index]);\n } else {\n throw new Error(`Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`);\n }\n }\n }\n\n return accountKeysFromLookups;\n }\n\n static compile(args) {\n const compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n const addressTableLookups = new Array();\n const accountKeysFromLookups = {\n writable: new Array(),\n readonly: new Array()\n };\n const lookupTableAccounts = args.addressLookupTableAccounts || [];\n\n for (const lookupTable of lookupTableAccounts) {\n const extractResult = compiledKeys.extractTableLookup(lookupTable);\n\n if (extractResult !== undefined) {\n const [addressTableLookup, {\n writable,\n readonly\n }] = extractResult;\n addressTableLookups.push(addressTableLookup);\n accountKeysFromLookups.writable.push(...writable);\n accountKeysFromLookups.readonly.push(...readonly);\n }\n }\n\n const [header, staticAccountKeys] = compiledKeys.getMessageComponents();\n const accountKeys = new MessageAccountKeys(staticAccountKeys, accountKeysFromLookups);\n const compiledInstructions = accountKeys.compileInstructions(args.instructions);\n return new MessageV0({\n header,\n staticAccountKeys,\n recentBlockhash: args.recentBlockhash,\n compiledInstructions,\n addressTableLookups\n });\n }\n\n serialize() {\n const encodedStaticAccountKeysLength = Array();\n encodeLength(encodedStaticAccountKeysLength, this.staticAccountKeys.length);\n const serializedInstructions = this.serializeInstructions();\n const encodedInstructionsLength = Array();\n encodeLength(encodedInstructionsLength, this.compiledInstructions.length);\n const serializedAddressTableLookups = this.serializeAddressTableLookups();\n const encodedAddressTableLookupsLength = Array();\n encodeLength(encodedAddressTableLookupsLength, this.addressTableLookups.length);\n const messageLayout = BufferLayout.struct([BufferLayout.u8('prefix'), BufferLayout.struct([BufferLayout.u8('numRequiredSignatures'), BufferLayout.u8('numReadonlySignedAccounts'), BufferLayout.u8('numReadonlyUnsignedAccounts')], 'header'), BufferLayout.blob(encodedStaticAccountKeysLength.length, 'staticAccountKeysLength'), BufferLayout.seq(publicKey(), this.staticAccountKeys.length, 'staticAccountKeys'), publicKey('recentBlockhash'), BufferLayout.blob(encodedInstructionsLength.length, 'instructionsLength'), BufferLayout.blob(serializedInstructions.length, 'serializedInstructions'), BufferLayout.blob(encodedAddressTableLookupsLength.length, 'addressTableLookupsLength'), BufferLayout.blob(serializedAddressTableLookups.length, 'serializedAddressTableLookups')]);\n const serializedMessage = new Uint8Array(PACKET_DATA_SIZE);\n const MESSAGE_VERSION_0_PREFIX = 1 << 7;\n const serializedMessageLength = messageLayout.encode({\n prefix: MESSAGE_VERSION_0_PREFIX,\n header: this.header,\n staticAccountKeysLength: new Uint8Array(encodedStaticAccountKeysLength),\n staticAccountKeys: this.staticAccountKeys.map(key => key.toBytes()),\n recentBlockhash: bs58.decode(this.recentBlockhash),\n instructionsLength: new Uint8Array(encodedInstructionsLength),\n serializedInstructions,\n addressTableLookupsLength: new Uint8Array(encodedAddressTableLookupsLength),\n serializedAddressTableLookups\n }, serializedMessage);\n return serializedMessage.slice(0, serializedMessageLength);\n }\n\n serializeInstructions() {\n let serializedLength = 0;\n const serializedInstructions = new Uint8Array(PACKET_DATA_SIZE);\n\n for (const instruction of this.compiledInstructions) {\n const encodedAccountKeyIndexesLength = Array();\n encodeLength(encodedAccountKeyIndexesLength, instruction.accountKeyIndexes.length);\n const encodedDataLength = Array();\n encodeLength(encodedDataLength, instruction.data.length);\n const instructionLayout = BufferLayout.struct([BufferLayout.u8('programIdIndex'), BufferLayout.blob(encodedAccountKeyIndexesLength.length, 'encodedAccountKeyIndexesLength'), BufferLayout.seq(BufferLayout.u8(), instruction.accountKeyIndexes.length, 'accountKeyIndexes'), BufferLayout.blob(encodedDataLength.length, 'encodedDataLength'), BufferLayout.blob(instruction.data.length, 'data')]);\n serializedLength += instructionLayout.encode({\n programIdIndex: instruction.programIdIndex,\n encodedAccountKeyIndexesLength: new Uint8Array(encodedAccountKeyIndexesLength),\n accountKeyIndexes: instruction.accountKeyIndexes,\n encodedDataLength: new Uint8Array(encodedDataLength),\n data: instruction.data\n }, serializedInstructions, serializedLength);\n }\n\n return serializedInstructions.slice(0, serializedLength);\n }\n\n serializeAddressTableLookups() {\n let serializedLength = 0;\n const serializedAddressTableLookups = new Uint8Array(PACKET_DATA_SIZE);\n\n for (const lookup of this.addressTableLookups) {\n const encodedWritableIndexesLength = Array();\n encodeLength(encodedWritableIndexesLength, lookup.writableIndexes.length);\n const encodedReadonlyIndexesLength = Array();\n encodeLength(encodedReadonlyIndexesLength, lookup.readonlyIndexes.length);\n const addressTableLookupLayout = BufferLayout.struct([publicKey('accountKey'), BufferLayout.blob(encodedWritableIndexesLength.length, 'encodedWritableIndexesLength'), BufferLayout.seq(BufferLayout.u8(), lookup.writableIndexes.length, 'writableIndexes'), BufferLayout.blob(encodedReadonlyIndexesLength.length, 'encodedReadonlyIndexesLength'), BufferLayout.seq(BufferLayout.u8(), lookup.readonlyIndexes.length, 'readonlyIndexes')]);\n serializedLength += addressTableLookupLayout.encode({\n accountKey: lookup.accountKey.toBytes(),\n encodedWritableIndexesLength: new Uint8Array(encodedWritableIndexesLength),\n writableIndexes: lookup.writableIndexes,\n encodedReadonlyIndexesLength: new Uint8Array(encodedReadonlyIndexesLength),\n readonlyIndexes: lookup.readonlyIndexes\n }, serializedAddressTableLookups, serializedLength);\n }\n\n return serializedAddressTableLookups.slice(0, serializedLength);\n }\n\n static deserialize(serializedMessage) {\n let byteArray = [...serializedMessage];\n const prefix = byteArray.shift();\n const maskedPrefix = prefix & VERSION_PREFIX_MASK;\n assert(prefix !== maskedPrefix, `Expected versioned message but received legacy message`);\n const version = maskedPrefix;\n assert(version === 0, `Expected versioned message with version 0 but found version ${version}`);\n const header = {\n numRequiredSignatures: byteArray.shift(),\n numReadonlySignedAccounts: byteArray.shift(),\n numReadonlyUnsignedAccounts: byteArray.shift()\n };\n const staticAccountKeys = [];\n const staticAccountKeysLength = decodeLength(byteArray);\n\n for (let i = 0; i < staticAccountKeysLength; i++) {\n staticAccountKeys.push(new PublicKey(byteArray.splice(0, PUBLIC_KEY_LENGTH)));\n }\n\n const recentBlockhash = bs58.encode(byteArray.splice(0, PUBLIC_KEY_LENGTH));\n const instructionCount = decodeLength(byteArray);\n const compiledInstructions = [];\n\n for (let i = 0; i < instructionCount; i++) {\n const programIdIndex = byteArray.shift();\n const accountKeyIndexesLength = decodeLength(byteArray);\n const accountKeyIndexes = byteArray.splice(0, accountKeyIndexesLength);\n const dataLength = decodeLength(byteArray);\n const data = new Uint8Array(byteArray.splice(0, dataLength));\n compiledInstructions.push({\n programIdIndex,\n accountKeyIndexes,\n data\n });\n }\n\n const addressTableLookupsCount = decodeLength(byteArray);\n const addressTableLookups = [];\n\n for (let i = 0; i < addressTableLookupsCount; i++) {\n const accountKey = new PublicKey(byteArray.splice(0, PUBLIC_KEY_LENGTH));\n const writableIndexesLength = decodeLength(byteArray);\n const writableIndexes = byteArray.splice(0, writableIndexesLength);\n const readonlyIndexesLength = decodeLength(byteArray);\n const readonlyIndexes = byteArray.splice(0, readonlyIndexesLength);\n addressTableLookups.push({\n accountKey,\n writableIndexes,\n readonlyIndexes\n });\n }\n\n return new MessageV0({\n header,\n staticAccountKeys,\n recentBlockhash,\n compiledInstructions,\n addressTableLookups\n });\n }\n\n}\n\n// eslint-disable-next-line no-redeclare\nconst VersionedMessage = {\n deserializeMessageVersion(serializedMessage) {\n const prefix = serializedMessage[0];\n const maskedPrefix = prefix & VERSION_PREFIX_MASK; // if the highest bit of the prefix is not set, the message is not versioned\n\n if (maskedPrefix === prefix) {\n return 'legacy';\n } // the lower 7 bits of the prefix indicate the message version\n\n\n return maskedPrefix;\n },\n\n deserialize: serializedMessage => {\n const version = VersionedMessage.deserializeMessageVersion(serializedMessage);\n\n if (version === 'legacy') {\n return Message.from(serializedMessage);\n }\n\n if (version === 0) {\n return MessageV0.deserialize(serializedMessage);\n } else {\n throw new Error(`Transaction message version ${version} deserialization is not supported`);\n }\n }\n};\n\n/**\n * Transaction signature as base-58 encoded string\n */\n\nlet TransactionStatus;\n/**\n * Default (empty) signature\n */\n\n(function (TransactionStatus) {\n TransactionStatus[TransactionStatus[\"BLOCKHEIGHT_EXCEEDED\"] = 0] = \"BLOCKHEIGHT_EXCEEDED\";\n TransactionStatus[TransactionStatus[\"PROCESSED\"] = 1] = \"PROCESSED\";\n TransactionStatus[TransactionStatus[\"TIMED_OUT\"] = 2] = \"TIMED_OUT\";\n TransactionStatus[TransactionStatus[\"NONCE_INVALID\"] = 3] = \"NONCE_INVALID\";\n})(TransactionStatus || (TransactionStatus = {}));\n\nconst DEFAULT_SIGNATURE = Buffer.alloc(SIGNATURE_LENGTH_IN_BYTES).fill(0);\n/**\n * Account metadata used to define instructions\n */\n\n/**\n * Transaction Instruction class\n */\nclass TransactionInstruction {\n /**\n * Public keys to include in this transaction\n * Boolean represents whether this pubkey needs to sign the transaction\n */\n\n /**\n * Program Id to execute\n */\n\n /**\n * Program input\n */\n constructor(opts) {\n this.keys = void 0;\n this.programId = void 0;\n this.data = Buffer.alloc(0);\n this.programId = opts.programId;\n this.keys = opts.keys;\n\n if (opts.data) {\n this.data = opts.data;\n }\n }\n /**\n * @internal\n */\n\n\n toJSON() {\n return {\n keys: this.keys.map(({\n pubkey,\n isSigner,\n isWritable\n }) => ({\n pubkey: pubkey.toJSON(),\n isSigner,\n isWritable\n })),\n programId: this.programId.toJSON(),\n data: [...this.data]\n };\n }\n\n}\n/**\n * Pair of signature and corresponding public key\n */\n\n/**\n * Transaction class\n */\nclass Transaction {\n /**\n * Signatures for the transaction. Typically created by invoking the\n * `sign()` method\n */\n\n /**\n * The first (payer) Transaction signature\n */\n get signature() {\n if (this.signatures.length > 0) {\n return this.signatures[0].signature;\n }\n\n return null;\n }\n /**\n * The transaction fee payer\n */\n\n\n /**\n * Construct an empty Transaction\n */\n constructor(opts) {\n this.signatures = [];\n this.feePayer = void 0;\n this.instructions = [];\n this.recentBlockhash = void 0;\n this.lastValidBlockHeight = void 0;\n this.nonceInfo = void 0;\n this.minNonceContextSlot = void 0;\n this._message = void 0;\n this._json = void 0;\n\n if (!opts) {\n return;\n }\n\n if (opts.feePayer) {\n this.feePayer = opts.feePayer;\n }\n\n if (opts.signatures) {\n this.signatures = opts.signatures;\n }\n\n if (Object.prototype.hasOwnProperty.call(opts, 'nonceInfo')) {\n const {\n minContextSlot,\n nonceInfo\n } = opts;\n this.minNonceContextSlot = minContextSlot;\n this.nonceInfo = nonceInfo;\n } else if (Object.prototype.hasOwnProperty.call(opts, 'lastValidBlockHeight')) {\n const {\n blockhash,\n lastValidBlockHeight\n } = opts;\n this.recentBlockhash = blockhash;\n this.lastValidBlockHeight = lastValidBlockHeight;\n } else {\n const {\n recentBlockhash,\n nonceInfo\n } = opts;\n\n if (nonceInfo) {\n this.nonceInfo = nonceInfo;\n }\n\n this.recentBlockhash = recentBlockhash;\n }\n }\n /**\n * @internal\n */\n\n\n toJSON() {\n return {\n recentBlockhash: this.recentBlockhash || null,\n feePayer: this.feePayer ? this.feePayer.toJSON() : null,\n nonceInfo: this.nonceInfo ? {\n nonce: this.nonceInfo.nonce,\n nonceInstruction: this.nonceInfo.nonceInstruction.toJSON()\n } : null,\n instructions: this.instructions.map(instruction => instruction.toJSON()),\n signers: this.signatures.map(({\n publicKey\n }) => {\n return publicKey.toJSON();\n })\n };\n }\n /**\n * Add one or more instructions to this Transaction\n */\n\n\n add(...items) {\n if (items.length === 0) {\n throw new Error('No instructions');\n }\n\n items.forEach(item => {\n if ('instructions' in item) {\n this.instructions = this.instructions.concat(item.instructions);\n } else if ('data' in item && 'programId' in item && 'keys' in item) {\n this.instructions.push(item);\n } else {\n this.instructions.push(new TransactionInstruction(item));\n }\n });\n return this;\n }\n /**\n * Compile transaction data\n */\n\n\n compileMessage() {\n if (this._message && JSON.stringify(this.toJSON()) === JSON.stringify(this._json)) {\n return this._message;\n }\n\n let recentBlockhash;\n let instructions;\n\n if (this.nonceInfo) {\n recentBlockhash = this.nonceInfo.nonce;\n\n if (this.instructions[0] != this.nonceInfo.nonceInstruction) {\n instructions = [this.nonceInfo.nonceInstruction, ...this.instructions];\n } else {\n instructions = this.instructions;\n }\n } else {\n recentBlockhash = this.recentBlockhash;\n instructions = this.instructions;\n }\n\n if (!recentBlockhash) {\n throw new Error('Transaction recentBlockhash required');\n }\n\n if (instructions.length < 1) {\n console.warn('No instructions provided');\n }\n\n let feePayer;\n\n if (this.feePayer) {\n feePayer = this.feePayer;\n } else if (this.signatures.length > 0 && this.signatures[0].publicKey) {\n // Use implicit fee payer\n feePayer = this.signatures[0].publicKey;\n } else {\n throw new Error('Transaction fee payer required');\n }\n\n for (let i = 0; i < instructions.length; i++) {\n if (instructions[i].programId === undefined) {\n throw new Error(`Transaction instruction index ${i} has undefined program id`);\n }\n }\n\n const programIds = [];\n const accountMetas = [];\n instructions.forEach(instruction => {\n instruction.keys.forEach(accountMeta => {\n accountMetas.push({ ...accountMeta\n });\n });\n const programId = instruction.programId.toString();\n\n if (!programIds.includes(programId)) {\n programIds.push(programId);\n }\n }); // Append programID account metas\n\n programIds.forEach(programId => {\n accountMetas.push({\n pubkey: new PublicKey(programId),\n isSigner: false,\n isWritable: false\n });\n }); // Cull duplicate account metas\n\n const uniqueMetas = [];\n accountMetas.forEach(accountMeta => {\n const pubkeyString = accountMeta.pubkey.toString();\n const uniqueIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.toString() === pubkeyString;\n });\n\n if (uniqueIndex > -1) {\n uniqueMetas[uniqueIndex].isWritable = uniqueMetas[uniqueIndex].isWritable || accountMeta.isWritable;\n uniqueMetas[uniqueIndex].isSigner = uniqueMetas[uniqueIndex].isSigner || accountMeta.isSigner;\n } else {\n uniqueMetas.push(accountMeta);\n }\n }); // Sort. Prioritizing first by signer, then by writable\n\n uniqueMetas.sort(function (x, y) {\n if (x.isSigner !== y.isSigner) {\n // Signers always come before non-signers\n return x.isSigner ? -1 : 1;\n }\n\n if (x.isWritable !== y.isWritable) {\n // Writable accounts always come before read-only accounts\n return x.isWritable ? -1 : 1;\n } // Otherwise, sort by pubkey, stringwise.\n\n\n return x.pubkey.toBase58().localeCompare(y.pubkey.toBase58());\n }); // Move fee payer to the front\n\n const feePayerIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.equals(feePayer);\n });\n\n if (feePayerIndex > -1) {\n const [payerMeta] = uniqueMetas.splice(feePayerIndex, 1);\n payerMeta.isSigner = true;\n payerMeta.isWritable = true;\n uniqueMetas.unshift(payerMeta);\n } else {\n uniqueMetas.unshift({\n pubkey: feePayer,\n isSigner: true,\n isWritable: true\n });\n } // Disallow unknown signers\n\n\n for (const signature of this.signatures) {\n const uniqueIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.equals(signature.publicKey);\n });\n\n if (uniqueIndex > -1) {\n if (!uniqueMetas[uniqueIndex].isSigner) {\n uniqueMetas[uniqueIndex].isSigner = true;\n console.warn('Transaction references a signature that is unnecessary, ' + 'only the fee payer and instruction signer accounts should sign a transaction. ' + 'This behavior is deprecated and will throw an error in the next major version release.');\n }\n } else {\n throw new Error(`unknown signer: ${signature.publicKey.toString()}`);\n }\n }\n\n let numRequiredSignatures = 0;\n let numReadonlySignedAccounts = 0;\n let numReadonlyUnsignedAccounts = 0; // Split out signing from non-signing keys and count header values\n\n const signedKeys = [];\n const unsignedKeys = [];\n uniqueMetas.forEach(({\n pubkey,\n isSigner,\n isWritable\n }) => {\n if (isSigner) {\n signedKeys.push(pubkey.toString());\n numRequiredSignatures += 1;\n\n if (!isWritable) {\n numReadonlySignedAccounts += 1;\n }\n } else {\n unsignedKeys.push(pubkey.toString());\n\n if (!isWritable) {\n numReadonlyUnsignedAccounts += 1;\n }\n }\n });\n const accountKeys = signedKeys.concat(unsignedKeys);\n const compiledInstructions = instructions.map(instruction => {\n const {\n data,\n programId\n } = instruction;\n return {\n programIdIndex: accountKeys.indexOf(programId.toString()),\n accounts: instruction.keys.map(meta => accountKeys.indexOf(meta.pubkey.toString())),\n data: bs58.encode(data)\n };\n });\n compiledInstructions.forEach(instruction => {\n assert(instruction.programIdIndex >= 0);\n instruction.accounts.forEach(keyIndex => assert(keyIndex >= 0));\n });\n return new Message({\n header: {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts\n },\n accountKeys,\n recentBlockhash,\n instructions: compiledInstructions\n });\n }\n /**\n * @internal\n */\n\n\n _compile() {\n const message = this.compileMessage();\n const signedKeys = message.accountKeys.slice(0, message.header.numRequiredSignatures);\n\n if (this.signatures.length === signedKeys.length) {\n const valid = this.signatures.every((pair, index) => {\n return signedKeys[index].equals(pair.publicKey);\n });\n if (valid) return message;\n }\n\n this.signatures = signedKeys.map(publicKey => ({\n signature: null,\n publicKey\n }));\n return message;\n }\n /**\n * Get a buffer of the Transaction data that need to be covered by signatures\n */\n\n\n serializeMessage() {\n return this._compile().serialize();\n }\n /**\n * Get the estimated fee associated with a transaction\n */\n\n\n async getEstimatedFee(connection) {\n return (await connection.getFeeForMessage(this.compileMessage())).value;\n }\n /**\n * Specify the public keys which will be used to sign the Transaction.\n * The first signer will be used as the transaction fee payer account.\n *\n * Signatures can be added with either `partialSign` or `addSignature`\n *\n * @deprecated Deprecated since v0.84.0. Only the fee payer needs to be\n * specified and it can be set in the Transaction constructor or with the\n * `feePayer` property.\n */\n\n\n setSigners(...signers) {\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n\n const seen = new Set();\n this.signatures = signers.filter(publicKey => {\n const key = publicKey.toString();\n\n if (seen.has(key)) {\n return false;\n } else {\n seen.add(key);\n return true;\n }\n }).map(publicKey => ({\n signature: null,\n publicKey\n }));\n }\n /**\n * Sign the Transaction with the specified signers. Multiple signatures may\n * be applied to a Transaction. The first signature is considered \"primary\"\n * and is used identify and confirm transactions.\n *\n * If the Transaction `feePayer` is not set, the first signer will be used\n * as the transaction fee payer account.\n *\n * Transaction fields should not be modified after the first call to `sign`,\n * as doing so may invalidate the signature and cause the Transaction to be\n * rejected.\n *\n * The Transaction must be assigned a valid `recentBlockhash` before invoking this method\n */\n\n\n sign(...signers) {\n if (signers.length === 0) {\n throw new Error('No signers');\n } // Dedupe signers\n\n\n const seen = new Set();\n const uniqueSigners = [];\n\n for (const signer of signers) {\n const key = signer.publicKey.toString();\n\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n\n this.signatures = uniqueSigners.map(signer => ({\n signature: null,\n publicKey: signer.publicKey\n }));\n\n const message = this._compile();\n\n this._partialSign(message, ...uniqueSigners);\n }\n /**\n * Partially sign a transaction with the specified accounts. All accounts must\n * correspond to either the fee payer or a signer account in the transaction\n * instructions.\n *\n * All the caveats from the `sign` method apply to `partialSign`\n */\n\n\n partialSign(...signers) {\n if (signers.length === 0) {\n throw new Error('No signers');\n } // Dedupe signers\n\n\n const seen = new Set();\n const uniqueSigners = [];\n\n for (const signer of signers) {\n const key = signer.publicKey.toString();\n\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n\n const message = this._compile();\n\n this._partialSign(message, ...uniqueSigners);\n }\n /**\n * @internal\n */\n\n\n _partialSign(message, ...signers) {\n const signData = message.serialize();\n signers.forEach(signer => {\n const signature = sign(signData, signer.secretKey);\n\n this._addSignature(signer.publicKey, toBuffer(signature));\n });\n }\n /**\n * Add an externally created signature to a transaction. The public key\n * must correspond to either the fee payer or a signer account in the transaction\n * instructions.\n */\n\n\n addSignature(pubkey, signature) {\n this._compile(); // Ensure signatures array is populated\n\n\n this._addSignature(pubkey, signature);\n }\n /**\n * @internal\n */\n\n\n _addSignature(pubkey, signature) {\n assert(signature.length === 64);\n const index = this.signatures.findIndex(sigpair => pubkey.equals(sigpair.publicKey));\n\n if (index < 0) {\n throw new Error(`unknown signer: ${pubkey.toString()}`);\n }\n\n this.signatures[index].signature = Buffer.from(signature);\n }\n /**\n * Verify signatures of a Transaction\n * Optional parameter specifies if we're expecting a fully signed Transaction or a partially signed one.\n * If no boolean is provided, we expect a fully signed Transaction by default.\n */\n\n\n verifySignatures(requireAllSignatures) {\n return this._verifySignatures(this.serializeMessage(), requireAllSignatures === undefined ? true : requireAllSignatures);\n }\n /**\n * @internal\n */\n\n\n _verifySignatures(signData, requireAllSignatures) {\n for (const {\n signature,\n publicKey\n } of this.signatures) {\n if (signature === null) {\n if (requireAllSignatures) {\n return false;\n }\n } else {\n if (!verify(signature, signData, publicKey.toBytes())) {\n return false;\n }\n }\n }\n\n return true;\n }\n /**\n * Serialize the Transaction in the wire format.\n */\n\n\n serialize(config) {\n const {\n requireAllSignatures,\n verifySignatures\n } = Object.assign({\n requireAllSignatures: true,\n verifySignatures: true\n }, config);\n const signData = this.serializeMessage();\n\n if (verifySignatures && !this._verifySignatures(signData, requireAllSignatures)) {\n throw new Error('Signature verification failed');\n }\n\n return this._serialize(signData);\n }\n /**\n * @internal\n */\n\n\n _serialize(signData) {\n const {\n signatures\n } = this;\n const signatureCount = [];\n encodeLength(signatureCount, signatures.length);\n const transactionLength = signatureCount.length + signatures.length * 64 + signData.length;\n const wireTransaction = Buffer.alloc(transactionLength);\n assert(signatures.length < 256);\n Buffer.from(signatureCount).copy(wireTransaction, 0);\n signatures.forEach(({\n signature\n }, index) => {\n if (signature !== null) {\n assert(signature.length === 64, `signature has invalid length`);\n Buffer.from(signature).copy(wireTransaction, signatureCount.length + index * 64);\n }\n });\n signData.copy(wireTransaction, signatureCount.length + signatures.length * 64);\n assert(wireTransaction.length <= PACKET_DATA_SIZE, `Transaction too large: ${wireTransaction.length} > ${PACKET_DATA_SIZE}`);\n return wireTransaction;\n }\n /**\n * Deprecated method\n * @internal\n */\n\n\n get keys() {\n assert(this.instructions.length === 1);\n return this.instructions[0].keys.map(keyObj => keyObj.pubkey);\n }\n /**\n * Deprecated method\n * @internal\n */\n\n\n get programId() {\n assert(this.instructions.length === 1);\n return this.instructions[0].programId;\n }\n /**\n * Deprecated method\n * @internal\n */\n\n\n get data() {\n assert(this.instructions.length === 1);\n return this.instructions[0].data;\n }\n /**\n * Parse a wire transaction into a Transaction object.\n */\n\n\n static from(buffer) {\n // Slice up wire data\n let byteArray = [...buffer];\n const signatureCount = decodeLength(byteArray);\n let signatures = [];\n\n for (let i = 0; i < signatureCount; i++) {\n const signature = byteArray.slice(0, SIGNATURE_LENGTH_IN_BYTES);\n byteArray = byteArray.slice(SIGNATURE_LENGTH_IN_BYTES);\n signatures.push(bs58.encode(Buffer.from(signature)));\n }\n\n return Transaction.populate(Message.from(byteArray), signatures);\n }\n /**\n * Populate Transaction object from message and signatures\n */\n\n\n static populate(message, signatures = []) {\n const transaction = new Transaction();\n transaction.recentBlockhash = message.recentBlockhash;\n\n if (message.header.numRequiredSignatures > 0) {\n transaction.feePayer = message.accountKeys[0];\n }\n\n signatures.forEach((signature, index) => {\n const sigPubkeyPair = {\n signature: signature == bs58.encode(DEFAULT_SIGNATURE) ? null : bs58.decode(signature),\n publicKey: message.accountKeys[index]\n };\n transaction.signatures.push(sigPubkeyPair);\n });\n message.instructions.forEach(instruction => {\n const keys = instruction.accounts.map(account => {\n const pubkey = message.accountKeys[account];\n return {\n pubkey,\n isSigner: transaction.signatures.some(keyObj => keyObj.publicKey.toString() === pubkey.toString()) || message.isAccountSigner(account),\n isWritable: message.isAccountWritable(account)\n };\n });\n transaction.instructions.push(new TransactionInstruction({\n keys,\n programId: message.accountKeys[instruction.programIdIndex],\n data: bs58.decode(instruction.data)\n }));\n });\n transaction._message = message;\n transaction._json = transaction.toJSON();\n return transaction;\n }\n\n}\n\nclass TransactionMessage {\n constructor(args) {\n this.payerKey = void 0;\n this.instructions = void 0;\n this.recentBlockhash = void 0;\n this.payerKey = args.payerKey;\n this.instructions = args.instructions;\n this.recentBlockhash = args.recentBlockhash;\n }\n\n static decompile(message, args) {\n const {\n header,\n compiledInstructions,\n recentBlockhash\n } = message;\n const {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts\n } = header;\n const numWritableSignedAccounts = numRequiredSignatures - numReadonlySignedAccounts;\n assert(numWritableSignedAccounts > 0, 'Message header is invalid');\n const numWritableUnsignedAccounts = message.staticAccountKeys.length - numRequiredSignatures - numReadonlyUnsignedAccounts;\n assert(numWritableUnsignedAccounts >= 0, 'Message header is invalid');\n const accountKeys = message.getAccountKeys(args);\n const payerKey = accountKeys.get(0);\n\n if (payerKey === undefined) {\n throw new Error('Failed to decompile message because no account keys were found');\n }\n\n const instructions = [];\n\n for (const compiledIx of compiledInstructions) {\n const keys = [];\n\n for (const keyIndex of compiledIx.accountKeyIndexes) {\n const pubkey = accountKeys.get(keyIndex);\n\n if (pubkey === undefined) {\n throw new Error(`Failed to find key for account key index ${keyIndex}`);\n }\n\n const isSigner = keyIndex < numRequiredSignatures;\n let isWritable;\n\n if (isSigner) {\n isWritable = keyIndex < numWritableSignedAccounts;\n } else if (keyIndex < accountKeys.staticAccountKeys.length) {\n isWritable = keyIndex - numRequiredSignatures < numWritableUnsignedAccounts;\n } else {\n isWritable = keyIndex - accountKeys.staticAccountKeys.length < // accountKeysFromLookups cannot be undefined because we already found a pubkey for this index above\n accountKeys.accountKeysFromLookups.writable.length;\n }\n\n keys.push({\n pubkey,\n isSigner: keyIndex < header.numRequiredSignatures,\n isWritable\n });\n }\n\n const programId = accountKeys.get(compiledIx.programIdIndex);\n\n if (programId === undefined) {\n throw new Error(`Failed to find program id for program id index ${compiledIx.programIdIndex}`);\n }\n\n instructions.push(new TransactionInstruction({\n programId,\n data: toBuffer(compiledIx.data),\n keys\n }));\n }\n\n return new TransactionMessage({\n payerKey,\n instructions,\n recentBlockhash\n });\n }\n\n compileToLegacyMessage() {\n return Message.compile({\n payerKey: this.payerKey,\n recentBlockhash: this.recentBlockhash,\n instructions: this.instructions\n });\n }\n\n compileToV0Message(addressLookupTableAccounts) {\n return MessageV0.compile({\n payerKey: this.payerKey,\n recentBlockhash: this.recentBlockhash,\n instructions: this.instructions,\n addressLookupTableAccounts\n });\n }\n\n}\n\n/**\n * Versioned transaction class\n */\nclass VersionedTransaction {\n get version() {\n return this.message.version;\n }\n\n constructor(message, signatures) {\n this.signatures = void 0;\n this.message = void 0;\n\n if (signatures !== undefined) {\n assert(signatures.length === message.header.numRequiredSignatures, 'Expected signatures length to be equal to the number of required signatures');\n this.signatures = signatures;\n } else {\n const defaultSignatures = [];\n\n for (let i = 0; i < message.header.numRequiredSignatures; i++) {\n defaultSignatures.push(new Uint8Array(SIGNATURE_LENGTH_IN_BYTES));\n }\n\n this.signatures = defaultSignatures;\n }\n\n this.message = message;\n }\n\n serialize() {\n const serializedMessage = this.message.serialize();\n const encodedSignaturesLength = Array();\n encodeLength(encodedSignaturesLength, this.signatures.length);\n const transactionLayout = BufferLayout.struct([BufferLayout.blob(encodedSignaturesLength.length, 'encodedSignaturesLength'), BufferLayout.seq(signature(), this.signatures.length, 'signatures'), BufferLayout.blob(serializedMessage.length, 'serializedMessage')]);\n const serializedTransaction = new Uint8Array(2048);\n const serializedTransactionLength = transactionLayout.encode({\n encodedSignaturesLength: new Uint8Array(encodedSignaturesLength),\n signatures: this.signatures,\n serializedMessage\n }, serializedTransaction);\n return serializedTransaction.slice(0, serializedTransactionLength);\n }\n\n static deserialize(serializedTransaction) {\n let byteArray = [...serializedTransaction];\n const signatures = [];\n const signaturesLength = decodeLength(byteArray);\n\n for (let i = 0; i < signaturesLength; i++) {\n signatures.push(new Uint8Array(byteArray.splice(0, SIGNATURE_LENGTH_IN_BYTES)));\n }\n\n const message = VersionedMessage.deserialize(new Uint8Array(byteArray));\n return new VersionedTransaction(message, signatures);\n }\n\n sign(signers) {\n const messageData = this.message.serialize();\n const signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures);\n\n for (const signer of signers) {\n const signerIndex = signerPubkeys.findIndex(pubkey => pubkey.equals(signer.publicKey));\n assert(signerIndex >= 0, `Cannot sign with non signer key ${signer.publicKey.toBase58()}`);\n this.signatures[signerIndex] = sign(messageData, signer.secretKey);\n }\n }\n\n addSignature(publicKey, signature) {\n assert(signature.byteLength === 64, 'Signature must be 64 bytes long');\n const signerPubkeys = this.message.staticAccountKeys.slice(0, this.message.header.numRequiredSignatures);\n const signerIndex = signerPubkeys.findIndex(pubkey => pubkey.equals(publicKey));\n assert(signerIndex >= 0, `Can not add signature; \\`${publicKey.toBase58()}\\` is not required to sign this transaction`);\n this.signatures[signerIndex] = signature;\n }\n\n}\n\nconst SYSVAR_CLOCK_PUBKEY = new PublicKey('SysvarC1ock11111111111111111111111111111111');\nconst SYSVAR_EPOCH_SCHEDULE_PUBKEY = new PublicKey('SysvarEpochSchedu1e111111111111111111111111');\nconst SYSVAR_INSTRUCTIONS_PUBKEY = new PublicKey('Sysvar1nstructions1111111111111111111111111');\nconst SYSVAR_RECENT_BLOCKHASHES_PUBKEY = new PublicKey('SysvarRecentB1ockHashes11111111111111111111');\nconst SYSVAR_RENT_PUBKEY = new PublicKey('SysvarRent111111111111111111111111111111111');\nconst SYSVAR_REWARDS_PUBKEY = new PublicKey('SysvarRewards111111111111111111111111111111');\nconst SYSVAR_SLOT_HASHES_PUBKEY = new PublicKey('SysvarS1otHashes111111111111111111111111111');\nconst SYSVAR_SLOT_HISTORY_PUBKEY = new PublicKey('SysvarS1otHistory11111111111111111111111111');\nconst SYSVAR_STAKE_HISTORY_PUBKEY = new PublicKey('SysvarStakeHistory1111111111111111111111111');\n\n/**\n * Sign, send and confirm a transaction.\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Transaction} transaction\n * @param {Array} signers\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\nasync function sendAndConfirmTransaction(connection, transaction, signers, options) {\n const sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n maxRetries: options.maxRetries,\n minContextSlot: options.minContextSlot\n };\n const signature = await connection.sendTransaction(transaction, signers, sendOptions);\n let status;\n\n if (transaction.recentBlockhash != null && transaction.lastValidBlockHeight != null) {\n status = (await connection.confirmTransaction({\n abortSignal: options?.abortSignal,\n signature: signature,\n blockhash: transaction.recentBlockhash,\n lastValidBlockHeight: transaction.lastValidBlockHeight\n }, options && options.commitment)).value;\n } else if (transaction.minNonceContextSlot != null && transaction.nonceInfo != null) {\n const {\n nonceInstruction\n } = transaction.nonceInfo;\n const nonceAccountPubkey = nonceInstruction.keys[0].pubkey;\n status = (await connection.confirmTransaction({\n abortSignal: options?.abortSignal,\n minContextSlot: transaction.minNonceContextSlot,\n nonceAccountPubkey,\n nonceValue: transaction.nonceInfo.nonce,\n signature\n }, options && options.commitment)).value;\n } else {\n if (options?.abortSignal != null) {\n console.warn('sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was ' + 'supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` ' + 'or a combination of `nonceInfo` and `minNonceContextSlot` are abortable.');\n }\n\n status = (await connection.confirmTransaction(signature, options && options.commitment)).value;\n }\n\n if (status.err) {\n throw new Error(`Transaction ${signature} failed (${JSON.stringify(status)})`);\n }\n\n return signature;\n}\n\n// zzz\nfunction sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * Populate a buffer of instruction data using an InstructionType\n * @internal\n */\nfunction encodeData(type, fields) {\n const allocLength = type.layout.span >= 0 ? type.layout.span : getAlloc(type, fields);\n const data = Buffer.alloc(allocLength);\n const layoutFields = Object.assign({\n instruction: type.index\n }, fields);\n type.layout.encode(layoutFields, data);\n return data;\n}\n/**\n * Decode instruction data buffer using an InstructionType\n * @internal\n */\n\nfunction decodeData$1(type, buffer) {\n let data;\n\n try {\n data = type.layout.decode(buffer);\n } catch (err) {\n throw new Error('invalid instruction; ' + err);\n }\n\n if (data.instruction !== type.index) {\n throw new Error(`invalid instruction; instruction index mismatch ${data.instruction} != ${type.index}`);\n }\n\n return data;\n}\n\n/**\n * https://github.com/solana-labs/solana/blob/90bedd7e067b5b8f3ddbb45da00a4e9cabb22c62/sdk/src/fee_calculator.rs#L7-L11\n *\n * @internal\n */\n\nconst FeeCalculatorLayout = BufferLayout.nu64('lamportsPerSignature');\n/**\n * Calculator for transaction fees.\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\n\n/**\n * See https://github.com/solana-labs/solana/blob/0ea2843ec9cdc517572b8e62c959f41b55cf4453/sdk/src/nonce_state.rs#L29-L32\n *\n * @internal\n */\n\nconst NonceAccountLayout = BufferLayout.struct([BufferLayout.u32('version'), BufferLayout.u32('state'), publicKey('authorizedPubkey'), publicKey('nonce'), BufferLayout.struct([FeeCalculatorLayout], 'feeCalculator')]);\nconst NONCE_ACCOUNT_LENGTH = NonceAccountLayout.span;\n/**\n * A durable nonce is a 32 byte value encoded as a base58 string.\n */\n\n/**\n * NonceAccount class\n */\nclass NonceAccount {\n /**\n * @internal\n */\n constructor(args) {\n this.authorizedPubkey = void 0;\n this.nonce = void 0;\n this.feeCalculator = void 0;\n this.authorizedPubkey = args.authorizedPubkey;\n this.nonce = args.nonce;\n this.feeCalculator = args.feeCalculator;\n }\n /**\n * Deserialize NonceAccount from the account data.\n *\n * @param buffer account data\n * @return NonceAccount\n */\n\n\n static fromAccountData(buffer) {\n const nonceAccount = NonceAccountLayout.decode(toBuffer(buffer), 0);\n return new NonceAccount({\n authorizedPubkey: new PublicKey(nonceAccount.authorizedPubkey),\n nonce: new PublicKey(nonceAccount.nonce).toString(),\n feeCalculator: nonceAccount.feeCalculator\n });\n }\n\n}\n\nconst encodeDecode = layout => {\n const decode = layout.decode.bind(layout);\n const encode = layout.encode.bind(layout);\n return {\n decode,\n encode\n };\n};\n\nconst bigInt = length => property => {\n const layout = blob(length, property);\n const {\n encode,\n decode\n } = encodeDecode(layout);\n const bigIntLayout = layout;\n\n bigIntLayout.decode = (buffer, offset) => {\n const src = decode(buffer, offset);\n return toBigIntLE(Buffer.from(src));\n };\n\n bigIntLayout.encode = (bigInt, buffer, offset) => {\n const src = toBufferLE(bigInt, length);\n return encode(src, buffer, offset);\n };\n\n return bigIntLayout;\n};\n\nconst u64 = bigInt(8);\n\n/**\n * Create account system transaction params\n */\n\n/**\n * System Instruction class\n */\nclass SystemInstruction {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Decode a system instruction and retrieve the instruction type.\n */\n\n\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n\n for (const [ixType, layout] of Object.entries(SYSTEM_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a SystemInstruction');\n }\n\n return type;\n }\n /**\n * Decode a create account system instruction and retrieve the instruction params.\n */\n\n\n static decodeCreateAccount(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n lamports,\n space,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Create, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n lamports,\n space,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode a transfer system instruction and retrieve the instruction params.\n */\n\n\n static decodeTransfer(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n lamports\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Transfer, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n lamports\n };\n }\n /**\n * Decode a transfer with seed system instruction and retrieve the instruction params.\n */\n\n\n static decodeTransferWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n lamports,\n seed,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n basePubkey: instruction.keys[1].pubkey,\n toPubkey: instruction.keys[2].pubkey,\n lamports,\n seed,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode an allocate system instruction and retrieve the instruction params.\n */\n\n\n static decodeAllocate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n space\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Allocate, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n space\n };\n }\n /**\n * Decode an allocate with seed system instruction and retrieve the instruction params.\n */\n\n\n static decodeAllocateWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n base,\n seed,\n space,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n space,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode an assign system instruction and retrieve the instruction params.\n */\n\n\n static decodeAssign(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.Assign, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode an assign with seed system instruction and retrieve the instruction params.\n */\n\n\n static decodeAssignWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n const {\n base,\n seed,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed, instruction.data);\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode a create account with seed system instruction and retrieve the instruction params.\n */\n\n\n static decodeCreateWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n base,\n seed,\n lamports,\n space,\n programId\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed, instruction.data);\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n lamports,\n space,\n programId: new PublicKey(programId)\n };\n }\n /**\n * Decode a nonce initialize system instruction and retrieve the instruction params.\n */\n\n\n static decodeNonceInitialize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n authorized\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: new PublicKey(authorized)\n };\n }\n /**\n * Decode a nonce advance system instruction and retrieve the instruction params.\n */\n\n\n static decodeNonceAdvance(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey\n };\n }\n /**\n * Decode a nonce withdraw system instruction and retrieve the instruction params.\n */\n\n\n static decodeNonceWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n const {\n lamports\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports\n };\n }\n /**\n * Decode a nonce authorize system instruction and retrieve the instruction params.\n */\n\n\n static decodeNonceAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n authorized\n } = decodeData$1(SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount, instruction.data);\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[1].pubkey,\n newAuthorizedPubkey: new PublicKey(authorized)\n };\n }\n /**\n * @internal\n */\n\n\n static checkProgramId(programId) {\n if (!programId.equals(SystemProgram.programId)) {\n throw new Error('invalid instruction; programId is not SystemProgram');\n }\n }\n /**\n * @internal\n */\n\n\n static checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n\n}\n/**\n * An enumeration of valid SystemInstructionType's\n */\n\n/**\n * An enumeration of valid system InstructionType's\n * @internal\n */\nconst SYSTEM_INSTRUCTION_LAYOUTS = Object.freeze({\n Create: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports'), BufferLayout.ns64('space'), publicKey('programId')])\n },\n Assign: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('programId')])\n },\n Transfer: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64('lamports')])\n },\n CreateWithSeed: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('base'), rustString('seed'), BufferLayout.ns64('lamports'), BufferLayout.ns64('space'), publicKey('programId')])\n },\n AdvanceNonceAccount: {\n index: 4,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n WithdrawNonceAccount: {\n index: 5,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n InitializeNonceAccount: {\n index: 6,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('authorized')])\n },\n AuthorizeNonceAccount: {\n index: 7,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('authorized')])\n },\n Allocate: {\n index: 8,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('space')])\n },\n AllocateWithSeed: {\n index: 9,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('base'), rustString('seed'), BufferLayout.ns64('space'), publicKey('programId')])\n },\n AssignWithSeed: {\n index: 10,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('base'), rustString('seed'), publicKey('programId')])\n },\n TransferWithSeed: {\n index: 11,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64('lamports'), rustString('seed'), publicKey('programId')])\n },\n UpgradeNonceAccount: {\n index: 12,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n }\n});\n/**\n * Factory class for transactions to interact with the System program\n */\n\nclass SystemProgram {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Public key that identifies the System program\n */\n\n\n /**\n * Generate a transaction instruction that creates a new account\n */\n static createAccount(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Create;\n const data = encodeData(type, {\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.newAccountPubkey,\n isSigner: true,\n isWritable: true\n }],\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction instruction that transfers lamports from one account to another\n */\n\n\n static transfer(params) {\n let data;\n let keys;\n\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed;\n data = encodeData(type, {\n lamports: BigInt(params.lamports),\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.fromPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Transfer;\n data = encodeData(type, {\n lamports: BigInt(params.lamports)\n });\n keys = [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }];\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction instruction that assigns an account to a program\n */\n\n\n static assign(params) {\n let data;\n let keys;\n\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed;\n data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Assign;\n data = encodeData(type, {\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: true,\n isWritable: true\n }];\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction instruction that creates a new account at\n * an address generated with `from`, a seed, and programId\n */\n\n\n static createAccountWithSeed(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed;\n const data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n let keys = [{\n pubkey: params.fromPubkey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: params.newAccountPubkey,\n isSigner: false,\n isWritable: true\n }];\n\n if (params.basePubkey != params.fromPubkey) {\n keys.push({\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n });\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction that creates a new Nonce account\n */\n\n\n static createNonceAccount(params) {\n const transaction = new Transaction();\n\n if ('basePubkey' in params && 'seed' in params) {\n transaction.add(SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId\n }));\n } else {\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId\n }));\n }\n\n const initParams = {\n noncePubkey: params.noncePubkey,\n authorizedPubkey: params.authorizedPubkey\n };\n transaction.add(this.nonceInitialize(initParams));\n return transaction;\n }\n /**\n * Generate an instruction to initialize a Nonce account\n */\n\n\n static nonceInitialize(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount;\n const data = encodeData(type, {\n authorized: toBuffer(params.authorizedPubkey.toBuffer())\n });\n const instructionData = {\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate an instruction to advance the nonce in a Nonce account\n */\n\n\n static nonceAdvance(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount;\n const data = encodeData(type);\n const instructionData = {\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate a transaction instruction that withdraws lamports from a Nonce account\n */\n\n\n static nonceWithdraw(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount;\n const data = encodeData(type, {\n lamports: params.lamports\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction instruction that authorizes a new PublicKey as the authority\n * on a Nonce account.\n */\n\n\n static nonceAuthorize(params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount;\n const data = encodeData(type, {\n authorized: toBuffer(params.newAuthorizedPubkey.toBuffer())\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: params.noncePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction instruction that allocates space in an account without funding\n */\n\n\n static allocate(params) {\n let data;\n let keys;\n\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed;\n data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer())\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.basePubkey,\n isSigner: true,\n isWritable: false\n }];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Allocate;\n data = encodeData(type, {\n space: params.space\n });\n keys = [{\n pubkey: params.accountPubkey,\n isSigner: true,\n isWritable: true\n }];\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data\n });\n }\n\n}\nSystemProgram.programId = new PublicKey('11111111111111111111111111111111');\n\n// Keep program chunks under PACKET_DATA_SIZE, leaving enough room for the\n// rest of the Transaction fields\n//\n// TODO: replace 300 with a proper constant for the size of the other\n// Transaction fields\nconst CHUNK_SIZE = PACKET_DATA_SIZE - 300;\n/**\n * Program loader interface\n */\n\nclass Loader {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Amount of program data placed in each load Transaction\n */\n\n\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n static getMinNumSignatures(dataLength) {\n return 2 * ( // Every transaction requires two signatures (payer + program)\n Math.ceil(dataLength / Loader.chunkSize) + 1 + // Add one for Create transaction\n 1) // Add one for Finalize transaction\n ;\n }\n /**\n * Loads a generic program\n *\n * @param connection The connection to use\n * @param payer System account that pays to load the program\n * @param program Account to load the program into\n * @param programId Public key that identifies the loader\n * @param data Program octets\n * @return true if program was loaded successfully, false if program was already loaded\n */\n\n\n static async load(connection, payer, program, programId, data) {\n {\n const balanceNeeded = await connection.getMinimumBalanceForRentExemption(data.length); // Fetch program account info to check if it has already been created\n\n const programInfo = await connection.getAccountInfo(program.publicKey, 'confirmed');\n let transaction = null;\n\n if (programInfo !== null) {\n if (programInfo.executable) {\n console.error('Program load failed, account is already executable');\n return false;\n }\n\n if (programInfo.data.length !== data.length) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.allocate({\n accountPubkey: program.publicKey,\n space: data.length\n }));\n }\n\n if (!programInfo.owner.equals(programId)) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.assign({\n accountPubkey: program.publicKey,\n programId\n }));\n }\n\n if (programInfo.lamports < balanceNeeded) {\n transaction = transaction || new Transaction();\n transaction.add(SystemProgram.transfer({\n fromPubkey: payer.publicKey,\n toPubkey: program.publicKey,\n lamports: balanceNeeded - programInfo.lamports\n }));\n }\n } else {\n transaction = new Transaction().add(SystemProgram.createAccount({\n fromPubkey: payer.publicKey,\n newAccountPubkey: program.publicKey,\n lamports: balanceNeeded > 0 ? balanceNeeded : 1,\n space: data.length,\n programId\n }));\n } // If the account is already created correctly, skip this step\n // and proceed directly to loading instructions\n\n\n if (transaction !== null) {\n await sendAndConfirmTransaction(connection, transaction, [payer, program], {\n commitment: 'confirmed'\n });\n }\n }\n const dataLayout = BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.u32('offset'), BufferLayout.u32('bytesLength'), BufferLayout.u32('bytesLengthPadding'), BufferLayout.seq(BufferLayout.u8('byte'), BufferLayout.offset(BufferLayout.u32(), -8), 'bytes')]);\n const chunkSize = Loader.chunkSize;\n let offset = 0;\n let array = data;\n let transactions = [];\n\n while (array.length > 0) {\n const bytes = array.slice(0, chunkSize);\n const data = Buffer.alloc(chunkSize + 16);\n dataLayout.encode({\n instruction: 0,\n // Load instruction\n offset,\n bytes: bytes,\n bytesLength: 0,\n bytesLengthPadding: 0\n }, data);\n const transaction = new Transaction().add({\n keys: [{\n pubkey: program.publicKey,\n isSigner: true,\n isWritable: true\n }],\n programId,\n data\n });\n transactions.push(sendAndConfirmTransaction(connection, transaction, [payer, program], {\n commitment: 'confirmed'\n })); // Delay between sends in an attempt to reduce rate limit errors\n\n if (connection._rpcEndpoint.includes('solana.com')) {\n const REQUESTS_PER_SECOND = 4;\n await sleep(1000 / REQUESTS_PER_SECOND);\n }\n\n offset += chunkSize;\n array = array.slice(chunkSize);\n }\n\n await Promise.all(transactions); // Finalize the account loaded with program data for execution\n\n {\n const dataLayout = BufferLayout.struct([BufferLayout.u32('instruction')]);\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode({\n instruction: 1 // Finalize instruction\n\n }, data);\n const transaction = new Transaction().add({\n keys: [{\n pubkey: program.publicKey,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId,\n data\n });\n await sendAndConfirmTransaction(connection, transaction, [payer, program], {\n commitment: 'confirmed'\n });\n } // success\n\n return true;\n }\n\n}\nLoader.chunkSize = CHUNK_SIZE;\n\nconst BPF_LOADER_PROGRAM_ID = new PublicKey('BPFLoader2111111111111111111111111111111111');\n/**\n * Factory class for transactions to interact with a program loader\n */\n\nclass BpfLoader {\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n static getMinNumSignatures(dataLength) {\n return Loader.getMinNumSignatures(dataLength);\n }\n /**\n * Load a SBF program\n *\n * @param connection The connection to use\n * @param payer Account that will pay program loading fees\n * @param program Account to load the program into\n * @param elf The entire ELF containing the SBF program\n * @param loaderProgramId The program id of the BPF loader to use\n * @return true if program was loaded successfully, false if program was already loaded\n */\n\n\n static load(connection, payer, program, elf, loaderProgramId) {\n return Loader.load(connection, payer, program, loaderProgramId, elf);\n }\n\n}\n\nvar objToString = Object.prototype.toString;\nvar objKeys = Object.keys || function(obj) {\n\t\tvar keys = [];\n\t\tfor (var name in obj) {\n\t\t\tkeys.push(name);\n\t\t}\n\t\treturn keys;\n\t};\n\nfunction stringify(val, isArrayProp) {\n\tvar i, max, str, keys, key, propVal, toStr;\n\tif (val === true) {\n\t\treturn \"true\";\n\t}\n\tif (val === false) {\n\t\treturn \"false\";\n\t}\n\tswitch (typeof val) {\n\t\tcase \"object\":\n\t\t\tif (val === null) {\n\t\t\t\treturn null;\n\t\t\t} else if (val.toJSON && typeof val.toJSON === \"function\") {\n\t\t\t\treturn stringify(val.toJSON(), isArrayProp);\n\t\t\t} else {\n\t\t\t\ttoStr = objToString.call(val);\n\t\t\t\tif (toStr === \"[object Array]\") {\n\t\t\t\t\tstr = '[';\n\t\t\t\t\tmax = val.length - 1;\n\t\t\t\t\tfor(i = 0; i < max; i++) {\n\t\t\t\t\t\tstr += stringify(val[i], true) + ',';\n\t\t\t\t\t}\n\t\t\t\t\tif (max > -1) {\n\t\t\t\t\t\tstr += stringify(val[i], true);\n\t\t\t\t\t}\n\t\t\t\t\treturn str + ']';\n\t\t\t\t} else if (toStr === \"[object Object]\") {\n\t\t\t\t\t// only object is left\n\t\t\t\t\tkeys = objKeys(val).sort();\n\t\t\t\t\tmax = keys.length;\n\t\t\t\t\tstr = \"\";\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile (i < max) {\n\t\t\t\t\t\tkey = keys[i];\n\t\t\t\t\t\tpropVal = stringify(val[key], false);\n\t\t\t\t\t\tif (propVal !== undefined) {\n\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\tstr += ',';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += JSON.stringify(key) + ':' + propVal;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\treturn '{' + str + '}';\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"function\":\n\t\tcase \"undefined\":\n\t\t\treturn isArrayProp ? null : undefined;\n\t\tcase \"string\":\n\t\t\treturn JSON.stringify(val);\n\t\tdefault:\n\t\t\treturn isFinite(val) ? val : null;\n\t}\n}\n\nvar fastStableStringify = function(val) {\n\tvar returnVal = stringify(val, false);\n\tif (returnVal !== undefined) {\n\t\treturn ''+ returnVal;\n\t}\n};\n\nvar fastStableStringify$1 = fastStableStringify;\n\nconst MINIMUM_SLOT_PER_EPOCH = 32; // Returns the number of trailing zeros in the binary representation of self.\n\nfunction trailingZeros(n) {\n let trailingZeros = 0;\n\n while (n > 1) {\n n /= 2;\n trailingZeros++;\n }\n\n return trailingZeros;\n} // Returns the smallest power of two greater than or equal to n\n\n\nfunction nextPowerOfTwo(n) {\n if (n === 0) return 1;\n n--;\n n |= n >> 1;\n n |= n >> 2;\n n |= n >> 4;\n n |= n >> 8;\n n |= n >> 16;\n n |= n >> 32;\n return n + 1;\n}\n/**\n * Epoch schedule\n * (see https://docs.solana.com/terminology#epoch)\n * Can be retrieved with the {@link Connection.getEpochSchedule} method\n */\n\n\nclass EpochSchedule {\n /** The maximum number of slots in each epoch */\n\n /** The number of slots before beginning of an epoch to calculate a leader schedule for that epoch */\n\n /** Indicates whether epochs start short and grow */\n\n /** The first epoch with `slotsPerEpoch` slots */\n\n /** The first slot of `firstNormalEpoch` */\n constructor(slotsPerEpoch, leaderScheduleSlotOffset, warmup, firstNormalEpoch, firstNormalSlot) {\n this.slotsPerEpoch = void 0;\n this.leaderScheduleSlotOffset = void 0;\n this.warmup = void 0;\n this.firstNormalEpoch = void 0;\n this.firstNormalSlot = void 0;\n this.slotsPerEpoch = slotsPerEpoch;\n this.leaderScheduleSlotOffset = leaderScheduleSlotOffset;\n this.warmup = warmup;\n this.firstNormalEpoch = firstNormalEpoch;\n this.firstNormalSlot = firstNormalSlot;\n }\n\n getEpoch(slot) {\n return this.getEpochAndSlotIndex(slot)[0];\n }\n\n getEpochAndSlotIndex(slot) {\n if (slot < this.firstNormalSlot) {\n const epoch = trailingZeros(nextPowerOfTwo(slot + MINIMUM_SLOT_PER_EPOCH + 1)) - trailingZeros(MINIMUM_SLOT_PER_EPOCH) - 1;\n const epochLen = this.getSlotsInEpoch(epoch);\n const slotIndex = slot - (epochLen - MINIMUM_SLOT_PER_EPOCH);\n return [epoch, slotIndex];\n } else {\n const normalSlotIndex = slot - this.firstNormalSlot;\n const normalEpochIndex = Math.floor(normalSlotIndex / this.slotsPerEpoch);\n const epoch = this.firstNormalEpoch + normalEpochIndex;\n const slotIndex = normalSlotIndex % this.slotsPerEpoch;\n return [epoch, slotIndex];\n }\n }\n\n getFirstSlotInEpoch(epoch) {\n if (epoch <= this.firstNormalEpoch) {\n return (Math.pow(2, epoch) - 1) * MINIMUM_SLOT_PER_EPOCH;\n } else {\n return (epoch - this.firstNormalEpoch) * this.slotsPerEpoch + this.firstNormalSlot;\n }\n }\n\n getLastSlotInEpoch(epoch) {\n return this.getFirstSlotInEpoch(epoch) + this.getSlotsInEpoch(epoch) - 1;\n }\n\n getSlotsInEpoch(epoch) {\n if (epoch < this.firstNormalEpoch) {\n return Math.pow(2, epoch + trailingZeros(MINIMUM_SLOT_PER_EPOCH));\n } else {\n return this.slotsPerEpoch;\n }\n }\n\n}\n\nclass SendTransactionError extends Error {\n constructor(message, logs) {\n super(message);\n this.logs = void 0;\n this.logs = logs;\n }\n\n} // Keep in sync with client/src/rpc_custom_errors.rs\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\n\nconst SolanaJSONRPCErrorCode = {\n JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001,\n JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE: -32002,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE: -32003,\n JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: -32004,\n JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY: -32005,\n JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: -32006,\n JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: -32007,\n JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: -32008,\n JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: -32009,\n JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: -32010,\n JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE: -32011,\n JSON_RPC_SCAN_ERROR: -32012,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH: -32013,\n JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: -32014,\n JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: -32015,\n JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED: -32016\n};\nclass SolanaJSONRPCError extends Error {\n constructor({\n code,\n message,\n data\n }, customMessage) {\n super(customMessage != null ? `${customMessage}: ${message}` : message);\n this.code = void 0;\n this.data = void 0;\n this.code = code;\n this.data = data;\n this.name = 'SolanaJSONRPCError';\n }\n\n}\n\nvar fetchImpl = globalThis.fetch;\n\nclass RpcWebSocketClient extends RpcWebSocketCommonClient {\n constructor(address, options, generate_request_id) {\n const webSocketFactory = url => {\n const rpc = createRpc(url, {\n autoconnect: true,\n max_reconnects: 5,\n reconnect: true,\n reconnect_interval: 1000,\n ...options\n });\n\n if ('socket' in rpc) {\n this.underlyingSocket = rpc.socket;\n } else {\n this.underlyingSocket = rpc;\n }\n\n return rpc;\n };\n\n super(webSocketFactory, address, options, generate_request_id);\n this.underlyingSocket = void 0;\n }\n\n call(...args) {\n const readyState = this.underlyingSocket?.readyState;\n\n if (readyState === 1\n /* WebSocket.OPEN */\n ) {\n return super.call(...args);\n }\n\n return Promise.reject(new Error('Tried to call a JSON-RPC method `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));\n }\n\n notify(...args) {\n const readyState = this.underlyingSocket?.readyState;\n\n if (readyState === 1\n /* WebSocket.OPEN */\n ) {\n return super.notify(...args);\n }\n\n return Promise.reject(new Error('Tried to send a JSON-RPC notification `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));\n }\n\n}\n\n// TODO: These constants should be removed in favor of reading them out of a\n// Syscall account\n\n/**\n * @internal\n */\nconst NUM_TICKS_PER_SECOND = 160;\n/**\n * @internal\n */\n\nconst DEFAULT_TICKS_PER_SLOT = 64;\n/**\n * @internal\n */\n\nconst NUM_SLOTS_PER_SECOND = NUM_TICKS_PER_SECOND / DEFAULT_TICKS_PER_SLOT;\n/**\n * @internal\n */\n\nconst MS_PER_SLOT = 1000 / NUM_SLOTS_PER_SECOND;\n\n/**\n * @internal\n */\n\n/**\n * Decode account data buffer using an AccountType\n * @internal\n */\nfunction decodeData(type, data) {\n let decoded;\n\n try {\n decoded = type.layout.decode(data);\n } catch (err) {\n throw new Error('invalid instruction; ' + err);\n }\n\n if (decoded.typeIndex !== type.index) {\n throw new Error(`invalid account data; account type mismatch ${decoded.typeIndex} != ${type.index}`);\n }\n\n return decoded;\n}\n\n/// The serialized size of lookup table metadata\nconst LOOKUP_TABLE_META_SIZE = 56;\nclass AddressLookupTableAccount {\n constructor(args) {\n this.key = void 0;\n this.state = void 0;\n this.key = args.key;\n this.state = args.state;\n }\n\n isActive() {\n const U64_MAX = BigInt('0xffffffffffffffff');\n return this.state.deactivationSlot === U64_MAX;\n }\n\n static deserialize(accountData) {\n const meta = decodeData(LookupTableMetaLayout, accountData);\n const serializedAddressesLen = accountData.length - LOOKUP_TABLE_META_SIZE;\n assert(serializedAddressesLen >= 0, 'lookup table is invalid');\n assert(serializedAddressesLen % 32 === 0, 'lookup table is invalid');\n const numSerializedAddresses = serializedAddressesLen / 32;\n const {\n addresses\n } = BufferLayout.struct([BufferLayout.seq(publicKey(), numSerializedAddresses, 'addresses')]).decode(accountData.slice(LOOKUP_TABLE_META_SIZE));\n return {\n deactivationSlot: meta.deactivationSlot,\n lastExtendedSlot: meta.lastExtendedSlot,\n lastExtendedSlotStartIndex: meta.lastExtendedStartIndex,\n authority: meta.authority.length !== 0 ? new PublicKey(meta.authority[0]) : undefined,\n addresses: addresses.map(address => new PublicKey(address))\n };\n }\n\n}\nconst LookupTableMetaLayout = {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('typeIndex'), u64('deactivationSlot'), BufferLayout.nu64('lastExtendedSlot'), BufferLayout.u8('lastExtendedStartIndex'), BufferLayout.u8(), // option\n BufferLayout.seq(publicKey(), BufferLayout.offset(BufferLayout.u8(), -1), 'authority')])\n};\n\nconst URL_RE = /^[^:]+:\\/\\/([^:[]+|\\[[^\\]]+\\])(:\\d+)?(.*)/i;\nfunction makeWebsocketUrl(endpoint) {\n const matches = endpoint.match(URL_RE);\n\n if (matches == null) {\n throw TypeError(`Failed to validate endpoint URL \\`${endpoint}\\``);\n }\n\n const [_, // eslint-disable-line @typescript-eslint/no-unused-vars\n hostish, portWithColon, rest] = matches;\n const protocol = endpoint.startsWith('https:') ? 'wss:' : 'ws:';\n const startPort = portWithColon == null ? null : parseInt(portWithColon.slice(1), 10);\n const websocketPort = // Only shift the port by +1 as a convention for ws(s) only if given endpoint\n // is explictly specifying the endpoint port (HTTP-based RPC), assuming\n // we're directly trying to connect to solana-validator's ws listening port.\n // When the endpoint omits the port, we're connecting to the protocol\n // default ports: http(80) or https(443) and it's assumed we're behind a reverse\n // proxy which manages WebSocket upgrade and backend port redirection.\n startPort == null ? '' : `:${startPort + 1}`;\n return `${protocol}//${hostish}${websocketPort}${rest}`;\n}\n\nconst PublicKeyFromString = coerce(instance(PublicKey), string(), value => new PublicKey(value));\nconst RawAccountDataResult = tuple([string(), literal('base64')]);\nconst BufferFromRawAccountData = coerce(instance(Buffer), RawAccountDataResult, value => Buffer.from(value[0], 'base64'));\n/**\n * Attempt to use a recent blockhash for up to 30 seconds\n * @internal\n */\n\nconst BLOCKHASH_CACHE_TIMEOUT_MS = 30 * 1000;\n/**\n * HACK.\n * Copied from rpc-websockets/dist/lib/client.\n * Otherwise, `yarn build` fails with:\n * https://gist.github.com/steveluscher/c057eca81d479ef705cdb53162f9971d\n */\n\n/* @internal */\nfunction assertEndpointUrl(putativeUrl) {\n if (/^https?:/.test(putativeUrl) === false) {\n throw new TypeError('Endpoint URL must start with `http:` or `https:`.');\n }\n\n return putativeUrl;\n}\n/** @internal */\n\n\nfunction extractCommitmentFromConfig(commitmentOrConfig) {\n let commitment;\n let config;\n\n if (typeof commitmentOrConfig === 'string') {\n commitment = commitmentOrConfig;\n } else if (commitmentOrConfig) {\n const {\n commitment: specifiedCommitment,\n ...specifiedConfig\n } = commitmentOrConfig;\n commitment = specifiedCommitment;\n config = specifiedConfig;\n }\n\n return {\n commitment,\n config\n };\n}\n/**\n * @internal\n */\n\n\nfunction createRpcResult(result) {\n return union([type({\n jsonrpc: literal('2.0'),\n id: string(),\n result\n }), type({\n jsonrpc: literal('2.0'),\n id: string(),\n error: type({\n code: unknown(),\n message: string(),\n data: optional(any())\n })\n })]);\n}\n\nconst UnknownRpcResult = createRpcResult(unknown());\n/**\n * @internal\n */\n\nfunction jsonRpcResult(schema) {\n return coerce(createRpcResult(schema), UnknownRpcResult, value => {\n if ('error' in value) {\n return value;\n } else {\n return { ...value,\n result: create(value.result, schema)\n };\n }\n });\n}\n/**\n * @internal\n */\n\n\nfunction jsonRpcResultAndContext(value) {\n return jsonRpcResult(type({\n context: type({\n slot: number()\n }),\n value\n }));\n}\n/**\n * @internal\n */\n\n\nfunction notificationResultAndContext(value) {\n return type({\n context: type({\n slot: number()\n }),\n value\n });\n}\n/**\n * @internal\n */\n\n\nfunction versionedMessageFromResponse(version, response) {\n if (version === 0) {\n return new MessageV0({\n header: response.header,\n staticAccountKeys: response.accountKeys.map(accountKey => new PublicKey(accountKey)),\n recentBlockhash: response.recentBlockhash,\n compiledInstructions: response.instructions.map(ix => ({\n programIdIndex: ix.programIdIndex,\n accountKeyIndexes: ix.accounts,\n data: bs58.decode(ix.data)\n })),\n addressTableLookups: response.addressTableLookups\n });\n } else {\n return new Message(response);\n }\n}\n/**\n * The level of commitment desired when querying state\n *
\n *   'processed': Query the most recent block which has reached 1 confirmation by the connected node\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * 
\n */\n\n\nconst GetInflationGovernorResult = type({\n foundation: number(),\n foundationTerm: number(),\n initial: number(),\n taper: number(),\n terminal: number()\n});\n/**\n * The inflation reward for an epoch\n */\n\n/**\n * Expected JSON RPC response for the \"getInflationReward\" message\n */\nconst GetInflationRewardResult = jsonRpcResult(array(nullable(type({\n epoch: number(),\n effectiveSlot: number(),\n amount: number(),\n postBalance: number(),\n commission: optional(nullable(number()))\n}))));\n\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\nconst GetInflationRateResult = type({\n total: number(),\n validator: number(),\n foundation: number(),\n epoch: number()\n});\n/**\n * Information about the current epoch\n */\n\nconst GetEpochInfoResult = type({\n epoch: number(),\n slotIndex: number(),\n slotsInEpoch: number(),\n absoluteSlot: number(),\n blockHeight: optional(number()),\n transactionCount: optional(number())\n});\nconst GetEpochScheduleResult = type({\n slotsPerEpoch: number(),\n leaderScheduleSlotOffset: number(),\n warmup: boolean(),\n firstNormalEpoch: number(),\n firstNormalSlot: number()\n});\n/**\n * Leader schedule\n * (see https://docs.solana.com/terminology#leader-schedule)\n */\n\nconst GetLeaderScheduleResult = record(string(), array(number()));\n/**\n * Transaction error or null\n */\n\nconst TransactionErrorResult = nullable(union([type({}), string()]));\n/**\n * Signature status for a transaction\n */\n\nconst SignatureStatusResult = type({\n err: TransactionErrorResult\n});\n/**\n * Transaction signature received notification\n */\n\nconst SignatureReceivedResult = literal('receivedSignature');\n/**\n * Version info for a node\n */\n\nconst VersionResult = type({\n 'solana-core': string(),\n 'feature-set': optional(number())\n});\nconst SimulatedTransactionResponseStruct = jsonRpcResultAndContext(type({\n err: nullable(union([type({}), string()])),\n logs: nullable(array(string())),\n accounts: optional(nullable(array(nullable(type({\n executable: boolean(),\n owner: string(),\n lamports: number(),\n data: array(string()),\n rentEpoch: optional(number())\n }))))),\n unitsConsumed: optional(number()),\n returnData: optional(nullable(type({\n programId: string(),\n data: tuple([string(), literal('base64')])\n })))\n}));\n\n/**\n * Expected JSON RPC response for the \"getBlockProduction\" message\n */\nconst BlockProductionResponseStruct = jsonRpcResultAndContext(type({\n byIdentity: record(string(), array(number())),\n range: type({\n firstSlot: number(),\n lastSlot: number()\n })\n}));\n/**\n * A performance sample\n */\n\nfunction createRpcClient(url, httpHeaders, customFetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent) {\n const fetch = customFetch ? customFetch : fetchImpl;\n let agent;\n\n {\n if (httpAgent != null) {\n console.warn('You have supplied an `httpAgent` when creating a `Connection` in a browser environment.' + 'It has been ignored; `httpAgent` is only used in Node environments.');\n }\n }\n\n let fetchWithMiddleware;\n\n if (fetchMiddleware) {\n fetchWithMiddleware = async (info, init) => {\n const modifiedFetchArgs = await new Promise((resolve, reject) => {\n try {\n fetchMiddleware(info, init, (modifiedInfo, modifiedInit) => resolve([modifiedInfo, modifiedInit]));\n } catch (error) {\n reject(error);\n }\n });\n return await fetch(...modifiedFetchArgs);\n };\n }\n\n const clientBrowser = new RpcClient(async (request, callback) => {\n const options = {\n method: 'POST',\n body: request,\n agent,\n headers: Object.assign({\n 'Content-Type': 'application/json'\n }, httpHeaders || {}, COMMON_HTTP_HEADERS)\n };\n\n try {\n let too_many_requests_retries = 5;\n let res;\n let waitTime = 500;\n\n for (;;) {\n if (fetchWithMiddleware) {\n res = await fetchWithMiddleware(url, options);\n } else {\n res = await fetch(url, options);\n }\n\n if (res.status !== 429\n /* Too many requests */\n ) {\n break;\n }\n\n if (disableRetryOnRateLimit === true) {\n break;\n }\n\n too_many_requests_retries -= 1;\n\n if (too_many_requests_retries === 0) {\n break;\n }\n\n console.log(`Server responded with ${res.status} ${res.statusText}. Retrying after ${waitTime}ms delay...`);\n await sleep(waitTime);\n waitTime *= 2;\n }\n\n const text = await res.text();\n\n if (res.ok) {\n callback(null, text);\n } else {\n callback(new Error(`${res.status} ${res.statusText}: ${text}`));\n }\n } catch (err) {\n if (err instanceof Error) callback(err);\n }\n }, {});\n return clientBrowser;\n}\n\nfunction createRpcRequest(client) {\n return (method, args) => {\n return new Promise((resolve, reject) => {\n client.request(method, args, (err, response) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n\nfunction createRpcBatchRequest(client) {\n return requests => {\n return new Promise((resolve, reject) => {\n // Do nothing if requests is empty\n if (requests.length === 0) resolve([]);\n const batch = requests.map(params => {\n return client.request(params.methodName, params.args);\n });\n client.request(batch, (err, response) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(response);\n });\n });\n };\n}\n/**\n * Expected JSON RPC response for the \"getInflationGovernor\" message\n */\n\n\nconst GetInflationGovernorRpcResult = jsonRpcResult(GetInflationGovernorResult);\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\n\nconst GetInflationRateRpcResult = jsonRpcResult(GetInflationRateResult);\n/**\n * Expected JSON RPC response for the \"getEpochInfo\" message\n */\n\nconst GetEpochInfoRpcResult = jsonRpcResult(GetEpochInfoResult);\n/**\n * Expected JSON RPC response for the \"getEpochSchedule\" message\n */\n\nconst GetEpochScheduleRpcResult = jsonRpcResult(GetEpochScheduleResult);\n/**\n * Expected JSON RPC response for the \"getLeaderSchedule\" message\n */\n\nconst GetLeaderScheduleRpcResult = jsonRpcResult(GetLeaderScheduleResult);\n/**\n * Expected JSON RPC response for the \"minimumLedgerSlot\" and \"getFirstAvailableBlock\" messages\n */\n\nconst SlotRpcResult = jsonRpcResult(number());\n/**\n * Supply\n */\n\n/**\n * Expected JSON RPC response for the \"getSupply\" message\n */\nconst GetSupplyRpcResult = jsonRpcResultAndContext(type({\n total: number(),\n circulating: number(),\n nonCirculating: number(),\n nonCirculatingAccounts: array(PublicKeyFromString)\n}));\n/**\n * Token amount object which returns a token amount in different formats\n * for various client use cases.\n */\n\n/**\n * Expected JSON RPC structure for token amounts\n */\nconst TokenAmountResult = type({\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string())\n});\n/**\n * Token address and balance.\n */\n\n/**\n * Expected JSON RPC response for the \"getTokenLargestAccounts\" message\n */\nconst GetTokenLargestAccountsResult = jsonRpcResultAndContext(array(type({\n address: PublicKeyFromString,\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string())\n})));\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message\n */\n\nconst GetTokenAccountsByOwner = jsonRpcResultAndContext(array(type({\n pubkey: PublicKeyFromString,\n account: type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number()\n })\n})));\nconst ParsedAccountDataResult = type({\n program: string(),\n parsed: unknown(),\n space: number()\n});\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message with parsed data\n */\n\nconst GetParsedTokenAccountsByOwner = jsonRpcResultAndContext(array(type({\n pubkey: PublicKeyFromString,\n account: type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedAccountDataResult,\n rentEpoch: number()\n })\n})));\n/**\n * Pair of an account address and its balance\n */\n\n/**\n * Expected JSON RPC response for the \"getLargestAccounts\" message\n */\nconst GetLargestAccountsRpcResult = jsonRpcResultAndContext(array(type({\n lamports: number(),\n address: PublicKeyFromString\n})));\n/**\n * @internal\n */\n\nconst AccountInfoResult = type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number()\n});\n/**\n * @internal\n */\n\nconst KeyedAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult\n});\nconst ParsedOrRawAccountData = coerce(union([instance(Buffer), ParsedAccountDataResult]), union([RawAccountDataResult, ParsedAccountDataResult]), value => {\n if (Array.isArray(value)) {\n return create(value, BufferFromRawAccountData);\n } else {\n return value;\n }\n});\n/**\n * @internal\n */\n\nconst ParsedAccountInfoResult = type({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedOrRawAccountData,\n rentEpoch: number()\n});\nconst KeyedParsedAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: ParsedAccountInfoResult\n});\n/**\n * @internal\n */\n\nconst StakeActivationResult = type({\n state: union([literal('active'), literal('inactive'), literal('activating'), literal('deactivating')]),\n active: number(),\n inactive: number()\n});\n/**\n * Expected JSON RPC response for the \"getConfirmedSignaturesForAddress2\" message\n */\n\nconst GetConfirmedSignaturesForAddress2RpcResult = jsonRpcResult(array(type({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number()))\n})));\n/**\n * Expected JSON RPC response for the \"getSignaturesForAddress\" message\n */\n\nconst GetSignaturesForAddressRpcResult = jsonRpcResult(array(type({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number()))\n})));\n/***\n * Expected JSON RPC response for the \"accountNotification\" message\n */\n\nconst AccountNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(AccountInfoResult)\n});\n/**\n * @internal\n */\n\nconst ProgramAccountInfoResult = type({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult\n});\n/***\n * Expected JSON RPC response for the \"programNotification\" message\n */\n\nconst ProgramAccountNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(ProgramAccountInfoResult)\n});\n/**\n * @internal\n */\n\nconst SlotInfoResult = type({\n parent: number(),\n slot: number(),\n root: number()\n});\n/**\n * Expected JSON RPC response for the \"slotNotification\" message\n */\n\nconst SlotNotificationResult = type({\n subscription: number(),\n result: SlotInfoResult\n});\n/**\n * Slot updates which can be used for tracking the live progress of a cluster.\n * - `\"firstShredReceived\"`: connected node received the first shred of a block.\n * Indicates that a new block that is being produced.\n * - `\"completed\"`: connected node has received all shreds of a block. Indicates\n * a block was recently produced.\n * - `\"optimisticConfirmation\"`: block was optimistically confirmed by the\n * cluster. It is not guaranteed that an optimistic confirmation notification\n * will be sent for every finalized blocks.\n * - `\"root\"`: the connected node rooted this block.\n * - `\"createdBank\"`: the connected node has started validating this block.\n * - `\"frozen\"`: the connected node has validated this block.\n * - `\"dead\"`: the connected node failed to validate this block.\n */\n\n/**\n * @internal\n */\nconst SlotUpdateResult = union([type({\n type: union([literal('firstShredReceived'), literal('completed'), literal('optimisticConfirmation'), literal('root')]),\n slot: number(),\n timestamp: number()\n}), type({\n type: literal('createdBank'),\n parent: number(),\n slot: number(),\n timestamp: number()\n}), type({\n type: literal('frozen'),\n slot: number(),\n timestamp: number(),\n stats: type({\n numTransactionEntries: number(),\n numSuccessfulTransactions: number(),\n numFailedTransactions: number(),\n maxTransactionsPerEntry: number()\n })\n}), type({\n type: literal('dead'),\n slot: number(),\n timestamp: number(),\n err: string()\n})]);\n/**\n * Expected JSON RPC response for the \"slotsUpdatesNotification\" message\n */\n\nconst SlotUpdateNotificationResult = type({\n subscription: number(),\n result: SlotUpdateResult\n});\n/**\n * Expected JSON RPC response for the \"signatureNotification\" message\n */\n\nconst SignatureNotificationResult = type({\n subscription: number(),\n result: notificationResultAndContext(union([SignatureStatusResult, SignatureReceivedResult]))\n});\n/**\n * Expected JSON RPC response for the \"rootNotification\" message\n */\n\nconst RootNotificationResult = type({\n subscription: number(),\n result: number()\n});\nconst ContactInfoResult = type({\n pubkey: string(),\n gossip: nullable(string()),\n tpu: nullable(string()),\n rpc: nullable(string()),\n version: nullable(string())\n});\nconst VoteAccountInfoResult = type({\n votePubkey: string(),\n nodePubkey: string(),\n activatedStake: number(),\n epochVoteAccount: boolean(),\n epochCredits: array(tuple([number(), number(), number()])),\n commission: number(),\n lastVote: number(),\n rootSlot: nullable(number())\n});\n/**\n * Expected JSON RPC response for the \"getVoteAccounts\" message\n */\n\nconst GetVoteAccounts = jsonRpcResult(type({\n current: array(VoteAccountInfoResult),\n delinquent: array(VoteAccountInfoResult)\n}));\nconst ConfirmationStatus = union([literal('processed'), literal('confirmed'), literal('finalized')]);\nconst SignatureStatusResponse = type({\n slot: number(),\n confirmations: nullable(number()),\n err: TransactionErrorResult,\n confirmationStatus: optional(ConfirmationStatus)\n});\n/**\n * Expected JSON RPC response for the \"getSignatureStatuses\" message\n */\n\nconst GetSignatureStatusesRpcResult = jsonRpcResultAndContext(array(nullable(SignatureStatusResponse)));\n/**\n * Expected JSON RPC response for the \"getMinimumBalanceForRentExemption\" message\n */\n\nconst GetMinimumBalanceForRentExemptionRpcResult = jsonRpcResult(number());\nconst AddressTableLookupStruct = type({\n accountKey: PublicKeyFromString,\n writableIndexes: array(number()),\n readonlyIndexes: array(number())\n});\nconst ConfirmedTransactionResult = type({\n signatures: array(string()),\n message: type({\n accountKeys: array(string()),\n header: type({\n numRequiredSignatures: number(),\n numReadonlySignedAccounts: number(),\n numReadonlyUnsignedAccounts: number()\n }),\n instructions: array(type({\n accounts: array(number()),\n data: string(),\n programIdIndex: number()\n })),\n recentBlockhash: string(),\n addressTableLookups: optional(array(AddressTableLookupStruct))\n })\n});\nconst AnnotatedAccountKey = type({\n pubkey: PublicKeyFromString,\n signer: boolean(),\n writable: boolean(),\n source: optional(union([literal('transaction'), literal('lookupTable')]))\n});\nconst ConfirmedTransactionAccountsModeResult = type({\n accountKeys: array(AnnotatedAccountKey),\n signatures: array(string())\n});\nconst ParsedInstructionResult = type({\n parsed: unknown(),\n program: string(),\n programId: PublicKeyFromString\n});\nconst RawInstructionResult = type({\n accounts: array(PublicKeyFromString),\n data: string(),\n programId: PublicKeyFromString\n});\nconst InstructionResult = union([RawInstructionResult, ParsedInstructionResult]);\nconst UnknownInstructionResult = union([type({\n parsed: unknown(),\n program: string(),\n programId: string()\n}), type({\n accounts: array(string()),\n data: string(),\n programId: string()\n})]);\nconst ParsedOrRawInstruction = coerce(InstructionResult, UnknownInstructionResult, value => {\n if ('accounts' in value) {\n return create(value, RawInstructionResult);\n } else {\n return create(value, ParsedInstructionResult);\n }\n});\n/**\n * @internal\n */\n\nconst ParsedConfirmedTransactionResult = type({\n signatures: array(string()),\n message: type({\n accountKeys: array(AnnotatedAccountKey),\n instructions: array(ParsedOrRawInstruction),\n recentBlockhash: string(),\n addressTableLookups: optional(nullable(array(AddressTableLookupStruct)))\n })\n});\nconst TokenBalanceResult = type({\n accountIndex: number(),\n mint: string(),\n owner: optional(string()),\n uiTokenAmount: TokenAmountResult\n});\nconst LoadedAddressesResult = type({\n writable: array(PublicKeyFromString),\n readonly: array(PublicKeyFromString)\n});\n/**\n * @internal\n */\n\nconst ConfirmedTransactionMetaResult = type({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(nullable(array(type({\n index: number(),\n instructions: array(type({\n accounts: array(number()),\n data: string(),\n programIdIndex: number()\n }))\n })))),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n loadedAddresses: optional(LoadedAddressesResult),\n computeUnitsConsumed: optional(number())\n});\n/**\n * @internal\n */\n\nconst ParsedConfirmedTransactionMetaResult = type({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(nullable(array(type({\n index: number(),\n instructions: array(ParsedOrRawInstruction)\n })))),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n loadedAddresses: optional(LoadedAddressesResult),\n computeUnitsConsumed: optional(number())\n});\nconst TransactionVersionStruct = union([literal(0), literal('legacy')]);\n/** @internal */\n\nconst RewardsResult = type({\n pubkey: string(),\n lamports: number(),\n postBalance: nullable(number()),\n rewardType: nullable(string()),\n commission: optional(nullable(number()))\n});\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\n\nconst GetBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `none`\n */\n\nconst GetNoneModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `accounts`\n */\n\nconst GetAccountsModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionAccountsModeResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message\n */\n\nconst GetParsedBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ParsedConfirmedTransactionResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message when `transactionDetails` is `accounts`\n */\n\nconst GetParsedAccountsModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionAccountsModeResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n version: optional(TransactionVersionStruct)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message when `transactionDetails` is `none`\n */\n\nconst GetParsedNoneModeBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number()),\n blockHeight: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getConfirmedBlock\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetBlockRpcResult} instead.\n */\n\nconst GetConfirmedBlockRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(type({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult)\n })),\n rewards: optional(array(RewardsResult)),\n blockTime: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\n\nconst GetBlockSignaturesRpcResult = jsonRpcResult(nullable(type({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n signatures: array(string()),\n blockTime: nullable(number())\n})));\n/**\n * Expected JSON RPC response for the \"getTransaction\" message\n */\n\nconst GetTransactionRpcResult = jsonRpcResult(nullable(type({\n slot: number(),\n meta: ConfirmedTransactionMetaResult,\n blockTime: optional(nullable(number())),\n transaction: ConfirmedTransactionResult,\n version: optional(TransactionVersionStruct)\n})));\n/**\n * Expected parsed JSON RPC response for the \"getTransaction\" message\n */\n\nconst GetParsedTransactionRpcResult = jsonRpcResult(nullable(type({\n slot: number(),\n transaction: ParsedConfirmedTransactionResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n blockTime: optional(nullable(number())),\n version: optional(TransactionVersionStruct)\n})));\n/**\n * Expected JSON RPC response for the \"getRecentBlockhash\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetLatestBlockhashRpcResult} instead.\n */\n\nconst GetRecentBlockhashAndContextRpcResult = jsonRpcResultAndContext(type({\n blockhash: string(),\n feeCalculator: type({\n lamportsPerSignature: number()\n })\n}));\n/**\n * Expected JSON RPC response for the \"getLatestBlockhash\" message\n */\n\nconst GetLatestBlockhashRpcResult = jsonRpcResultAndContext(type({\n blockhash: string(),\n lastValidBlockHeight: number()\n}));\nconst PerfSampleResult = type({\n slot: number(),\n numTransactions: number(),\n numSlots: number(),\n samplePeriodSecs: number()\n});\n/*\n * Expected JSON RPC response for \"getRecentPerformanceSamples\" message\n */\n\nconst GetRecentPerformanceSamplesRpcResult = jsonRpcResult(array(PerfSampleResult));\n/**\n * Expected JSON RPC response for the \"getFeeCalculatorForBlockhash\" message\n */\n\nconst GetFeeCalculatorRpcResult = jsonRpcResultAndContext(nullable(type({\n feeCalculator: type({\n lamportsPerSignature: number()\n })\n})));\n/**\n * Expected JSON RPC response for the \"requestAirdrop\" message\n */\n\nconst RequestAirdropRpcResult = jsonRpcResult(string());\n/**\n * Expected JSON RPC response for the \"sendTransaction\" message\n */\n\nconst SendTransactionRpcResult = jsonRpcResult(string());\n/**\n * Information about the latest slot being processed by a node\n */\n\n/**\n * @internal\n */\nconst LogsResult = type({\n err: TransactionErrorResult,\n logs: array(string()),\n signature: string()\n});\n/**\n * Logs result.\n */\n\n/**\n * Expected JSON RPC response for the \"logsNotification\" message.\n */\nconst LogsNotificationResult = type({\n result: notificationResultAndContext(LogsResult),\n subscription: number()\n});\n/**\n * Filter for log subscriptions.\n */\n\n/** @internal */\nconst COMMON_HTTP_HEADERS = {\n 'solana-client': `js/${\"0.0.0-development\" }`\n};\n/**\n * A connection to a fullnode JSON RPC endpoint\n */\n\nclass Connection {\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal\n * A number that we increment every time an active connection closes.\n * Used to determine whether the same socket connection that was open\n * when an async operation started is the same one that's active when\n * its continuation fires.\n *\n */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /** @internal */\n\n /**\n * Special case.\n * After a signature is processed, RPCs automatically dispose of the\n * subscription on the server side. We need to track which of these\n * subscriptions have been disposed in such a way, so that we know\n * whether the client is dealing with a not-yet-processed signature\n * (in which case we must tear down the server subscription) or an\n * already-processed signature (in which case the client can simply\n * clear out the subscription locally without telling the server).\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n\n /** @internal */\n\n /**\n * Establish a JSON RPC connection\n *\n * @param endpoint URL to the fullnode JSON RPC endpoint\n * @param commitmentOrConfig optional default commitment level or optional ConnectionConfig configuration object\n */\n constructor(endpoint, commitmentOrConfig) {\n this._commitment = void 0;\n this._confirmTransactionInitialTimeout = void 0;\n this._rpcEndpoint = void 0;\n this._rpcWsEndpoint = void 0;\n this._rpcClient = void 0;\n this._rpcRequest = void 0;\n this._rpcBatchRequest = void 0;\n this._rpcWebSocket = void 0;\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketHeartbeat = null;\n this._rpcWebSocketIdleTimeout = null;\n this._rpcWebSocketGeneration = 0;\n this._disableBlockhashCaching = false;\n this._pollingBlockhash = false;\n this._blockhashInfo = {\n latestBlockhash: null,\n lastFetch: 0,\n transactionSignatures: [],\n simulatedSignatures: []\n };\n this._nextClientSubscriptionId = 0;\n this._subscriptionDisposeFunctionsByClientSubscriptionId = {};\n this._subscriptionHashByClientSubscriptionId = {};\n this._subscriptionStateChangeCallbacksByHash = {};\n this._subscriptionCallbacksByServerSubscriptionId = {};\n this._subscriptionsByHash = {};\n this._subscriptionsAutoDisposedByRpc = new Set();\n let wsEndpoint;\n let httpHeaders;\n let fetch;\n let fetchMiddleware;\n let disableRetryOnRateLimit;\n let httpAgent;\n\n if (commitmentOrConfig && typeof commitmentOrConfig === 'string') {\n this._commitment = commitmentOrConfig;\n } else if (commitmentOrConfig) {\n this._commitment = commitmentOrConfig.commitment;\n this._confirmTransactionInitialTimeout = commitmentOrConfig.confirmTransactionInitialTimeout;\n wsEndpoint = commitmentOrConfig.wsEndpoint;\n httpHeaders = commitmentOrConfig.httpHeaders;\n fetch = commitmentOrConfig.fetch;\n fetchMiddleware = commitmentOrConfig.fetchMiddleware;\n disableRetryOnRateLimit = commitmentOrConfig.disableRetryOnRateLimit;\n httpAgent = commitmentOrConfig.httpAgent;\n }\n\n this._rpcEndpoint = assertEndpointUrl(endpoint);\n this._rpcWsEndpoint = wsEndpoint || makeWebsocketUrl(endpoint);\n this._rpcClient = createRpcClient(endpoint, httpHeaders, fetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent);\n this._rpcRequest = createRpcRequest(this._rpcClient);\n this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient);\n this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, {\n autoconnect: false,\n max_reconnects: Infinity\n });\n\n this._rpcWebSocket.on('open', this._wsOnOpen.bind(this));\n\n this._rpcWebSocket.on('error', this._wsOnError.bind(this));\n\n this._rpcWebSocket.on('close', this._wsOnClose.bind(this));\n\n this._rpcWebSocket.on('accountNotification', this._wsOnAccountNotification.bind(this));\n\n this._rpcWebSocket.on('programNotification', this._wsOnProgramAccountNotification.bind(this));\n\n this._rpcWebSocket.on('slotNotification', this._wsOnSlotNotification.bind(this));\n\n this._rpcWebSocket.on('slotsUpdatesNotification', this._wsOnSlotUpdatesNotification.bind(this));\n\n this._rpcWebSocket.on('signatureNotification', this._wsOnSignatureNotification.bind(this));\n\n this._rpcWebSocket.on('rootNotification', this._wsOnRootNotification.bind(this));\n\n this._rpcWebSocket.on('logsNotification', this._wsOnLogsNotification.bind(this));\n }\n /**\n * The default commitment used for requests\n */\n\n\n get commitment() {\n return this._commitment;\n }\n /**\n * The RPC endpoint\n */\n\n\n get rpcEndpoint() {\n return this._rpcEndpoint;\n }\n /**\n * Fetch the balance for the specified public key, return with context\n */\n\n\n async getBalanceAndContext(publicKey, commitmentOrConfig) {\n /** @internal */\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([publicKey.toBase58()], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getBalance', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(number()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get balance for ${publicKey.toBase58()}`);\n }\n\n return res.result;\n }\n /**\n * Fetch the balance for the specified public key\n */\n\n\n async getBalance(publicKey, commitmentOrConfig) {\n return await this.getBalanceAndContext(publicKey, commitmentOrConfig).then(x => x.value).catch(e => {\n throw new Error('failed to get balance of account ' + publicKey.toBase58() + ': ' + e);\n });\n }\n /**\n * Fetch the estimated production time of a block\n */\n\n\n async getBlockTime(slot) {\n const unsafeRes = await this._rpcRequest('getBlockTime', [slot]);\n const res = create(unsafeRes, jsonRpcResult(nullable(number())));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get block time for slot ${slot}`);\n }\n\n return res.result;\n }\n /**\n * Fetch the lowest slot that the node has information about in its ledger.\n * This value may increase over time if the node is configured to purge older ledger data\n */\n\n\n async getMinimumLedgerSlot() {\n const unsafeRes = await this._rpcRequest('minimumLedgerSlot', []);\n const res = create(unsafeRes, jsonRpcResult(number()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get minimum ledger slot');\n }\n\n return res.result;\n }\n /**\n * Fetch the slot of the lowest confirmed block that has not been purged from the ledger\n */\n\n\n async getFirstAvailableBlock() {\n const unsafeRes = await this._rpcRequest('getFirstAvailableBlock', []);\n const res = create(unsafeRes, SlotRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get first available block');\n }\n\n return res.result;\n }\n /**\n * Fetch information about the current supply\n */\n\n\n async getSupply(config) {\n let configArg = {};\n\n if (typeof config === 'string') {\n configArg = {\n commitment: config\n };\n } else if (config) {\n configArg = { ...config,\n commitment: config && config.commitment || this.commitment\n };\n } else {\n configArg = {\n commitment: this.commitment\n };\n }\n\n const unsafeRes = await this._rpcRequest('getSupply', [configArg]);\n const res = create(unsafeRes, GetSupplyRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get supply');\n }\n\n return res.result;\n }\n /**\n * Fetch the current supply of a token mint\n */\n\n\n async getTokenSupply(tokenMintAddress, commitment) {\n const args = this._buildArgs([tokenMintAddress.toBase58()], commitment);\n\n const unsafeRes = await this._rpcRequest('getTokenSupply', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get token supply');\n }\n\n return res.result;\n }\n /**\n * Fetch the current balance of a token account\n */\n\n\n async getTokenAccountBalance(tokenAddress, commitment) {\n const args = this._buildArgs([tokenAddress.toBase58()], commitment);\n\n const unsafeRes = await this._rpcRequest('getTokenAccountBalance', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get token account balance');\n }\n\n return res.result;\n }\n /**\n * Fetch all the token accounts owned by the specified account\n *\n * @return {Promise}>>>}\n */\n\n\n async getTokenAccountsByOwner(ownerAddress, filter, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n let _args = [ownerAddress.toBase58()];\n\n if ('mint' in filter) {\n _args.push({\n mint: filter.mint.toBase58()\n });\n } else {\n _args.push({\n programId: filter.programId.toBase58()\n });\n }\n\n const args = this._buildArgs(_args, commitment, 'base64', config);\n\n const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n const res = create(unsafeRes, GetTokenAccountsByOwner);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get token accounts owned by account ${ownerAddress.toBase58()}`);\n }\n\n return res.result;\n }\n /**\n * Fetch parsed token accounts owned by the specified account\n *\n * @return {Promise}>>>}\n */\n\n\n async getParsedTokenAccountsByOwner(ownerAddress, filter, commitment) {\n let _args = [ownerAddress.toBase58()];\n\n if ('mint' in filter) {\n _args.push({\n mint: filter.mint.toBase58()\n });\n } else {\n _args.push({\n programId: filter.programId.toBase58()\n });\n }\n\n const args = this._buildArgs(_args, commitment, 'jsonParsed');\n\n const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n const res = create(unsafeRes, GetParsedTokenAccountsByOwner);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get token accounts owned by account ${ownerAddress.toBase58()}`);\n }\n\n return res.result;\n }\n /**\n * Fetch the 20 largest accounts with their current balances\n */\n\n\n async getLargestAccounts(config) {\n const arg = { ...config,\n commitment: config && config.commitment || this.commitment\n };\n const args = arg.filter || arg.commitment ? [arg] : [];\n const unsafeRes = await this._rpcRequest('getLargestAccounts', args);\n const res = create(unsafeRes, GetLargestAccountsRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get largest accounts');\n }\n\n return res.result;\n }\n /**\n * Fetch the 20 largest token accounts with their current balances\n * for a given mint.\n */\n\n\n async getTokenLargestAccounts(mintAddress, commitment) {\n const args = this._buildArgs([mintAddress.toBase58()], commitment);\n\n const unsafeRes = await this._rpcRequest('getTokenLargestAccounts', args);\n const res = create(unsafeRes, GetTokenLargestAccountsResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get token largest accounts');\n }\n\n return res.result;\n }\n /**\n * Fetch all the account info for the specified public key, return with context\n */\n\n\n async getAccountInfoAndContext(publicKey, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([publicKey.toBase58()], commitment, 'base64', config);\n\n const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(nullable(AccountInfoResult)));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info about account ${publicKey.toBase58()}`);\n }\n\n return res.result;\n }\n /**\n * Fetch parsed account info for the specified public key\n */\n\n\n async getParsedAccountInfo(publicKey, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([publicKey.toBase58()], commitment, 'jsonParsed', config);\n\n const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(nullable(ParsedAccountInfoResult)));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info about account ${publicKey.toBase58()}`);\n }\n\n return res.result;\n }\n /**\n * Fetch all the account info for the specified public key\n */\n\n\n async getAccountInfo(publicKey, commitmentOrConfig) {\n try {\n const res = await this.getAccountInfoAndContext(publicKey, commitmentOrConfig);\n return res.value;\n } catch (e) {\n throw new Error('failed to get info about account ' + publicKey.toBase58() + ': ' + e);\n }\n }\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n */\n\n\n async getMultipleParsedAccounts(publicKeys, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n const keys = publicKeys.map(key => key.toBase58());\n\n const args = this._buildArgs([keys], commitment, 'jsonParsed', config);\n\n const unsafeRes = await this._rpcRequest('getMultipleAccounts', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(array(nullable(ParsedAccountInfoResult))));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info for accounts ${keys}`);\n }\n\n return res.result;\n }\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n */\n\n\n async getMultipleAccountsInfoAndContext(publicKeys, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const keys = publicKeys.map(key => key.toBase58());\n\n const args = this._buildArgs([keys], commitment, 'base64', config);\n\n const unsafeRes = await this._rpcRequest('getMultipleAccounts', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(array(nullable(AccountInfoResult))));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get info for accounts ${keys}`);\n }\n\n return res.result;\n }\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys\n */\n\n\n async getMultipleAccountsInfo(publicKeys, commitmentOrConfig) {\n const res = await this.getMultipleAccountsInfoAndContext(publicKeys, commitmentOrConfig);\n return res.value;\n }\n /**\n * Returns epoch activation information for a stake account that has been delegated\n */\n\n\n async getStakeActivation(publicKey, commitmentOrConfig, epoch) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([publicKey.toBase58()], commitment, undefined\n /* encoding */\n , { ...config,\n epoch: epoch != null ? epoch : config?.epoch\n });\n\n const unsafeRes = await this._rpcRequest('getStakeActivation', args);\n const res = create(unsafeRes, jsonRpcResult(StakeActivationResult));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get Stake Activation ${publicKey.toBase58()}`);\n }\n\n return res.result;\n }\n /**\n * Fetch all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n\n\n async getProgramAccounts(programId, configOrCommitment) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(configOrCommitment);\n const {\n encoding,\n ...configWithoutEncoding\n } = config || {};\n\n const args = this._buildArgs([programId.toBase58()], commitment, encoding || 'base64', configWithoutEncoding);\n\n const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n const res = create(unsafeRes, jsonRpcResult(array(KeyedAccountInfoResult)));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get accounts owned by program ${programId.toBase58()}`);\n }\n\n return res.result;\n }\n /**\n * Fetch and parse all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n\n\n async getParsedProgramAccounts(programId, configOrCommitment) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(configOrCommitment);\n\n const args = this._buildArgs([programId.toBase58()], commitment, 'jsonParsed', config);\n\n const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n const res = create(unsafeRes, jsonRpcResult(array(KeyedParsedAccountInfoResult)));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get accounts owned by program ${programId.toBase58()}`);\n }\n\n return res.result;\n }\n\n // eslint-disable-next-line no-dupe-class-members\n async confirmTransaction(strategy, commitment) {\n let rawSignature;\n\n if (typeof strategy == 'string') {\n rawSignature = strategy;\n } else {\n const config = strategy;\n\n if (config.abortSignal?.aborted) {\n return Promise.reject(config.abortSignal.reason);\n }\n\n rawSignature = config.signature;\n }\n\n let decodedSignature;\n\n try {\n decodedSignature = bs58.decode(rawSignature);\n } catch (err) {\n throw new Error('signature must be base58 encoded: ' + rawSignature);\n }\n\n assert(decodedSignature.length === 64, 'signature has invalid length');\n\n if (typeof strategy === 'string') {\n return await this.confirmTransactionUsingLegacyTimeoutStrategy({\n commitment: commitment || this.commitment,\n signature: rawSignature\n });\n } else if ('lastValidBlockHeight' in strategy) {\n return await this.confirmTransactionUsingBlockHeightExceedanceStrategy({\n commitment: commitment || this.commitment,\n strategy\n });\n } else {\n return await this.confirmTransactionUsingDurableNonceStrategy({\n commitment: commitment || this.commitment,\n strategy\n });\n }\n }\n\n getCancellationPromise(signal) {\n return new Promise((_, reject) => {\n if (signal == null) {\n return;\n }\n\n if (signal.aborted) {\n reject(signal.reason);\n } else {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n });\n }\n });\n }\n\n getTransactionConfirmationPromise({\n commitment,\n signature\n }) {\n let signatureSubscriptionId;\n let disposeSignatureSubscriptionStateChangeObserver;\n let done = false;\n const confirmationPromise = new Promise((resolve, reject) => {\n try {\n signatureSubscriptionId = this.onSignature(signature, (result, context) => {\n signatureSubscriptionId = undefined;\n const response = {\n context,\n value: result\n };\n resolve({\n __type: TransactionStatus.PROCESSED,\n response\n });\n }, commitment);\n const subscriptionSetupPromise = new Promise(resolveSubscriptionSetup => {\n if (signatureSubscriptionId == null) {\n resolveSubscriptionSetup();\n } else {\n disposeSignatureSubscriptionStateChangeObserver = this._onSubscriptionStateChange(signatureSubscriptionId, nextState => {\n if (nextState === 'subscribed') {\n resolveSubscriptionSetup();\n }\n });\n }\n });\n\n (async () => {\n await subscriptionSetupPromise;\n if (done) return;\n const response = await this.getSignatureStatus(signature);\n if (done) return;\n\n if (response == null) {\n return;\n }\n\n const {\n context,\n value\n } = response;\n\n if (value == null) {\n return;\n }\n\n if (value?.err) {\n reject(value.err);\n } else {\n switch (commitment) {\n case 'confirmed':\n case 'single':\n case 'singleGossip':\n {\n if (value.confirmationStatus === 'processed') {\n return;\n }\n\n break;\n }\n\n case 'finalized':\n case 'max':\n case 'root':\n {\n if (value.confirmationStatus === 'processed' || value.confirmationStatus === 'confirmed') {\n return;\n }\n\n break;\n }\n // exhaust enums to ensure full coverage\n\n case 'processed':\n case 'recent':\n }\n\n done = true;\n resolve({\n __type: TransactionStatus.PROCESSED,\n response: {\n context,\n value\n }\n });\n }\n })();\n } catch (err) {\n reject(err);\n }\n });\n\n const abortConfirmation = () => {\n if (disposeSignatureSubscriptionStateChangeObserver) {\n disposeSignatureSubscriptionStateChangeObserver();\n disposeSignatureSubscriptionStateChangeObserver = undefined;\n }\n\n if (signatureSubscriptionId != null) {\n this.removeSignatureListener(signatureSubscriptionId);\n signatureSubscriptionId = undefined;\n }\n };\n\n return {\n abortConfirmation,\n confirmationPromise\n };\n }\n\n async confirmTransactionUsingBlockHeightExceedanceStrategy({\n commitment,\n strategy: {\n abortSignal,\n lastValidBlockHeight,\n signature\n }\n }) {\n let done = false;\n const expiryPromise = new Promise(resolve => {\n const checkBlockHeight = async () => {\n try {\n const blockHeight = await this.getBlockHeight(commitment);\n return blockHeight;\n } catch (_e) {\n return -1;\n }\n };\n\n (async () => {\n let currentBlockHeight = await checkBlockHeight();\n if (done) return;\n\n while (currentBlockHeight <= lastValidBlockHeight) {\n await sleep(1000);\n if (done) return;\n currentBlockHeight = await checkBlockHeight();\n if (done) return;\n }\n\n resolve({\n __type: TransactionStatus.BLOCKHEIGHT_EXCEEDED\n });\n })();\n });\n const {\n abortConfirmation,\n confirmationPromise\n } = this.getTransactionConfirmationPromise({\n commitment,\n signature\n });\n const cancellationPromise = this.getCancellationPromise(abortSignal);\n let result;\n\n try {\n const outcome = await Promise.race([cancellationPromise, confirmationPromise, expiryPromise]);\n\n if (outcome.__type === TransactionStatus.PROCESSED) {\n result = outcome.response;\n } else {\n throw new TransactionExpiredBlockheightExceededError(signature);\n }\n } finally {\n done = true;\n abortConfirmation();\n }\n\n return result;\n }\n\n async confirmTransactionUsingDurableNonceStrategy({\n commitment,\n strategy: {\n abortSignal,\n minContextSlot,\n nonceAccountPubkey,\n nonceValue,\n signature\n }\n }) {\n let done = false;\n const expiryPromise = new Promise(resolve => {\n let currentNonceValue = nonceValue;\n let lastCheckedSlot = null;\n\n const getCurrentNonceValue = async () => {\n try {\n const {\n context,\n value: nonceAccount\n } = await this.getNonceAndContext(nonceAccountPubkey, {\n commitment,\n minContextSlot\n });\n lastCheckedSlot = context.slot;\n return nonceAccount?.nonce;\n } catch (e) {\n // If for whatever reason we can't reach/read the nonce\n // account, just keep using the last-known value.\n return currentNonceValue;\n }\n };\n\n (async () => {\n currentNonceValue = await getCurrentNonceValue();\n if (done) return;\n\n while (true // eslint-disable-line no-constant-condition\n ) {\n if (nonceValue !== currentNonceValue) {\n resolve({\n __type: TransactionStatus.NONCE_INVALID,\n slotInWhichNonceDidAdvance: lastCheckedSlot\n });\n return;\n }\n\n await sleep(2000);\n if (done) return;\n currentNonceValue = await getCurrentNonceValue();\n if (done) return;\n }\n })();\n });\n const {\n abortConfirmation,\n confirmationPromise\n } = this.getTransactionConfirmationPromise({\n commitment,\n signature\n });\n const cancellationPromise = this.getCancellationPromise(abortSignal);\n let result;\n\n try {\n const outcome = await Promise.race([cancellationPromise, confirmationPromise, expiryPromise]);\n\n if (outcome.__type === TransactionStatus.PROCESSED) {\n result = outcome.response;\n } else {\n // Double check that the transaction is indeed unconfirmed.\n let signatureStatus;\n\n while (true // eslint-disable-line no-constant-condition\n ) {\n const status = await this.getSignatureStatus(signature);\n\n if (status == null) {\n break;\n }\n\n if (status.context.slot < (outcome.slotInWhichNonceDidAdvance ?? minContextSlot)) {\n await sleep(400);\n continue;\n }\n\n signatureStatus = status;\n break;\n }\n\n if (signatureStatus?.value) {\n const commitmentForStatus = commitment || 'finalized';\n const {\n confirmationStatus\n } = signatureStatus.value;\n\n switch (commitmentForStatus) {\n case 'processed':\n case 'recent':\n if (confirmationStatus !== 'processed' && confirmationStatus !== 'confirmed' && confirmationStatus !== 'finalized') {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n\n break;\n\n case 'confirmed':\n case 'single':\n case 'singleGossip':\n if (confirmationStatus !== 'confirmed' && confirmationStatus !== 'finalized') {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n\n break;\n\n case 'finalized':\n case 'max':\n case 'root':\n if (confirmationStatus !== 'finalized') {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n\n break;\n\n default:\n // Exhaustive switch.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (_ => {})(commitmentForStatus);\n\n }\n\n result = {\n context: signatureStatus.context,\n value: {\n err: signatureStatus.value.err\n }\n };\n } else {\n throw new TransactionExpiredNonceInvalidError(signature);\n }\n }\n } finally {\n done = true;\n abortConfirmation();\n }\n\n return result;\n }\n\n async confirmTransactionUsingLegacyTimeoutStrategy({\n commitment,\n signature\n }) {\n let timeoutId;\n const expiryPromise = new Promise(resolve => {\n let timeoutMs = this._confirmTransactionInitialTimeout || 60 * 1000;\n\n switch (commitment) {\n case 'processed':\n case 'recent':\n case 'single':\n case 'confirmed':\n case 'singleGossip':\n {\n timeoutMs = this._confirmTransactionInitialTimeout || 30 * 1000;\n break;\n }\n }\n\n timeoutId = setTimeout(() => resolve({\n __type: TransactionStatus.TIMED_OUT,\n timeoutMs\n }), timeoutMs);\n });\n const {\n abortConfirmation,\n confirmationPromise\n } = this.getTransactionConfirmationPromise({\n commitment,\n signature\n });\n let result;\n\n try {\n const outcome = await Promise.race([confirmationPromise, expiryPromise]);\n\n if (outcome.__type === TransactionStatus.PROCESSED) {\n result = outcome.response;\n } else {\n throw new TransactionExpiredTimeoutError(signature, outcome.timeoutMs / 1000);\n }\n } finally {\n clearTimeout(timeoutId);\n abortConfirmation();\n }\n\n return result;\n }\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n\n\n async getClusterNodes() {\n const unsafeRes = await this._rpcRequest('getClusterNodes', []);\n const res = create(unsafeRes, jsonRpcResult(array(ContactInfoResult)));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get cluster nodes');\n }\n\n return res.result;\n }\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n\n\n async getVoteAccounts(commitment) {\n const args = this._buildArgs([], commitment);\n\n const unsafeRes = await this._rpcRequest('getVoteAccounts', args);\n const res = create(unsafeRes, GetVoteAccounts);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get vote accounts');\n }\n\n return res.result;\n }\n /**\n * Fetch the current slot that the node is processing\n */\n\n\n async getSlot(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getSlot', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get slot');\n }\n\n return res.result;\n }\n /**\n * Fetch the current slot leader of the cluster\n */\n\n\n async getSlotLeader(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getSlotLeader', args);\n const res = create(unsafeRes, jsonRpcResult(string()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get slot leader');\n }\n\n return res.result;\n }\n /**\n * Fetch `limit` number of slot leaders starting from `startSlot`\n *\n * @param startSlot fetch slot leaders starting from this slot\n * @param limit number of slot leaders to return\n */\n\n\n async getSlotLeaders(startSlot, limit) {\n const args = [startSlot, limit];\n const unsafeRes = await this._rpcRequest('getSlotLeaders', args);\n const res = create(unsafeRes, jsonRpcResult(array(PublicKeyFromString)));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get slot leaders');\n }\n\n return res.result;\n }\n /**\n * Fetch the current status of a signature\n */\n\n\n async getSignatureStatus(signature, config) {\n const {\n context,\n value: values\n } = await this.getSignatureStatuses([signature], config);\n assert(values.length === 1);\n const value = values[0];\n return {\n context,\n value\n };\n }\n /**\n * Fetch the current statuses of a batch of signatures\n */\n\n\n async getSignatureStatuses(signatures, config) {\n const params = [signatures];\n\n if (config) {\n params.push(config);\n }\n\n const unsafeRes = await this._rpcRequest('getSignatureStatuses', params);\n const res = create(unsafeRes, GetSignatureStatusesRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get signature status');\n }\n\n return res.result;\n }\n /**\n * Fetch the current transaction count of the cluster\n */\n\n\n async getTransactionCount(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getTransactionCount', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction count');\n }\n\n return res.result;\n }\n /**\n * Fetch the current total currency supply of the cluster in lamports\n *\n * @deprecated Deprecated since v1.2.8. Please use {@link getSupply} instead.\n */\n\n\n async getTotalSupply(commitment) {\n const result = await this.getSupply({\n commitment,\n excludeNonCirculatingAccountsList: true\n });\n return result.value.total;\n }\n /**\n * Fetch the cluster InflationGovernor parameters\n */\n\n\n async getInflationGovernor(commitment) {\n const args = this._buildArgs([], commitment);\n\n const unsafeRes = await this._rpcRequest('getInflationGovernor', args);\n const res = create(unsafeRes, GetInflationGovernorRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation');\n }\n\n return res.result;\n }\n /**\n * Fetch the inflation reward for a list of addresses for an epoch\n */\n\n\n async getInflationReward(addresses, epoch, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([addresses.map(pubkey => pubkey.toBase58())], commitment, undefined\n /* encoding */\n , { ...config,\n epoch: epoch != null ? epoch : config?.epoch\n });\n\n const unsafeRes = await this._rpcRequest('getInflationReward', args);\n const res = create(unsafeRes, GetInflationRewardResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation reward');\n }\n\n return res.result;\n }\n /**\n * Fetch the specific inflation values for the current epoch\n */\n\n\n async getInflationRate() {\n const unsafeRes = await this._rpcRequest('getInflationRate', []);\n const res = create(unsafeRes, GetInflationRateRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get inflation rate');\n }\n\n return res.result;\n }\n /**\n * Fetch the Epoch Info parameters\n */\n\n\n async getEpochInfo(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getEpochInfo', args);\n const res = create(unsafeRes, GetEpochInfoRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get epoch info');\n }\n\n return res.result;\n }\n /**\n * Fetch the Epoch Schedule parameters\n */\n\n\n async getEpochSchedule() {\n const unsafeRes = await this._rpcRequest('getEpochSchedule', []);\n const res = create(unsafeRes, GetEpochScheduleRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get epoch schedule');\n }\n\n const epochSchedule = res.result;\n return new EpochSchedule(epochSchedule.slotsPerEpoch, epochSchedule.leaderScheduleSlotOffset, epochSchedule.warmup, epochSchedule.firstNormalEpoch, epochSchedule.firstNormalSlot);\n }\n /**\n * Fetch the leader schedule for the current epoch\n * @return {Promise>}\n */\n\n\n async getLeaderSchedule() {\n const unsafeRes = await this._rpcRequest('getLeaderSchedule', []);\n const res = create(unsafeRes, GetLeaderScheduleRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get leader schedule');\n }\n\n return res.result;\n }\n /**\n * Fetch the minimum balance needed to exempt an account of `dataLength`\n * size from rent\n */\n\n\n async getMinimumBalanceForRentExemption(dataLength, commitment) {\n const args = this._buildArgs([dataLength], commitment);\n\n const unsafeRes = await this._rpcRequest('getMinimumBalanceForRentExemption', args);\n const res = create(unsafeRes, GetMinimumBalanceForRentExemptionRpcResult);\n\n if ('error' in res) {\n console.warn('Unable to fetch minimum balance for rent exemption');\n return 0;\n }\n\n return res.result;\n }\n /**\n * Fetch a recent blockhash from the cluster, return with context\n * @return {Promise>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n\n\n async getRecentBlockhashAndContext(commitment) {\n const args = this._buildArgs([], commitment);\n\n const unsafeRes = await this._rpcRequest('getRecentBlockhash', args);\n const res = create(unsafeRes, GetRecentBlockhashAndContextRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get recent blockhash');\n }\n\n return res.result;\n }\n /**\n * Fetch recent performance samples\n * @return {Promise>}\n */\n\n\n async getRecentPerformanceSamples(limit) {\n const unsafeRes = await this._rpcRequest('getRecentPerformanceSamples', limit ? [limit] : []);\n const res = create(unsafeRes, GetRecentPerformanceSamplesRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get recent performance samples');\n }\n\n return res.result;\n }\n /**\n * Fetch the fee calculator for a recent blockhash from the cluster, return with context\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getFeeForMessage} instead.\n */\n\n\n async getFeeCalculatorForBlockhash(blockhash, commitment) {\n const args = this._buildArgs([blockhash], commitment);\n\n const unsafeRes = await this._rpcRequest('getFeeCalculatorForBlockhash', args);\n const res = create(unsafeRes, GetFeeCalculatorRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get fee calculator');\n }\n\n const {\n context,\n value\n } = res.result;\n return {\n context,\n value: value !== null ? value.feeCalculator : null\n };\n }\n /**\n * Fetch the fee for a message from the cluster, return with context\n */\n\n\n async getFeeForMessage(message, commitment) {\n const wireMessage = toBuffer(message.serialize()).toString('base64');\n\n const args = this._buildArgs([wireMessage], commitment);\n\n const unsafeRes = await this._rpcRequest('getFeeForMessage', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(nullable(number())));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get fee for message');\n }\n\n if (res.result === null) {\n throw new Error('invalid blockhash');\n }\n\n return res.result;\n }\n /**\n * Fetch a recent blockhash from the cluster\n * @return {Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n\n\n async getRecentBlockhash(commitment) {\n try {\n const res = await this.getRecentBlockhashAndContext(commitment);\n return res.value;\n } catch (e) {\n throw new Error('failed to get recent blockhash: ' + e);\n }\n }\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise}\n */\n\n\n async getLatestBlockhash(commitmentOrConfig) {\n try {\n const res = await this.getLatestBlockhashAndContext(commitmentOrConfig);\n return res.value;\n } catch (e) {\n throw new Error('failed to get recent blockhash: ' + e);\n }\n }\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise}\n */\n\n\n async getLatestBlockhashAndContext(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getLatestBlockhash', args);\n const res = create(unsafeRes, GetLatestBlockhashRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get latest blockhash');\n }\n\n return res.result;\n }\n /**\n * Fetch the node version\n */\n\n\n async getVersion() {\n const unsafeRes = await this._rpcRequest('getVersion', []);\n const res = create(unsafeRes, jsonRpcResult(VersionResult));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get version');\n }\n\n return res.result;\n }\n /**\n * Fetch the genesis hash\n */\n\n\n async getGenesisHash() {\n const unsafeRes = await this._rpcRequest('getGenesisHash', []);\n const res = create(unsafeRes, jsonRpcResult(string()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get genesis hash');\n }\n\n return res.result;\n }\n /**\n * Fetch a processed block from the cluster.\n *\n * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n * setting the `maxSupportedTransactionVersion` property.\n */\n\n\n /**\n * Fetch a processed block from the cluster.\n */\n // eslint-disable-next-line no-dupe-class-members\n async getBlock(slot, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getBlock', args);\n\n try {\n switch (config?.transactionDetails) {\n case 'accounts':\n {\n const res = create(unsafeRes, GetAccountsModeBlockRpcResult);\n\n if ('error' in res) {\n throw res.error;\n }\n\n return res.result;\n }\n\n case 'none':\n {\n const res = create(unsafeRes, GetNoneModeBlockRpcResult);\n\n if ('error' in res) {\n throw res.error;\n }\n\n return res.result;\n }\n\n default:\n {\n const res = create(unsafeRes, GetBlockRpcResult);\n\n if ('error' in res) {\n throw res.error;\n }\n\n const {\n result\n } = res;\n return result ? { ...result,\n transactions: result.transactions.map(({\n transaction,\n meta,\n version\n }) => ({\n meta,\n transaction: { ...transaction,\n message: versionedMessageFromResponse(version, transaction.message)\n },\n version\n }))\n } : null;\n }\n }\n } catch (e) {\n throw new SolanaJSONRPCError(e, 'failed to get confirmed block');\n }\n }\n /**\n * Fetch parsed transaction details for a confirmed or finalized block\n */\n\n\n // eslint-disable-next-line no-dupe-class-members\n async getParsedBlock(slot, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, 'jsonParsed', config);\n\n const unsafeRes = await this._rpcRequest('getBlock', args);\n\n try {\n switch (config?.transactionDetails) {\n case 'accounts':\n {\n const res = create(unsafeRes, GetParsedAccountsModeBlockRpcResult);\n\n if ('error' in res) {\n throw res.error;\n }\n\n return res.result;\n }\n\n case 'none':\n {\n const res = create(unsafeRes, GetParsedNoneModeBlockRpcResult);\n\n if ('error' in res) {\n throw res.error;\n }\n\n return res.result;\n }\n\n default:\n {\n const res = create(unsafeRes, GetParsedBlockRpcResult);\n\n if ('error' in res) {\n throw res.error;\n }\n\n return res.result;\n }\n }\n } catch (e) {\n throw new SolanaJSONRPCError(e, 'failed to get block');\n }\n }\n /*\n * Returns the current block height of the node\n */\n\n\n async getBlockHeight(commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgs([], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getBlockHeight', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get block height information');\n }\n\n return res.result;\n }\n /*\n * Returns recent block production information from the current or previous epoch\n */\n\n\n async getBlockProduction(configOrCommitment) {\n let extra;\n let commitment;\n\n if (typeof configOrCommitment === 'string') {\n commitment = configOrCommitment;\n } else if (configOrCommitment) {\n const {\n commitment: c,\n ...rest\n } = configOrCommitment;\n commitment = c;\n extra = rest;\n }\n\n const args = this._buildArgs([], commitment, 'base64', extra);\n\n const unsafeRes = await this._rpcRequest('getBlockProduction', args);\n const res = create(unsafeRes, BlockProductionResponseStruct);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get block production information');\n }\n\n return res.result;\n }\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n *\n * @deprecated Instead, call `getTransaction` using a\n * `GetVersionedTransactionConfig` by setting the\n * `maxSupportedTransactionVersion` property.\n */\n\n\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n */\n // eslint-disable-next-line no-dupe-class-members\n async getTransaction(signature, rawConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(rawConfig);\n\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, undefined\n /* encoding */\n , config);\n\n const unsafeRes = await this._rpcRequest('getTransaction', args);\n const res = create(unsafeRes, GetTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n }\n\n const result = res.result;\n if (!result) return result;\n return { ...result,\n transaction: { ...result.transaction,\n message: versionedMessageFromResponse(result.version, result.transaction.message)\n }\n };\n }\n /**\n * Fetch parsed transaction details for a confirmed or finalized transaction\n */\n\n\n async getParsedTransaction(signature, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed', config);\n\n const unsafeRes = await this._rpcRequest('getTransaction', args);\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n }\n\n return res.result;\n }\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n */\n\n\n async getParsedTransactions(signatures, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed', config);\n\n return {\n methodName: 'getTransaction',\n args\n };\n });\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map(unsafeRes => {\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n }\n\n return res.result;\n });\n return res;\n }\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link TransactionResponse}.\n *\n * @deprecated Instead, call `getTransactions` using a\n * `GetVersionedTransactionConfig` by setting the\n * `maxSupportedTransactionVersion` property.\n */\n\n\n /**\n * Fetch transaction details for a batch of confirmed transactions.\n * Similar to {@link getParsedTransactions} but returns a {@link\n * VersionedTransactionResponse}.\n */\n // eslint-disable-next-line no-dupe-class-members\n async getTransactions(signatures, commitmentOrConfig) {\n const {\n commitment,\n config\n } = extractCommitmentFromConfig(commitmentOrConfig);\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, undefined\n /* encoding */\n , config);\n\n return {\n methodName: 'getTransaction',\n args\n };\n });\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map(unsafeRes => {\n const res = create(unsafeRes, GetTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n }\n\n const result = res.result;\n if (!result) return result;\n return { ...result,\n transaction: { ...result.transaction,\n message: versionedMessageFromResponse(result.version, result.transaction.message)\n }\n };\n });\n return res;\n }\n /**\n * Fetch a list of Transactions and transaction statuses from the cluster\n * for a confirmed block.\n *\n * @deprecated Deprecated since v1.13.0. Please use {@link getBlock} instead.\n */\n\n\n async getConfirmedBlock(slot, commitment) {\n const args = this._buildArgsAtLeastConfirmed([slot], commitment);\n\n const unsafeRes = await this._rpcRequest('getConfirmedBlock', args);\n const res = create(unsafeRes, GetConfirmedBlockRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n }\n\n const result = res.result;\n\n if (!result) {\n throw new Error('Confirmed block ' + slot + ' not found');\n }\n\n const block = { ...result,\n transactions: result.transactions.map(({\n transaction,\n meta\n }) => {\n const message = new Message(transaction.message);\n return {\n meta,\n transaction: { ...transaction,\n message\n }\n };\n })\n };\n return { ...block,\n transactions: block.transactions.map(({\n transaction,\n meta\n }) => {\n return {\n meta,\n transaction: Transaction.populate(transaction.message, transaction.signatures)\n };\n })\n };\n }\n /**\n * Fetch confirmed blocks between two slots\n */\n\n\n async getBlocks(startSlot, endSlot, commitment) {\n const args = this._buildArgsAtLeastConfirmed(endSlot !== undefined ? [startSlot, endSlot] : [startSlot], commitment);\n\n const unsafeRes = await this._rpcRequest('getBlocks', args);\n const res = create(unsafeRes, jsonRpcResult(array(number())));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get blocks');\n }\n\n return res.result;\n }\n /**\n * Fetch a list of Signatures from the cluster for a block, excluding rewards\n */\n\n\n async getBlockSignatures(slot, commitment) {\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined, {\n transactionDetails: 'signatures',\n rewards: false\n });\n\n const unsafeRes = await this._rpcRequest('getBlock', args);\n const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get block');\n }\n\n const result = res.result;\n\n if (!result) {\n throw new Error('Block ' + slot + ' not found');\n }\n\n return result;\n }\n /**\n * Fetch a list of Signatures from the cluster for a confirmed block, excluding rewards\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getBlockSignatures} instead.\n */\n\n\n async getConfirmedBlockSignatures(slot, commitment) {\n const args = this._buildArgsAtLeastConfirmed([slot], commitment, undefined, {\n transactionDetails: 'signatures',\n rewards: false\n });\n\n const unsafeRes = await this._rpcRequest('getConfirmedBlock', args);\n const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n }\n\n const result = res.result;\n\n if (!result) {\n throw new Error('Confirmed block ' + slot + ' not found');\n }\n\n return result;\n }\n /**\n * Fetch a transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getTransaction} instead.\n */\n\n\n async getConfirmedTransaction(signature, commitment) {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment);\n\n const unsafeRes = await this._rpcRequest('getConfirmedTransaction', args);\n const res = create(unsafeRes, GetTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n }\n\n const result = res.result;\n if (!result) return result;\n const message = new Message(result.transaction.message);\n const signatures = result.transaction.signatures;\n return { ...result,\n transaction: Transaction.populate(message, signatures)\n };\n }\n /**\n * Fetch parsed transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransaction} instead.\n */\n\n\n async getParsedConfirmedTransaction(signature, commitment) {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed');\n\n const unsafeRes = await this._rpcRequest('getConfirmedTransaction', args);\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed transaction');\n }\n\n return res.result;\n }\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransactions} instead.\n */\n\n\n async getParsedConfirmedTransactions(signatures, commitment) {\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment, 'jsonParsed');\n\n return {\n methodName: 'getConfirmedTransaction',\n args\n };\n });\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map(unsafeRes => {\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed transactions');\n }\n\n return res.result;\n });\n return res;\n }\n /**\n * Fetch a list of all the confirmed signatures for transactions involving an address\n * within a specified slot range. Max range allowed is 10,000 slots.\n *\n * @deprecated Deprecated since v1.3. Please use {@link getConfirmedSignaturesForAddress2} instead.\n *\n * @param address queried address\n * @param startSlot start slot, inclusive\n * @param endSlot end slot, inclusive\n */\n\n\n async getConfirmedSignaturesForAddress(address, startSlot, endSlot) {\n let options = {};\n let firstAvailableBlock = await this.getFirstAvailableBlock();\n\n while (!('until' in options)) {\n startSlot--;\n\n if (startSlot <= 0 || startSlot < firstAvailableBlock) {\n break;\n }\n\n try {\n const block = await this.getConfirmedBlockSignatures(startSlot, 'finalized');\n\n if (block.signatures.length > 0) {\n options.until = block.signatures[block.signatures.length - 1].toString();\n }\n } catch (err) {\n if (err instanceof Error && err.message.includes('skipped')) {\n continue;\n } else {\n throw err;\n }\n }\n }\n\n let highestConfirmedRoot = await this.getSlot('finalized');\n\n while (!('before' in options)) {\n endSlot++;\n\n if (endSlot > highestConfirmedRoot) {\n break;\n }\n\n try {\n const block = await this.getConfirmedBlockSignatures(endSlot);\n\n if (block.signatures.length > 0) {\n options.before = block.signatures[block.signatures.length - 1].toString();\n }\n } catch (err) {\n if (err instanceof Error && err.message.includes('skipped')) {\n continue;\n } else {\n throw err;\n }\n }\n }\n\n const confirmedSignatureInfo = await this.getConfirmedSignaturesForAddress2(address, options);\n return confirmedSignatureInfo.map(info => info.signature);\n }\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n\n\n async getConfirmedSignaturesForAddress2(address, options, commitment) {\n const args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, undefined, options);\n\n const unsafeRes = await this._rpcRequest('getConfirmedSignaturesForAddress2', args);\n const res = create(unsafeRes, GetConfirmedSignaturesForAddress2RpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get confirmed signatures for address');\n }\n\n return res.result;\n }\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n\n\n async getSignaturesForAddress(address, options, commitment) {\n const args = this._buildArgsAtLeastConfirmed([address.toBase58()], commitment, undefined, options);\n\n const unsafeRes = await this._rpcRequest('getSignaturesForAddress', args);\n const res = create(unsafeRes, GetSignaturesForAddressRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, 'failed to get signatures for address');\n }\n\n return res.result;\n }\n\n async getAddressLookupTable(accountKey, config) {\n const {\n context,\n value: accountInfo\n } = await this.getAccountInfoAndContext(accountKey, config);\n let value = null;\n\n if (accountInfo !== null) {\n value = new AddressLookupTableAccount({\n key: accountKey,\n state: AddressLookupTableAccount.deserialize(accountInfo.data)\n });\n }\n\n return {\n context,\n value\n };\n }\n /**\n * Fetch the contents of a Nonce account from the cluster, return with context\n */\n\n\n async getNonceAndContext(nonceAccount, commitmentOrConfig) {\n const {\n context,\n value: accountInfo\n } = await this.getAccountInfoAndContext(nonceAccount, commitmentOrConfig);\n let value = null;\n\n if (accountInfo !== null) {\n value = NonceAccount.fromAccountData(accountInfo.data);\n }\n\n return {\n context,\n value\n };\n }\n /**\n * Fetch the contents of a Nonce account from the cluster\n */\n\n\n async getNonce(nonceAccount, commitmentOrConfig) {\n return await this.getNonceAndContext(nonceAccount, commitmentOrConfig).then(x => x.value).catch(e => {\n throw new Error('failed to get nonce for account ' + nonceAccount.toBase58() + ': ' + e);\n });\n }\n /**\n * Request an allocation of lamports to the specified address\n *\n * ```typescript\n * import { Connection, PublicKey, LAMPORTS_PER_SOL } from \"@solana/web3.js\";\n *\n * (async () => {\n * const connection = new Connection(\"https://api.testnet.solana.com\", \"confirmed\");\n * const myAddress = new PublicKey(\"2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM\");\n * const signature = await connection.requestAirdrop(myAddress, LAMPORTS_PER_SOL);\n * await connection.confirmTransaction(signature);\n * })();\n * ```\n */\n\n\n async requestAirdrop(to, lamports) {\n const unsafeRes = await this._rpcRequest('requestAirdrop', [to.toBase58(), lamports]);\n const res = create(unsafeRes, RequestAirdropRpcResult);\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `airdrop to ${to.toBase58()} failed`);\n }\n\n return res.result;\n }\n /**\n * @internal\n */\n\n\n async _blockhashWithExpiryBlockHeight(disableCache) {\n if (!disableCache) {\n // Wait for polling to finish\n while (this._pollingBlockhash) {\n await sleep(100);\n }\n\n const timeSinceFetch = Date.now() - this._blockhashInfo.lastFetch;\n\n const expired = timeSinceFetch >= BLOCKHASH_CACHE_TIMEOUT_MS;\n\n if (this._blockhashInfo.latestBlockhash !== null && !expired) {\n return this._blockhashInfo.latestBlockhash;\n }\n }\n\n return await this._pollNewBlockhash();\n }\n /**\n * @internal\n */\n\n\n async _pollNewBlockhash() {\n this._pollingBlockhash = true;\n\n try {\n const startTime = Date.now();\n const cachedLatestBlockhash = this._blockhashInfo.latestBlockhash;\n const cachedBlockhash = cachedLatestBlockhash ? cachedLatestBlockhash.blockhash : null;\n\n for (let i = 0; i < 50; i++) {\n const latestBlockhash = await this.getLatestBlockhash('finalized');\n\n if (cachedBlockhash !== latestBlockhash.blockhash) {\n this._blockhashInfo = {\n latestBlockhash,\n lastFetch: Date.now(),\n transactionSignatures: [],\n simulatedSignatures: []\n };\n return latestBlockhash;\n } // Sleep for approximately half a slot\n\n\n await sleep(MS_PER_SLOT / 2);\n }\n\n throw new Error(`Unable to obtain a new blockhash after ${Date.now() - startTime}ms`);\n } finally {\n this._pollingBlockhash = false;\n }\n }\n /**\n * get the stake minimum delegation\n */\n\n\n async getStakeMinimumDelegation(config) {\n const {\n commitment,\n config: configArg\n } = extractCommitmentFromConfig(config);\n\n const args = this._buildArgs([], commitment, 'base64', configArg);\n\n const unsafeRes = await this._rpcRequest('getStakeMinimumDelegation', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(number()));\n\n if ('error' in res) {\n throw new SolanaJSONRPCError(res.error, `failed to get stake minimum delegation`);\n }\n\n return res.result;\n }\n /**\n * Simulate a transaction\n *\n * @deprecated Instead, call {@link simulateTransaction} with {@link\n * VersionedTransaction} and {@link SimulateTransactionConfig} parameters\n */\n\n\n /**\n * Simulate a transaction\n */\n // eslint-disable-next-line no-dupe-class-members\n async simulateTransaction(transactionOrMessage, configOrSigners, includeAccounts) {\n if ('message' in transactionOrMessage) {\n const versionedTx = transactionOrMessage;\n const wireTransaction = versionedTx.serialize();\n const encodedTransaction = Buffer.from(wireTransaction).toString('base64');\n\n if (Array.isArray(configOrSigners) || includeAccounts !== undefined) {\n throw new Error('Invalid arguments');\n }\n\n const config = configOrSigners || {};\n config.encoding = 'base64';\n\n if (!('commitment' in config)) {\n config.commitment = this.commitment;\n }\n\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('simulateTransaction', args);\n const res = create(unsafeRes, SimulatedTransactionResponseStruct);\n\n if ('error' in res) {\n throw new Error('failed to simulate transaction: ' + res.error.message);\n }\n\n return res.result;\n }\n\n let transaction;\n\n if (transactionOrMessage instanceof Transaction) {\n let originalTx = transactionOrMessage;\n transaction = new Transaction();\n transaction.feePayer = originalTx.feePayer;\n transaction.instructions = transactionOrMessage.instructions;\n transaction.nonceInfo = originalTx.nonceInfo;\n transaction.signatures = originalTx.signatures;\n } else {\n transaction = Transaction.populate(transactionOrMessage); // HACK: this function relies on mutating the populated transaction\n\n transaction._message = transaction._json = undefined;\n }\n\n if (configOrSigners !== undefined && !Array.isArray(configOrSigners)) {\n throw new Error('Invalid arguments');\n }\n\n const signers = configOrSigners;\n\n if (transaction.nonceInfo && signers) {\n transaction.sign(...signers);\n } else {\n let disableCache = this._disableBlockhashCaching;\n\n for (;;) {\n const latestBlockhash = await this._blockhashWithExpiryBlockHeight(disableCache);\n transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n transaction.recentBlockhash = latestBlockhash.blockhash;\n if (!signers) break;\n transaction.sign(...signers);\n\n if (!transaction.signature) {\n throw new Error('!signature'); // should never happen\n }\n\n const signature = transaction.signature.toString('base64');\n\n if (!this._blockhashInfo.simulatedSignatures.includes(signature) && !this._blockhashInfo.transactionSignatures.includes(signature)) {\n // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n this._blockhashInfo.simulatedSignatures.push(signature);\n\n break;\n } else {\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n }\n }\n }\n\n const message = transaction._compile();\n\n const signData = message.serialize();\n\n const wireTransaction = transaction._serialize(signData);\n\n const encodedTransaction = wireTransaction.toString('base64');\n const config = {\n encoding: 'base64',\n commitment: this.commitment\n };\n\n if (includeAccounts) {\n const addresses = (Array.isArray(includeAccounts) ? includeAccounts : message.nonProgramIds()).map(key => key.toBase58());\n config['accounts'] = {\n encoding: 'base64',\n addresses\n };\n }\n\n if (signers) {\n config.sigVerify = true;\n }\n\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('simulateTransaction', args);\n const res = create(unsafeRes, SimulatedTransactionResponseStruct);\n\n if ('error' in res) {\n let logs;\n\n if ('data' in res.error) {\n logs = res.error.data.logs;\n\n if (logs && Array.isArray(logs)) {\n const traceIndent = '\\n ';\n const logTrace = traceIndent + logs.join(traceIndent);\n console.error(res.error.message, logTrace);\n }\n }\n\n throw new SendTransactionError('failed to simulate transaction: ' + res.error.message, logs);\n }\n\n return res.result;\n }\n /**\n * Sign and send a transaction\n *\n * @deprecated Instead, call {@link sendTransaction} with a {@link\n * VersionedTransaction}\n */\n\n\n /**\n * Sign and send a transaction\n */\n // eslint-disable-next-line no-dupe-class-members\n async sendTransaction(transaction, signersOrOptions, options) {\n if ('version' in transaction) {\n if (signersOrOptions && Array.isArray(signersOrOptions)) {\n throw new Error('Invalid arguments');\n }\n\n const wireTransaction = transaction.serialize();\n return await this.sendRawTransaction(wireTransaction, options);\n }\n\n if (signersOrOptions === undefined || !Array.isArray(signersOrOptions)) {\n throw new Error('Invalid arguments');\n }\n\n const signers = signersOrOptions;\n\n if (transaction.nonceInfo) {\n transaction.sign(...signers);\n } else {\n let disableCache = this._disableBlockhashCaching;\n\n for (;;) {\n const latestBlockhash = await this._blockhashWithExpiryBlockHeight(disableCache);\n transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n transaction.recentBlockhash = latestBlockhash.blockhash;\n transaction.sign(...signers);\n\n if (!transaction.signature) {\n throw new Error('!signature'); // should never happen\n }\n\n const signature = transaction.signature.toString('base64');\n\n if (!this._blockhashInfo.transactionSignatures.includes(signature)) {\n // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n this._blockhashInfo.transactionSignatures.push(signature);\n\n break;\n } else {\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n }\n }\n }\n\n const wireTransaction = transaction.serialize();\n return await this.sendRawTransaction(wireTransaction, options);\n }\n /**\n * Send a transaction that has already been signed and serialized into the\n * wire format\n */\n\n\n async sendRawTransaction(rawTransaction, options) {\n const encodedTransaction = toBuffer(rawTransaction).toString('base64');\n const result = await this.sendEncodedTransaction(encodedTransaction, options);\n return result;\n }\n /**\n * Send a transaction that has already been signed, serialized into the\n * wire format, and encoded as a base64 string\n */\n\n\n async sendEncodedTransaction(encodedTransaction, options) {\n const config = {\n encoding: 'base64'\n };\n const skipPreflight = options && options.skipPreflight;\n const preflightCommitment = options && options.preflightCommitment || this.commitment;\n\n if (options && options.maxRetries != null) {\n config.maxRetries = options.maxRetries;\n }\n\n if (options && options.minContextSlot != null) {\n config.minContextSlot = options.minContextSlot;\n }\n\n if (skipPreflight) {\n config.skipPreflight = skipPreflight;\n }\n\n if (preflightCommitment) {\n config.preflightCommitment = preflightCommitment;\n }\n\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('sendTransaction', args);\n const res = create(unsafeRes, SendTransactionRpcResult);\n\n if ('error' in res) {\n let logs;\n\n if ('data' in res.error) {\n logs = res.error.data.logs;\n }\n\n throw new SendTransactionError('failed to send transaction: ' + res.error.message, logs);\n }\n\n return res.result;\n }\n /**\n * @internal\n */\n\n\n _wsOnOpen() {\n this._rpcWebSocketConnected = true;\n this._rpcWebSocketHeartbeat = setInterval(() => {\n // Ping server every 5s to prevent idle timeouts\n (async () => {\n try {\n await this._rpcWebSocket.notify('ping'); // eslint-disable-next-line no-empty\n } catch {}\n })();\n }, 5000);\n\n this._updateSubscriptions();\n }\n /**\n * @internal\n */\n\n\n _wsOnError(err) {\n this._rpcWebSocketConnected = false;\n console.error('ws error:', err.message);\n }\n /**\n * @internal\n */\n\n\n _wsOnClose(code) {\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketGeneration = (this._rpcWebSocketGeneration + 1) % Number.MAX_SAFE_INTEGER;\n\n if (this._rpcWebSocketIdleTimeout) {\n clearTimeout(this._rpcWebSocketIdleTimeout);\n this._rpcWebSocketIdleTimeout = null;\n }\n\n if (this._rpcWebSocketHeartbeat) {\n clearInterval(this._rpcWebSocketHeartbeat);\n this._rpcWebSocketHeartbeat = null;\n }\n\n if (code === 1000) {\n // explicit close, check if any subscriptions have been made since close\n this._updateSubscriptions();\n\n return;\n } // implicit close, prepare subscriptions for auto-reconnect\n\n\n this._subscriptionCallbacksByServerSubscriptionId = {};\n Object.entries(this._subscriptionsByHash).forEach(([hash, subscription]) => {\n this._setSubscription(hash, { ...subscription,\n state: 'pending'\n });\n });\n }\n /**\n * @internal\n */\n\n\n _setSubscription(hash, nextSubscription) {\n const prevState = this._subscriptionsByHash[hash]?.state;\n this._subscriptionsByHash[hash] = nextSubscription;\n\n if (prevState !== nextSubscription.state) {\n const stateChangeCallbacks = this._subscriptionStateChangeCallbacksByHash[hash];\n\n if (stateChangeCallbacks) {\n stateChangeCallbacks.forEach(cb => {\n try {\n cb(nextSubscription.state); // eslint-disable-next-line no-empty\n } catch {}\n });\n }\n }\n }\n /**\n * @internal\n */\n\n\n _onSubscriptionStateChange(clientSubscriptionId, callback) {\n var _this$_subscriptionSt;\n\n const hash = this._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n\n if (hash == null) {\n return () => {};\n }\n\n const stateChangeCallbacks = (_this$_subscriptionSt = this._subscriptionStateChangeCallbacksByHash)[hash] || (_this$_subscriptionSt[hash] = new Set());\n stateChangeCallbacks.add(callback);\n return () => {\n stateChangeCallbacks.delete(callback);\n\n if (stateChangeCallbacks.size === 0) {\n delete this._subscriptionStateChangeCallbacksByHash[hash];\n }\n };\n }\n /**\n * @internal\n */\n\n\n async _updateSubscriptions() {\n if (Object.keys(this._subscriptionsByHash).length === 0) {\n if (this._rpcWebSocketConnected) {\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketIdleTimeout = setTimeout(() => {\n this._rpcWebSocketIdleTimeout = null;\n\n try {\n this._rpcWebSocket.close();\n } catch (err) {\n // swallow error if socket has already been closed.\n if (err instanceof Error) {\n console.log(`Error when closing socket connection: ${err.message}`);\n }\n }\n }, 500);\n }\n\n return;\n }\n\n if (this._rpcWebSocketIdleTimeout !== null) {\n clearTimeout(this._rpcWebSocketIdleTimeout);\n this._rpcWebSocketIdleTimeout = null;\n this._rpcWebSocketConnected = true;\n }\n\n if (!this._rpcWebSocketConnected) {\n this._rpcWebSocket.connect();\n\n return;\n }\n\n const activeWebSocketGeneration = this._rpcWebSocketGeneration;\n\n const isCurrentConnectionStillActive = () => {\n return activeWebSocketGeneration === this._rpcWebSocketGeneration;\n };\n\n await Promise.all( // Don't be tempted to change this to `Object.entries`. We call\n // `_updateSubscriptions` recursively when processing the state,\n // so it's important that we look up the *current* version of\n // each subscription, every time we process a hash.\n Object.keys(this._subscriptionsByHash).map(async hash => {\n const subscription = this._subscriptionsByHash[hash];\n\n if (subscription === undefined) {\n // This entry has since been deleted. Skip.\n return;\n }\n\n switch (subscription.state) {\n case 'pending':\n case 'unsubscribed':\n if (subscription.callbacks.size === 0) {\n /**\n * You can end up here when:\n *\n * - a subscription has recently unsubscribed\n * without having new callbacks added to it\n * while the unsubscribe was in flight, or\n * - when a pending subscription has its\n * listeners removed before a request was\n * sent to the server.\n *\n * Being that nobody is interested in this\n * subscription any longer, delete it.\n */\n delete this._subscriptionsByHash[hash];\n\n if (subscription.state === 'unsubscribed') {\n delete this._subscriptionCallbacksByServerSubscriptionId[subscription.serverSubscriptionId];\n }\n\n await this._updateSubscriptions();\n return;\n }\n\n await (async () => {\n const {\n args,\n method\n } = subscription;\n\n try {\n this._setSubscription(hash, { ...subscription,\n state: 'subscribing'\n });\n\n const serverSubscriptionId = await this._rpcWebSocket.call(method, args);\n\n this._setSubscription(hash, { ...subscription,\n serverSubscriptionId,\n state: 'subscribed'\n });\n\n this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId] = subscription.callbacks;\n await this._updateSubscriptions();\n } catch (e) {\n if (e instanceof Error) {\n console.error(`${method} error for argument`, args, e.message);\n }\n\n if (!isCurrentConnectionStillActive()) {\n return;\n } // TODO: Maybe add an 'errored' state or a retry limit?\n\n\n this._setSubscription(hash, { ...subscription,\n state: 'pending'\n });\n\n await this._updateSubscriptions();\n }\n })();\n break;\n\n case 'subscribed':\n if (subscription.callbacks.size === 0) {\n // By the time we successfully set up a subscription\n // with the server, the client stopped caring about it.\n // Tear it down now.\n await (async () => {\n const {\n serverSubscriptionId,\n unsubscribeMethod\n } = subscription;\n\n if (this._subscriptionsAutoDisposedByRpc.has(serverSubscriptionId)) {\n /**\n * Special case.\n * If we're dealing with a subscription that has been auto-\n * disposed by the RPC, then we can skip the RPC call to\n * tear down the subscription here.\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n this._subscriptionsAutoDisposedByRpc.delete(serverSubscriptionId);\n } else {\n this._setSubscription(hash, { ...subscription,\n state: 'unsubscribing'\n });\n\n this._setSubscription(hash, { ...subscription,\n state: 'unsubscribing'\n });\n\n try {\n await this._rpcWebSocket.call(unsubscribeMethod, [serverSubscriptionId]);\n } catch (e) {\n if (e instanceof Error) {\n console.error(`${unsubscribeMethod} error:`, e.message);\n }\n\n if (!isCurrentConnectionStillActive()) {\n return;\n } // TODO: Maybe add an 'errored' state or a retry limit?\n\n\n this._setSubscription(hash, { ...subscription,\n state: 'subscribed'\n });\n\n await this._updateSubscriptions();\n return;\n }\n }\n\n this._setSubscription(hash, { ...subscription,\n state: 'unsubscribed'\n });\n\n await this._updateSubscriptions();\n })();\n }\n\n break;\n }\n }));\n }\n /**\n * @internal\n */\n\n\n _handleServerNotification(serverSubscriptionId, callbackArgs) {\n const callbacks = this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId];\n\n if (callbacks === undefined) {\n return;\n }\n\n callbacks.forEach(cb => {\n try {\n cb( // I failed to find a way to convince TypeScript that `cb` is of type\n // `TCallback` which is certainly compatible with `Parameters`.\n // See https://github.com/microsoft/TypeScript/issues/47615\n // @ts-ignore\n ...callbackArgs);\n } catch (e) {\n console.error(e);\n }\n });\n }\n /**\n * @internal\n */\n\n\n _wsOnAccountNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, AccountNotificationResult);\n\n this._handleServerNotification(subscription, [result.value, result.context]);\n }\n /**\n * @internal\n */\n\n\n _makeSubscription(subscriptionConfig,\n /**\n * When preparing `args` for a call to `_makeSubscription`, be sure\n * to carefully apply a default `commitment` property, if necessary.\n *\n * - If the user supplied a `commitment` use that.\n * - Otherwise, if the `Connection::commitment` is set, use that.\n * - Otherwise, set it to the RPC server default: `finalized`.\n *\n * This is extremely important to ensure that these two fundamentally\n * identical subscriptions produce the same identifying hash:\n *\n * - A subscription made without specifying a commitment.\n * - A subscription made where the commitment specified is the same\n * as the default applied to the subscription above.\n *\n * Example; these two subscriptions must produce the same hash:\n *\n * - An `accountSubscribe` subscription for `'PUBKEY'`\n * - An `accountSubscribe` subscription for `'PUBKEY'` with commitment\n * `'finalized'`.\n *\n * See the 'making a subscription with defaulted params omitted' test\n * in `connection-subscriptions.ts` for more.\n */\n args) {\n const clientSubscriptionId = this._nextClientSubscriptionId++;\n const hash = fastStableStringify$1([subscriptionConfig.method, args]);\n const existingSubscription = this._subscriptionsByHash[hash];\n\n if (existingSubscription === undefined) {\n this._subscriptionsByHash[hash] = { ...subscriptionConfig,\n args,\n callbacks: new Set([subscriptionConfig.callback]),\n state: 'pending'\n };\n } else {\n existingSubscription.callbacks.add(subscriptionConfig.callback);\n }\n\n this._subscriptionHashByClientSubscriptionId[clientSubscriptionId] = hash;\n\n this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId] = async () => {\n delete this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId];\n delete this._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n const subscription = this._subscriptionsByHash[hash];\n assert(subscription !== undefined, `Could not find a \\`Subscription\\` when tearing down client subscription #${clientSubscriptionId}`);\n subscription.callbacks.delete(subscriptionConfig.callback);\n await this._updateSubscriptions();\n };\n\n this._updateSubscriptions();\n\n return clientSubscriptionId;\n }\n /**\n * Register a callback to be invoked whenever the specified account changes\n *\n * @param publicKey Public key of the account to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @return subscription id\n */\n\n\n onAccountChange(publicKey, callback, commitment) {\n const args = this._buildArgs([publicKey.toBase58()], commitment || this._commitment || 'finalized', // Apply connection/server default.\n 'base64');\n\n return this._makeSubscription({\n callback,\n method: 'accountSubscribe',\n unsubscribeMethod: 'accountUnsubscribe'\n }, args);\n }\n /**\n * Deregister an account notification callback\n *\n * @param id client subscription id to deregister\n */\n\n\n async removeAccountChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'account change');\n }\n /**\n * @internal\n */\n\n\n _wsOnProgramAccountNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, ProgramAccountNotificationResult);\n\n this._handleServerNotification(subscription, [{\n accountId: result.value.pubkey,\n accountInfo: result.value.account\n }, result.context]);\n }\n /**\n * Register a callback to be invoked whenever accounts owned by the\n * specified program change\n *\n * @param programId Public key of the program to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @param filters The program account filters to pass into the RPC method\n * @return subscription id\n */\n\n\n onProgramAccountChange(programId, callback, commitment, filters) {\n const args = this._buildArgs([programId.toBase58()], commitment || this._commitment || 'finalized', // Apply connection/server default.\n 'base64'\n /* encoding */\n , filters ? {\n filters: filters\n } : undefined\n /* extra */\n );\n\n return this._makeSubscription({\n callback,\n method: 'programSubscribe',\n unsubscribeMethod: 'programUnsubscribe'\n }, args);\n }\n /**\n * Deregister an account notification callback\n *\n * @param id client subscription id to deregister\n */\n\n\n async removeProgramAccountChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'program account change');\n }\n /**\n * Registers a callback to be invoked whenever logs are emitted.\n */\n\n\n onLogs(filter, callback, commitment) {\n const args = this._buildArgs([typeof filter === 'object' ? {\n mentions: [filter.toString()]\n } : filter], commitment || this._commitment || 'finalized' // Apply connection/server default.\n );\n\n return this._makeSubscription({\n callback,\n method: 'logsSubscribe',\n unsubscribeMethod: 'logsUnsubscribe'\n }, args);\n }\n /**\n * Deregister a logs callback.\n *\n * @param id client subscription id to deregister.\n */\n\n\n async removeOnLogsListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'logs');\n }\n /**\n * @internal\n */\n\n\n _wsOnLogsNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, LogsNotificationResult);\n\n this._handleServerNotification(subscription, [result.value, result.context]);\n }\n /**\n * @internal\n */\n\n\n _wsOnSlotNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, SlotNotificationResult);\n\n this._handleServerNotification(subscription, [result]);\n }\n /**\n * Register a callback to be invoked upon slot changes\n *\n * @param callback Function to invoke whenever the slot changes\n * @return subscription id\n */\n\n\n onSlotChange(callback) {\n return this._makeSubscription({\n callback,\n method: 'slotSubscribe',\n unsubscribeMethod: 'slotUnsubscribe'\n }, []\n /* args */\n );\n }\n /**\n * Deregister a slot notification callback\n *\n * @param id client subscription id to deregister\n */\n\n\n async removeSlotChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'slot change');\n }\n /**\n * @internal\n */\n\n\n _wsOnSlotUpdatesNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, SlotUpdateNotificationResult);\n\n this._handleServerNotification(subscription, [result]);\n }\n /**\n * Register a callback to be invoked upon slot updates. {@link SlotUpdate}'s\n * may be useful to track live progress of a cluster.\n *\n * @param callback Function to invoke whenever the slot updates\n * @return subscription id\n */\n\n\n onSlotUpdate(callback) {\n return this._makeSubscription({\n callback,\n method: 'slotsUpdatesSubscribe',\n unsubscribeMethod: 'slotsUpdatesUnsubscribe'\n }, []\n /* args */\n );\n }\n /**\n * Deregister a slot update notification callback\n *\n * @param id client subscription id to deregister\n */\n\n\n async removeSlotUpdateListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'slot update');\n }\n /**\n * @internal\n */\n\n\n async _unsubscribeClientSubscription(clientSubscriptionId, subscriptionName) {\n const dispose = this._subscriptionDisposeFunctionsByClientSubscriptionId[clientSubscriptionId];\n\n if (dispose) {\n await dispose();\n } else {\n console.warn('Ignored unsubscribe request because an active subscription with id ' + `\\`${clientSubscriptionId}\\` for '${subscriptionName}' events ` + 'could not be found.');\n }\n }\n\n _buildArgs(args, override, encoding, extra) {\n const commitment = override || this._commitment;\n\n if (commitment || encoding || extra) {\n let options = {};\n\n if (encoding) {\n options.encoding = encoding;\n }\n\n if (commitment) {\n options.commitment = commitment;\n }\n\n if (extra) {\n options = Object.assign(options, extra);\n }\n\n args.push(options);\n }\n\n return args;\n }\n /**\n * @internal\n */\n\n\n _buildArgsAtLeastConfirmed(args, override, encoding, extra) {\n const commitment = override || this._commitment;\n\n if (commitment && !['confirmed', 'finalized'].includes(commitment)) {\n throw new Error('Using Connection with default commitment: `' + this._commitment + '`, but method requires at least `confirmed`');\n }\n\n return this._buildArgs(args, override, encoding, extra);\n }\n /**\n * @internal\n */\n\n\n _wsOnSignatureNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, SignatureNotificationResult);\n\n if (result.value !== 'receivedSignature') {\n /**\n * Special case.\n * After a signature is processed, RPCs automatically dispose of the\n * subscription on the server side. We need to track which of these\n * subscriptions have been disposed in such a way, so that we know\n * whether the client is dealing with a not-yet-processed signature\n * (in which case we must tear down the server subscription) or an\n * already-processed signature (in which case the client can simply\n * clear out the subscription locally without telling the server).\n *\n * NOTE: There is a proposal to eliminate this special case, here:\n * https://github.com/solana-labs/solana/issues/18892\n */\n this._subscriptionsAutoDisposedByRpc.add(subscription);\n }\n\n this._handleServerNotification(subscription, result.value === 'receivedSignature' ? [{\n type: 'received'\n }, result.context] : [{\n type: 'status',\n result: result.value\n }, result.context]);\n }\n /**\n * Register a callback to be invoked upon signature updates\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param commitment Specify the commitment level signature must reach before notification\n * @return subscription id\n */\n\n\n onSignature(signature, callback, commitment) {\n const args = this._buildArgs([signature], commitment || this._commitment || 'finalized' // Apply connection/server default.\n );\n\n const clientSubscriptionId = this._makeSubscription({\n callback: (notification, context) => {\n if (notification.type === 'status') {\n callback(notification.result, context); // Signatures subscriptions are auto-removed by the RPC service\n // so no need to explicitly send an unsubscribe message.\n\n try {\n this.removeSignatureListener(clientSubscriptionId); // eslint-disable-next-line no-empty\n } catch (_err) {// Already removed.\n }\n }\n },\n method: 'signatureSubscribe',\n unsubscribeMethod: 'signatureUnsubscribe'\n }, args);\n\n return clientSubscriptionId;\n }\n /**\n * Register a callback to be invoked when a transaction is\n * received and/or processed.\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param options Enable received notifications and set the commitment\n * level that signature must reach before notification\n * @return subscription id\n */\n\n\n onSignatureWithOptions(signature, callback, options) {\n const {\n commitment,\n ...extra\n } = { ...options,\n commitment: options && options.commitment || this._commitment || 'finalized' // Apply connection/server default.\n\n };\n\n const args = this._buildArgs([signature], commitment, undefined\n /* encoding */\n , extra);\n\n const clientSubscriptionId = this._makeSubscription({\n callback: (notification, context) => {\n callback(notification, context); // Signatures subscriptions are auto-removed by the RPC service\n // so no need to explicitly send an unsubscribe message.\n\n try {\n this.removeSignatureListener(clientSubscriptionId); // eslint-disable-next-line no-empty\n } catch (_err) {// Already removed.\n }\n },\n method: 'signatureSubscribe',\n unsubscribeMethod: 'signatureUnsubscribe'\n }, args);\n\n return clientSubscriptionId;\n }\n /**\n * Deregister a signature notification callback\n *\n * @param id client subscription id to deregister\n */\n\n\n async removeSignatureListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'signature result');\n }\n /**\n * @internal\n */\n\n\n _wsOnRootNotification(notification) {\n const {\n result,\n subscription\n } = create(notification, RootNotificationResult);\n\n this._handleServerNotification(subscription, [result]);\n }\n /**\n * Register a callback to be invoked upon root changes\n *\n * @param callback Function to invoke whenever the root changes\n * @return subscription id\n */\n\n\n onRootChange(callback) {\n return this._makeSubscription({\n callback,\n method: 'rootSubscribe',\n unsubscribeMethod: 'rootUnsubscribe'\n }, []\n /* args */\n );\n }\n /**\n * Deregister a root notification callback\n *\n * @param id client subscription id to deregister\n */\n\n\n async removeRootChangeListener(clientSubscriptionId) {\n await this._unsubscribeClientSubscription(clientSubscriptionId, 'root change');\n }\n\n}\n\n/**\n * Keypair signer interface\n */\n\n/**\n * An account keypair used for signing transactions.\n */\nclass Keypair {\n /**\n * Create a new keypair instance.\n * Generate random keypair if no {@link Ed25519Keypair} is provided.\n *\n * @param keypair ed25519 keypair\n */\n constructor(keypair) {\n this._keypair = void 0;\n this._keypair = keypair ?? generateKeypair();\n }\n /**\n * Generate a new random keypair\n */\n\n\n static generate() {\n return new Keypair(generateKeypair());\n }\n /**\n * Create a keypair from a raw secret key byte array.\n *\n * This method should only be used to recreate a keypair from a previously\n * generated secret key. Generating keypairs from a random seed should be done\n * with the {@link Keypair.fromSeed} method.\n *\n * @throws error if the provided secret key is invalid and validation is not skipped.\n *\n * @param secretKey secret key byte array\n * @param options: skip secret key validation\n */\n\n\n static fromSecretKey(secretKey, options) {\n if (secretKey.byteLength !== 64) {\n throw new Error('bad secret key size');\n }\n\n const publicKey = secretKey.slice(32, 64);\n\n if (!options || !options.skipValidation) {\n const privateScalar = secretKey.slice(0, 32);\n const computedPublicKey = getPublicKey(privateScalar);\n\n for (let ii = 0; ii < 32; ii++) {\n if (publicKey[ii] !== computedPublicKey[ii]) {\n throw new Error('provided secretKey is invalid');\n }\n }\n }\n\n return new Keypair({\n publicKey,\n secretKey\n });\n }\n /**\n * Generate a keypair from a 32 byte seed.\n *\n * @param seed seed byte array\n */\n\n\n static fromSeed(seed) {\n const publicKey = getPublicKey(seed);\n const secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n return new Keypair({\n publicKey,\n secretKey\n });\n }\n /**\n * The public key for this keypair\n */\n\n\n get publicKey() {\n return new PublicKey(this._keypair.publicKey);\n }\n /**\n * The raw secret key for this keypair\n */\n\n\n get secretKey() {\n return new Uint8Array(this._keypair.secretKey);\n }\n\n}\n\n/**\n * An enumeration of valid address lookup table InstructionType's\n * @internal\n */\nconst LOOKUP_TABLE_INSTRUCTION_LAYOUTS = Object.freeze({\n CreateLookupTable: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64('recentSlot'), BufferLayout.u8('bumpSeed')])\n },\n FreezeLookupTable: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n ExtendLookupTable: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), u64(), BufferLayout.seq(publicKey(), BufferLayout.offset(BufferLayout.u32(), -8), 'addresses')])\n },\n DeactivateLookupTable: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n CloseLookupTable: {\n index: 4,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n }\n});\nclass AddressLookupTableInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const index = instructionTypeLayout.decode(instruction.data);\n let type;\n\n for (const [layoutType, layout] of Object.entries(LOOKUP_TABLE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == index) {\n type = layoutType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Invalid Instruction. Should be a LookupTable Instruction');\n }\n\n return type;\n }\n\n static decodeCreateLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 4);\n const {\n recentSlot\n } = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable, instruction.data);\n return {\n authority: instruction.keys[1].pubkey,\n payer: instruction.keys[2].pubkey,\n recentSlot: Number(recentSlot)\n };\n }\n\n static decodeExtendLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n\n if (instruction.keys.length < 2) {\n throw new Error(`invalid instruction; found ${instruction.keys.length} keys, expected at least 2`);\n }\n\n const {\n addresses\n } = decodeData$1(LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable, instruction.data);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey,\n payer: instruction.keys.length > 2 ? instruction.keys[2].pubkey : undefined,\n addresses: addresses.map(buffer => new PublicKey(buffer))\n };\n }\n\n static decodeCloseLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 3);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey,\n recipient: instruction.keys[2].pubkey\n };\n }\n\n static decodeFreezeLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 2);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey\n };\n }\n\n static decodeDeactivateLookupTable(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeysLength(instruction.keys, 2);\n return {\n lookupTable: instruction.keys[0].pubkey,\n authority: instruction.keys[1].pubkey\n };\n }\n /**\n * @internal\n */\n\n\n static checkProgramId(programId) {\n if (!programId.equals(AddressLookupTableProgram.programId)) {\n throw new Error('invalid instruction; programId is not AddressLookupTable Program');\n }\n }\n /**\n * @internal\n */\n\n\n static checkKeysLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n\n}\nclass AddressLookupTableProgram {\n /**\n * @internal\n */\n constructor() {}\n\n static createLookupTable(params) {\n const [lookupTableAddress, bumpSeed] = PublicKey.findProgramAddressSync([params.authority.toBuffer(), toBufferLE(BigInt(params.recentSlot), 8)], this.programId);\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable;\n const data = encodeData(type, {\n recentSlot: BigInt(params.recentSlot),\n bumpSeed: bumpSeed\n });\n const keys = [{\n pubkey: lookupTableAddress,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.payer,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n }];\n return [new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n }), lookupTableAddress];\n }\n\n static freezeLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.FreezeLookupTable;\n const data = encodeData(type);\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n\n static extendLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable;\n const data = encodeData(type, {\n addresses: params.addresses.map(addr => addr.toBytes())\n });\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n\n if (params.payer) {\n keys.push({\n pubkey: params.payer,\n isSigner: true,\n isWritable: true\n }, {\n pubkey: SystemProgram.programId,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n\n static deactivateLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.DeactivateLookupTable;\n const data = encodeData(type);\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n\n static closeLookupTable(params) {\n const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CloseLookupTable;\n const data = encodeData(type);\n const keys = [{\n pubkey: params.lookupTable,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: params.authority,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: params.recipient,\n isSigner: false,\n isWritable: true\n }];\n return new TransactionInstruction({\n programId: this.programId,\n keys: keys,\n data: data\n });\n }\n\n}\nAddressLookupTableProgram.programId = new PublicKey('AddressLookupTab1e1111111111111111111111111');\n\n/**\n * Compute Budget Instruction class\n */\n\nclass ComputeBudgetInstruction {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Decode a compute budget instruction and retrieve the instruction type.\n */\n\n\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u8('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n\n for (const [ixType, layout] of Object.entries(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a ComputeBudgetInstruction');\n }\n\n return type;\n }\n /**\n * Decode request units compute budget instruction and retrieve the instruction params.\n */\n\n\n static decodeRequestUnits(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n units,\n additionalFee\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits, instruction.data);\n return {\n units,\n additionalFee\n };\n }\n /**\n * Decode request heap frame compute budget instruction and retrieve the instruction params.\n */\n\n\n static decodeRequestHeapFrame(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n bytes\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame, instruction.data);\n return {\n bytes\n };\n }\n /**\n * Decode set compute unit limit compute budget instruction and retrieve the instruction params.\n */\n\n\n static decodeSetComputeUnitLimit(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n units\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit, instruction.data);\n return {\n units\n };\n }\n /**\n * Decode set compute unit price compute budget instruction and retrieve the instruction params.\n */\n\n\n static decodeSetComputeUnitPrice(instruction) {\n this.checkProgramId(instruction.programId);\n const {\n microLamports\n } = decodeData$1(COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice, instruction.data);\n return {\n microLamports\n };\n }\n /**\n * @internal\n */\n\n\n static checkProgramId(programId) {\n if (!programId.equals(ComputeBudgetProgram.programId)) {\n throw new Error('invalid instruction; programId is not ComputeBudgetProgram');\n }\n }\n\n}\n/**\n * An enumeration of valid ComputeBudgetInstructionType's\n */\n\n/**\n * An enumeration of valid ComputeBudget InstructionType's\n * @internal\n */\nconst COMPUTE_BUDGET_INSTRUCTION_LAYOUTS = Object.freeze({\n RequestUnits: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), BufferLayout.u32('units'), BufferLayout.u32('additionalFee')])\n },\n RequestHeapFrame: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), BufferLayout.u32('bytes')])\n },\n SetComputeUnitLimit: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), BufferLayout.u32('units')])\n },\n SetComputeUnitPrice: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u8('instruction'), u64('microLamports')])\n }\n});\n/**\n * Factory class for transaction instructions to interact with the Compute Budget program\n */\n\nclass ComputeBudgetProgram {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Public key that identifies the Compute Budget program\n */\n\n\n /**\n * @deprecated Instead, call {@link setComputeUnitLimit} and/or {@link setComputeUnitPrice}\n */\n static requestUnits(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits;\n const data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n\n static requestHeapFrame(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame;\n const data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n\n static setComputeUnitLimit(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit;\n const data = encodeData(type, params);\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n\n static setComputeUnitPrice(params) {\n const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice;\n const data = encodeData(type, {\n microLamports: BigInt(params.microLamports)\n });\n return new TransactionInstruction({\n keys: [],\n programId: this.programId,\n data\n });\n }\n\n}\nComputeBudgetProgram.programId = new PublicKey('ComputeBudget111111111111111111111111111111');\n\nconst PRIVATE_KEY_BYTES$1 = 64;\nconst PUBLIC_KEY_BYTES$1 = 32;\nconst SIGNATURE_BYTES = 64;\n/**\n * Params for creating an ed25519 instruction using a public key\n */\n\nconst ED25519_INSTRUCTION_LAYOUT = BufferLayout.struct([BufferLayout.u8('numSignatures'), BufferLayout.u8('padding'), BufferLayout.u16('signatureOffset'), BufferLayout.u16('signatureInstructionIndex'), BufferLayout.u16('publicKeyOffset'), BufferLayout.u16('publicKeyInstructionIndex'), BufferLayout.u16('messageDataOffset'), BufferLayout.u16('messageDataSize'), BufferLayout.u16('messageInstructionIndex')]);\nclass Ed25519Program {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Public key that identifies the ed25519 program\n */\n\n\n /**\n * Create an ed25519 instruction with a public key and signature. The\n * public key must be a buffer that is 32 bytes long, and the signature\n * must be a buffer of 64 bytes.\n */\n static createInstructionWithPublicKey(params) {\n const {\n publicKey,\n message,\n signature,\n instructionIndex\n } = params;\n assert(publicKey.length === PUBLIC_KEY_BYTES$1, `Public Key must be ${PUBLIC_KEY_BYTES$1} bytes but received ${publicKey.length} bytes`);\n assert(signature.length === SIGNATURE_BYTES, `Signature must be ${SIGNATURE_BYTES} bytes but received ${signature.length} bytes`);\n const publicKeyOffset = ED25519_INSTRUCTION_LAYOUT.span;\n const signatureOffset = publicKeyOffset + publicKey.length;\n const messageDataOffset = signatureOffset + signature.length;\n const numSignatures = 1;\n const instructionData = Buffer.alloc(messageDataOffset + message.length);\n const index = instructionIndex == null ? 0xffff // An index of `u16::MAX` makes it default to the current instruction.\n : instructionIndex;\n ED25519_INSTRUCTION_LAYOUT.encode({\n numSignatures,\n padding: 0,\n signatureOffset,\n signatureInstructionIndex: index,\n publicKeyOffset,\n publicKeyInstructionIndex: index,\n messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: index\n }, instructionData);\n instructionData.fill(publicKey, publicKeyOffset);\n instructionData.fill(signature, signatureOffset);\n instructionData.fill(message, messageDataOffset);\n return new TransactionInstruction({\n keys: [],\n programId: Ed25519Program.programId,\n data: instructionData\n });\n }\n /**\n * Create an ed25519 instruction with a private key. The private key\n * must be a buffer that is 64 bytes long.\n */\n\n\n static createInstructionWithPrivateKey(params) {\n const {\n privateKey,\n message,\n instructionIndex\n } = params;\n assert(privateKey.length === PRIVATE_KEY_BYTES$1, `Private key must be ${PRIVATE_KEY_BYTES$1} bytes but received ${privateKey.length} bytes`);\n\n try {\n const keypair = Keypair.fromSecretKey(privateKey);\n const publicKey = keypair.publicKey.toBytes();\n const signature = sign(message, keypair.secretKey);\n return this.createInstructionWithPublicKey({\n publicKey,\n message,\n signature,\n instructionIndex\n });\n } catch (error) {\n throw new Error(`Error creating instruction; ${error}`);\n }\n }\n\n}\nEd25519Program.programId = new PublicKey('Ed25519SigVerify111111111111111111111111111');\n\n// library interoperable with the synchronous APIs in web3.js.\n\nsecp256k1.utils.hmacSha256Sync = (key, ...msgs) => {\n const h = hmac.create(sha256, key);\n msgs.forEach(msg => h.update(msg));\n return h.digest();\n};\n\nconst ecdsaSign = (msgHash, privKey) => secp256k1.signSync(msgHash, privKey, {\n der: false,\n recovered: true\n});\nsecp256k1.utils.isValidPrivateKey;\nconst publicKeyCreate = secp256k1.getPublicKey;\n\nconst PRIVATE_KEY_BYTES = 32;\nconst ETHEREUM_ADDRESS_BYTES = 20;\nconst PUBLIC_KEY_BYTES = 64;\nconst SIGNATURE_OFFSETS_SERIALIZED_SIZE = 11;\n/**\n * Params for creating an secp256k1 instruction using a public key\n */\n\nconst SECP256K1_INSTRUCTION_LAYOUT = BufferLayout.struct([BufferLayout.u8('numSignatures'), BufferLayout.u16('signatureOffset'), BufferLayout.u8('signatureInstructionIndex'), BufferLayout.u16('ethAddressOffset'), BufferLayout.u8('ethAddressInstructionIndex'), BufferLayout.u16('messageDataOffset'), BufferLayout.u16('messageDataSize'), BufferLayout.u8('messageInstructionIndex'), BufferLayout.blob(20, 'ethAddress'), BufferLayout.blob(64, 'signature'), BufferLayout.u8('recoveryId')]);\nclass Secp256k1Program {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Public key that identifies the secp256k1 program\n */\n\n\n /**\n * Construct an Ethereum address from a secp256k1 public key buffer.\n * @param {Buffer} publicKey a 64 byte secp256k1 public key buffer\n */\n static publicKeyToEthAddress(publicKey) {\n assert(publicKey.length === PUBLIC_KEY_BYTES, `Public key must be ${PUBLIC_KEY_BYTES} bytes but received ${publicKey.length} bytes`);\n\n try {\n return Buffer.from(keccak_256(toBuffer(publicKey))).slice(-ETHEREUM_ADDRESS_BYTES);\n } catch (error) {\n throw new Error(`Error constructing Ethereum address: ${error}`);\n }\n }\n /**\n * Create an secp256k1 instruction with a public key. The public key\n * must be a buffer that is 64 bytes long.\n */\n\n\n static createInstructionWithPublicKey(params) {\n const {\n publicKey,\n message,\n signature,\n recoveryId,\n instructionIndex\n } = params;\n return Secp256k1Program.createInstructionWithEthAddress({\n ethAddress: Secp256k1Program.publicKeyToEthAddress(publicKey),\n message,\n signature,\n recoveryId,\n instructionIndex\n });\n }\n /**\n * Create an secp256k1 instruction with an Ethereum address. The address\n * must be a hex string or a buffer that is 20 bytes long.\n */\n\n\n static createInstructionWithEthAddress(params) {\n const {\n ethAddress: rawAddress,\n message,\n signature,\n recoveryId,\n instructionIndex = 0\n } = params;\n let ethAddress;\n\n if (typeof rawAddress === 'string') {\n if (rawAddress.startsWith('0x')) {\n ethAddress = Buffer.from(rawAddress.substr(2), 'hex');\n } else {\n ethAddress = Buffer.from(rawAddress, 'hex');\n }\n } else {\n ethAddress = rawAddress;\n }\n\n assert(ethAddress.length === ETHEREUM_ADDRESS_BYTES, `Address must be ${ETHEREUM_ADDRESS_BYTES} bytes but received ${ethAddress.length} bytes`);\n const dataStart = 1 + SIGNATURE_OFFSETS_SERIALIZED_SIZE;\n const ethAddressOffset = dataStart;\n const signatureOffset = dataStart + ethAddress.length;\n const messageDataOffset = signatureOffset + signature.length + 1;\n const numSignatures = 1;\n const instructionData = Buffer.alloc(SECP256K1_INSTRUCTION_LAYOUT.span + message.length);\n SECP256K1_INSTRUCTION_LAYOUT.encode({\n numSignatures,\n signatureOffset,\n signatureInstructionIndex: instructionIndex,\n ethAddressOffset,\n ethAddressInstructionIndex: instructionIndex,\n messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: instructionIndex,\n signature: toBuffer(signature),\n ethAddress: toBuffer(ethAddress),\n recoveryId\n }, instructionData);\n instructionData.fill(toBuffer(message), SECP256K1_INSTRUCTION_LAYOUT.span);\n return new TransactionInstruction({\n keys: [],\n programId: Secp256k1Program.programId,\n data: instructionData\n });\n }\n /**\n * Create an secp256k1 instruction with a private key. The private key\n * must be a buffer that is 32 bytes long.\n */\n\n\n static createInstructionWithPrivateKey(params) {\n const {\n privateKey: pkey,\n message,\n instructionIndex\n } = params;\n assert(pkey.length === PRIVATE_KEY_BYTES, `Private key must be ${PRIVATE_KEY_BYTES} bytes but received ${pkey.length} bytes`);\n\n try {\n const privateKey = toBuffer(pkey);\n const publicKey = publicKeyCreate(privateKey, false\n /* isCompressed */\n ).slice(1); // throw away leading byte\n\n const messageHash = Buffer.from(keccak_256(toBuffer(message)));\n const [signature, recoveryId] = ecdsaSign(messageHash, privateKey);\n return this.createInstructionWithPublicKey({\n publicKey,\n message,\n signature,\n recoveryId,\n instructionIndex\n });\n } catch (error) {\n throw new Error(`Error creating instruction; ${error}`);\n }\n }\n\n}\nSecp256k1Program.programId = new PublicKey('KeccakSecp256k11111111111111111111111111111');\n\n/**\n * Address of the stake config account which configures the rate\n * of stake warmup and cooldown as well as the slashing penalty.\n */\n\nconst STAKE_CONFIG_ID = new PublicKey('StakeConfig11111111111111111111111111111111');\n/**\n * Stake account authority info\n */\n\nclass Authorized {\n /** stake authority */\n\n /** withdraw authority */\n\n /**\n * Create a new Authorized object\n * @param staker the stake authority\n * @param withdrawer the withdraw authority\n */\n constructor(staker, withdrawer) {\n this.staker = void 0;\n this.withdrawer = void 0;\n this.staker = staker;\n this.withdrawer = withdrawer;\n }\n\n}\n\n/**\n * Stake account lockup info\n */\nclass Lockup {\n /** Unix timestamp of lockup expiration */\n\n /** Epoch of lockup expiration */\n\n /** Lockup custodian authority */\n\n /**\n * Create a new Lockup object\n */\n constructor(unixTimestamp, epoch, custodian) {\n this.unixTimestamp = void 0;\n this.epoch = void 0;\n this.custodian = void 0;\n this.unixTimestamp = unixTimestamp;\n this.epoch = epoch;\n this.custodian = custodian;\n }\n /**\n * Default, inactive Lockup value\n */\n\n\n}\nLockup.default = new Lockup(0, 0, PublicKey.default);\n\n/**\n * Stake Instruction class\n */\nclass StakeInstruction {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Decode a stake instruction and retrieve the instruction type.\n */\n\n\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n\n for (const [ixType, layout] of Object.entries(STAKE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a StakeInstruction');\n }\n\n return type;\n }\n /**\n * Decode a initialize stake instruction and retrieve the instruction params.\n */\n\n\n static decodeInitialize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n authorized,\n lockup\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Initialize, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorized: new Authorized(new PublicKey(authorized.staker), new PublicKey(authorized.withdrawer)),\n lockup: new Lockup(lockup.unixTimestamp, lockup.epoch, new PublicKey(lockup.custodian))\n };\n }\n /**\n * Decode a delegate stake instruction and retrieve the instruction params.\n */\n\n\n static decodeDelegate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 6);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Delegate, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n votePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[5].pubkey\n };\n }\n /**\n * Decode an authorize stake instruction and retrieve the instruction params.\n */\n\n\n static decodeAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n newAuthorized,\n stakeAuthorizationType\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Authorize, instruction.data);\n const o = {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType\n }\n };\n\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n\n return o;\n }\n /**\n * Decode an authorize-with-seed stake instruction and retrieve the instruction params.\n */\n\n\n static decodeAuthorizeWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n const {\n newAuthorized,\n stakeAuthorizationType,\n authoritySeed,\n authorityOwner\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data);\n const o = {\n stakePubkey: instruction.keys[0].pubkey,\n authorityBase: instruction.keys[1].pubkey,\n authoritySeed: authoritySeed,\n authorityOwner: new PublicKey(authorityOwner),\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType\n }\n };\n\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n\n return o;\n }\n /**\n * Decode a split stake instruction and retrieve the instruction params.\n */\n\n\n static decodeSplit(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n lamports\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Split, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n splitStakePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n lamports\n };\n }\n /**\n * Decode a merge stake instruction and retrieve the instruction params.\n */\n\n\n static decodeMerge(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Merge, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n sourceStakePubKey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey\n };\n }\n /**\n * Decode a withdraw stake instruction and retrieve the instruction params.\n */\n\n\n static decodeWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n const {\n lamports\n } = decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data);\n const o = {\n stakePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports\n };\n\n if (instruction.keys.length > 5) {\n o.custodianPubkey = instruction.keys[5].pubkey;\n }\n\n return o;\n }\n /**\n * Decode a deactivate stake instruction and retrieve the instruction params.\n */\n\n\n static decodeDeactivate(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData$1(STAKE_INSTRUCTION_LAYOUTS.Deactivate, instruction.data);\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey\n };\n }\n /**\n * @internal\n */\n\n\n static checkProgramId(programId) {\n if (!programId.equals(StakeProgram.programId)) {\n throw new Error('invalid instruction; programId is not StakeProgram');\n }\n }\n /**\n * @internal\n */\n\n\n static checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n\n}\n/**\n * An enumeration of valid StakeInstructionType's\n */\n\n/**\n * An enumeration of valid stake InstructionType's\n * @internal\n */\nconst STAKE_INSTRUCTION_LAYOUTS = Object.freeze({\n Initialize: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), authorized(), lockup()])\n },\n Authorize: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('newAuthorized'), BufferLayout.u32('stakeAuthorizationType')])\n },\n Delegate: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n Split: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n Withdraw: {\n index: 4,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n Deactivate: {\n index: 5,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n Merge: {\n index: 7,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')])\n },\n AuthorizeWithSeed: {\n index: 8,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('newAuthorized'), BufferLayout.u32('stakeAuthorizationType'), rustString('authoritySeed'), publicKey('authorityOwner')])\n }\n});\n/**\n * Stake authorization type\n */\n\n/**\n * An enumeration of valid StakeAuthorizationLayout's\n */\nconst StakeAuthorizationLayout = Object.freeze({\n Staker: {\n index: 0\n },\n Withdrawer: {\n index: 1\n }\n});\n/**\n * Factory class for transactions to interact with the Stake program\n */\n\nclass StakeProgram {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Public key that identifies the Stake program\n */\n\n\n /**\n * Generate an Initialize instruction to add to a Stake Create transaction\n */\n static initialize(params) {\n const {\n stakePubkey,\n authorized,\n lockup: maybeLockup\n } = params;\n const lockup = maybeLockup || Lockup.default;\n const type = STAKE_INSTRUCTION_LAYOUTS.Initialize;\n const data = encodeData(type, {\n authorized: {\n staker: toBuffer(authorized.staker.toBuffer()),\n withdrawer: toBuffer(authorized.withdrawer.toBuffer())\n },\n lockup: {\n unixTimestamp: lockup.unixTimestamp,\n epoch: lockup.epoch,\n custodian: toBuffer(lockup.custodian.toBuffer())\n }\n });\n const instructionData = {\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate a Transaction that creates a new Stake account at\n * an address generated with `from`, a seed, and the Stake programId\n */\n\n\n static createAccountWithSeed(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n const {\n stakePubkey,\n authorized,\n lockup\n } = params;\n return transaction.add(this.initialize({\n stakePubkey,\n authorized,\n lockup\n }));\n }\n /**\n * Generate a Transaction that creates a new Stake account\n */\n\n\n static createAccount(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n const {\n stakePubkey,\n authorized,\n lockup\n } = params;\n return transaction.add(this.initialize({\n stakePubkey,\n authorized,\n lockup\n }));\n }\n /**\n * Generate a Transaction that delegates Stake tokens to a validator\n * Vote PublicKey. This transaction can also be used to redelegate Stake\n * to a new validator Vote PublicKey.\n */\n\n\n static delegate(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n votePubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Delegate;\n const data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: votePubkey,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: STAKE_CONFIG_ID,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n\n\n static authorize(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n newAuthorizedPubkey,\n stakeAuthorizationType,\n custodianPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Authorize;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index\n });\n const keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n\n\n static authorizeWithSeed(params) {\n const {\n stakePubkey,\n authorityBase,\n authoritySeed,\n authorityOwner,\n newAuthorizedPubkey,\n stakeAuthorizationType,\n custodianPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index,\n authoritySeed: authoritySeed,\n authorityOwner: toBuffer(authorityOwner.toBuffer())\n });\n const keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorityBase,\n isSigner: true,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }];\n\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * @internal\n */\n\n\n static splitInstruction(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n lamports\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Split;\n const data = encodeData(type, {\n lamports\n });\n return new TransactionInstruction({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: splitStakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a Transaction that splits Stake tokens into another stake account\n */\n\n\n static split(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.authorizedPubkey,\n newAccountPubkey: params.splitStakePubkey,\n lamports: 0,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.splitInstruction(params));\n }\n /**\n * Generate a Transaction that splits Stake tokens into another account\n * derived from a base public key and seed\n */\n\n\n static splitWithSeed(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n basePubkey,\n seed,\n lamports\n } = params;\n const transaction = new Transaction();\n transaction.add(SystemProgram.allocate({\n accountPubkey: splitStakePubkey,\n basePubkey,\n seed,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.splitInstruction({\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n lamports\n }));\n }\n /**\n * Generate a Transaction that merges Stake accounts.\n */\n\n\n static merge(params) {\n const {\n stakePubkey,\n sourceStakePubKey,\n authorizedPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Merge;\n const data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: sourceStakePubKey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a Transaction that withdraws deactivated Stake tokens.\n */\n\n\n static withdraw(params) {\n const {\n stakePubkey,\n authorizedPubkey,\n toPubkey,\n lamports,\n custodianPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Withdraw;\n const data = encodeData(type, {\n lamports\n });\n const keys = [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n\n if (custodianPubkey) {\n keys.push({\n pubkey: custodianPubkey,\n isSigner: false,\n isWritable: false\n });\n }\n\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a Transaction that deactivates Stake tokens.\n */\n\n\n static deactivate(params) {\n const {\n stakePubkey,\n authorizedPubkey\n } = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Deactivate;\n const data = encodeData(type);\n return new Transaction().add({\n keys: [{\n pubkey: stakePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n });\n }\n\n}\nStakeProgram.programId = new PublicKey('Stake11111111111111111111111111111111111111');\nStakeProgram.space = 200;\n\n/**\n * Vote account info\n */\n\nclass VoteInit {\n /** [0, 100] */\n constructor(nodePubkey, authorizedVoter, authorizedWithdrawer, commission) {\n this.nodePubkey = void 0;\n this.authorizedVoter = void 0;\n this.authorizedWithdrawer = void 0;\n this.commission = void 0;\n this.nodePubkey = nodePubkey;\n this.authorizedVoter = authorizedVoter;\n this.authorizedWithdrawer = authorizedWithdrawer;\n this.commission = commission;\n }\n\n}\n/**\n * Create vote account transaction params\n */\n\n/**\n * Vote Instruction class\n */\nclass VoteInstruction {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Decode a vote instruction and retrieve the instruction type.\n */\n\n\n static decodeInstructionType(instruction) {\n this.checkProgramId(instruction.programId);\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n let type;\n\n for (const [ixType, layout] of Object.entries(VOTE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a VoteInstruction');\n }\n\n return type;\n }\n /**\n * Decode an initialize vote instruction and retrieve the instruction params.\n */\n\n\n static decodeInitializeAccount(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 4);\n const {\n voteInit\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.InitializeAccount, instruction.data);\n return {\n votePubkey: instruction.keys[0].pubkey,\n nodePubkey: instruction.keys[3].pubkey,\n voteInit: new VoteInit(new PublicKey(voteInit.nodePubkey), new PublicKey(voteInit.authorizedVoter), new PublicKey(voteInit.authorizedWithdrawer), voteInit.commission)\n };\n }\n /**\n * Decode an authorize instruction and retrieve the instruction params.\n */\n\n\n static decodeAuthorize(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n newAuthorized,\n voteAuthorizationType\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Authorize, instruction.data);\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n voteAuthorizationType: {\n index: voteAuthorizationType\n }\n };\n }\n /**\n * Decode an authorize instruction and retrieve the instruction params.\n */\n\n\n static decodeAuthorizeWithSeed(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n voteAuthorizeWithSeedArgs: {\n currentAuthorityDerivedKeyOwnerPubkey,\n currentAuthorityDerivedKeySeed,\n newAuthorized,\n voteAuthorizationType\n }\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed, instruction.data);\n return {\n currentAuthorityDerivedKeyBasePubkey: instruction.keys[2].pubkey,\n currentAuthorityDerivedKeyOwnerPubkey: new PublicKey(currentAuthorityDerivedKeyOwnerPubkey),\n currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n voteAuthorizationType: {\n index: voteAuthorizationType\n },\n votePubkey: instruction.keys[0].pubkey\n };\n }\n /**\n * Decode a withdraw instruction and retrieve the instruction params.\n */\n\n\n static decodeWithdraw(instruction) {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {\n lamports\n } = decodeData$1(VOTE_INSTRUCTION_LAYOUTS.Withdraw, instruction.data);\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedWithdrawerPubkey: instruction.keys[2].pubkey,\n lamports,\n toPubkey: instruction.keys[1].pubkey\n };\n }\n /**\n * @internal\n */\n\n\n static checkProgramId(programId) {\n if (!programId.equals(VoteProgram.programId)) {\n throw new Error('invalid instruction; programId is not VoteProgram');\n }\n }\n /**\n * @internal\n */\n\n\n static checkKeyLength(keys, expectedLength) {\n if (keys.length < expectedLength) {\n throw new Error(`invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`);\n }\n }\n\n}\n/**\n * An enumeration of valid VoteInstructionType's\n */\n\nconst VOTE_INSTRUCTION_LAYOUTS = Object.freeze({\n InitializeAccount: {\n index: 0,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), voteInit()])\n },\n Authorize: {\n index: 1,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), publicKey('newAuthorized'), BufferLayout.u32('voteAuthorizationType')])\n },\n Withdraw: {\n index: 3,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')])\n },\n AuthorizeWithSeed: {\n index: 10,\n layout: BufferLayout.struct([BufferLayout.u32('instruction'), voteAuthorizeWithSeedArgs()])\n }\n});\n/**\n * VoteAuthorize type\n */\n\n/**\n * An enumeration of valid VoteAuthorization layouts.\n */\nconst VoteAuthorizationLayout = Object.freeze({\n Voter: {\n index: 0\n },\n Withdrawer: {\n index: 1\n }\n});\n/**\n * Factory class for transactions to interact with the Vote program\n */\n\nclass VoteProgram {\n /**\n * @internal\n */\n constructor() {}\n /**\n * Public key that identifies the Vote program\n */\n\n\n /**\n * Generate an Initialize instruction.\n */\n static initializeAccount(params) {\n const {\n votePubkey,\n nodePubkey,\n voteInit\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.InitializeAccount;\n const data = encodeData(type, {\n voteInit: {\n nodePubkey: toBuffer(voteInit.nodePubkey.toBuffer()),\n authorizedVoter: toBuffer(voteInit.authorizedVoter.toBuffer()),\n authorizedWithdrawer: toBuffer(voteInit.authorizedWithdrawer.toBuffer()),\n commission: voteInit.commission\n }\n });\n const instructionData = {\n keys: [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: nodePubkey,\n isSigner: true,\n isWritable: false\n }],\n programId: this.programId,\n data\n };\n return new TransactionInstruction(instructionData);\n }\n /**\n * Generate a transaction that creates a new Vote account.\n */\n\n\n static createAccount(params) {\n const transaction = new Transaction();\n transaction.add(SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.votePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId\n }));\n return transaction.add(this.initializeAccount({\n votePubkey: params.votePubkey,\n nodePubkey: params.voteInit.nodePubkey,\n voteInit: params.voteInit\n }));\n }\n /**\n * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account.\n */\n\n\n static authorize(params) {\n const {\n votePubkey,\n authorizedPubkey,\n newAuthorizedPubkey,\n voteAuthorizationType\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.Authorize;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n voteAuthorizationType: voteAuthorizationType.index\n });\n const keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: authorizedPubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account\n * where the current Voter or Withdrawer authority is a derived key.\n */\n\n\n static authorizeWithSeed(params) {\n const {\n currentAuthorityDerivedKeyBasePubkey,\n currentAuthorityDerivedKeyOwnerPubkey,\n currentAuthorityDerivedKeySeed,\n newAuthorizedPubkey,\n voteAuthorizationType,\n votePubkey\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n const data = encodeData(type, {\n voteAuthorizeWithSeedArgs: {\n currentAuthorityDerivedKeyOwnerPubkey: toBuffer(currentAuthorityDerivedKeyOwnerPubkey.toBuffer()),\n currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n voteAuthorizationType: voteAuthorizationType.index\n }\n });\n const keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: SYSVAR_CLOCK_PUBKEY,\n isSigner: false,\n isWritable: false\n }, {\n pubkey: currentAuthorityDerivedKeyBasePubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction to withdraw from a Vote account.\n */\n\n\n static withdraw(params) {\n const {\n votePubkey,\n authorizedWithdrawerPubkey,\n lamports,\n toPubkey\n } = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.Withdraw;\n const data = encodeData(type, {\n lamports\n });\n const keys = [{\n pubkey: votePubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: toPubkey,\n isSigner: false,\n isWritable: true\n }, {\n pubkey: authorizedWithdrawerPubkey,\n isSigner: true,\n isWritable: false\n }];\n return new Transaction().add({\n keys,\n programId: this.programId,\n data\n });\n }\n /**\n * Generate a transaction to withdraw safely from a Vote account.\n *\n * This function was created as a safeguard for vote accounts running validators, `safeWithdraw`\n * checks that the withdraw amount will not exceed the specified balance while leaving enough left\n * to cover rent. If you wish to close the vote account by withdrawing the full amount, call the\n * `withdraw` method directly.\n */\n\n\n static safeWithdraw(params, currentVoteAccountBalance, rentExemptMinimum) {\n if (params.lamports > currentVoteAccountBalance - rentExemptMinimum) {\n throw new Error('Withdraw will leave vote account with insuffcient funds.');\n }\n\n return VoteProgram.withdraw(params);\n }\n\n}\nVoteProgram.programId = new PublicKey('Vote111111111111111111111111111111111111111');\nVoteProgram.space = 3731;\n\nconst VALIDATOR_INFO_KEY = new PublicKey('Va1idator1nfo111111111111111111111111111111');\n/**\n * @internal\n */\n\nconst InfoString = type({\n name: string(),\n website: optional(string()),\n details: optional(string()),\n keybaseUsername: optional(string())\n});\n/**\n * ValidatorInfo class\n */\n\nclass ValidatorInfo {\n /**\n * validator public key\n */\n\n /**\n * validator information\n */\n\n /**\n * Construct a valid ValidatorInfo\n *\n * @param key validator public key\n * @param info validator information\n */\n constructor(key, info) {\n this.key = void 0;\n this.info = void 0;\n this.key = key;\n this.info = info;\n }\n /**\n * Deserialize ValidatorInfo from the config account data. Exactly two config\n * keys are required in the data.\n *\n * @param buffer config account data\n * @return null if info was not found\n */\n\n\n static fromConfigData(buffer) {\n let byteArray = [...buffer];\n const configKeyCount = decodeLength(byteArray);\n if (configKeyCount !== 2) return null;\n const configKeys = [];\n\n for (let i = 0; i < 2; i++) {\n const publicKey = new PublicKey(byteArray.slice(0, PUBLIC_KEY_LENGTH));\n byteArray = byteArray.slice(PUBLIC_KEY_LENGTH);\n const isSigner = byteArray.slice(0, 1)[0] === 1;\n byteArray = byteArray.slice(1);\n configKeys.push({\n publicKey,\n isSigner\n });\n }\n\n if (configKeys[0].publicKey.equals(VALIDATOR_INFO_KEY)) {\n if (configKeys[1].isSigner) {\n const rawInfo = rustString().decode(Buffer.from(byteArray));\n const info = JSON.parse(rawInfo);\n assert$1(info, InfoString);\n return new ValidatorInfo(configKeys[1].publicKey, info);\n }\n }\n\n return null;\n }\n\n}\n\nconst VOTE_PROGRAM_ID = new PublicKey('Vote111111111111111111111111111111111111111');\n\n/**\n * See https://github.com/solana-labs/solana/blob/8a12ed029cfa38d4a45400916c2463fb82bbec8c/programs/vote_api/src/vote_state.rs#L68-L88\n *\n * @internal\n */\nconst VoteAccountLayout = BufferLayout.struct([publicKey('nodePubkey'), publicKey('authorizedWithdrawer'), BufferLayout.u8('commission'), BufferLayout.nu64(), // votes.length\nBufferLayout.seq(BufferLayout.struct([BufferLayout.nu64('slot'), BufferLayout.u32('confirmationCount')]), BufferLayout.offset(BufferLayout.u32(), -8), 'votes'), BufferLayout.u8('rootSlotValid'), BufferLayout.nu64('rootSlot'), BufferLayout.nu64(), // authorizedVoters.length\nBufferLayout.seq(BufferLayout.struct([BufferLayout.nu64('epoch'), publicKey('authorizedVoter')]), BufferLayout.offset(BufferLayout.u32(), -8), 'authorizedVoters'), BufferLayout.struct([BufferLayout.seq(BufferLayout.struct([publicKey('authorizedPubkey'), BufferLayout.nu64('epochOfLastAuthorizedSwitch'), BufferLayout.nu64('targetEpoch')]), 32, 'buf'), BufferLayout.nu64('idx'), BufferLayout.u8('isEmpty')], 'priorVoters'), BufferLayout.nu64(), // epochCredits.length\nBufferLayout.seq(BufferLayout.struct([BufferLayout.nu64('epoch'), BufferLayout.nu64('credits'), BufferLayout.nu64('prevCredits')]), BufferLayout.offset(BufferLayout.u32(), -8), 'epochCredits'), BufferLayout.struct([BufferLayout.nu64('slot'), BufferLayout.nu64('timestamp')], 'lastTimestamp')]);\n\n/**\n * VoteAccount class\n */\nclass VoteAccount {\n /**\n * @internal\n */\n constructor(args) {\n this.nodePubkey = void 0;\n this.authorizedWithdrawer = void 0;\n this.commission = void 0;\n this.rootSlot = void 0;\n this.votes = void 0;\n this.authorizedVoters = void 0;\n this.priorVoters = void 0;\n this.epochCredits = void 0;\n this.lastTimestamp = void 0;\n this.nodePubkey = args.nodePubkey;\n this.authorizedWithdrawer = args.authorizedWithdrawer;\n this.commission = args.commission;\n this.rootSlot = args.rootSlot;\n this.votes = args.votes;\n this.authorizedVoters = args.authorizedVoters;\n this.priorVoters = args.priorVoters;\n this.epochCredits = args.epochCredits;\n this.lastTimestamp = args.lastTimestamp;\n }\n /**\n * Deserialize VoteAccount from the account data.\n *\n * @param buffer account data\n * @return VoteAccount\n */\n\n\n static fromAccountData(buffer) {\n const versionOffset = 4;\n const va = VoteAccountLayout.decode(toBuffer(buffer), versionOffset);\n let rootSlot = va.rootSlot;\n\n if (!va.rootSlotValid) {\n rootSlot = null;\n }\n\n return new VoteAccount({\n nodePubkey: new PublicKey(va.nodePubkey),\n authorizedWithdrawer: new PublicKey(va.authorizedWithdrawer),\n commission: va.commission,\n votes: va.votes,\n rootSlot,\n authorizedVoters: va.authorizedVoters.map(parseAuthorizedVoter),\n priorVoters: getPriorVoters(va.priorVoters),\n epochCredits: va.epochCredits,\n lastTimestamp: va.lastTimestamp\n });\n }\n\n}\n\nfunction parseAuthorizedVoter({\n authorizedVoter,\n epoch\n}) {\n return {\n epoch,\n authorizedVoter: new PublicKey(authorizedVoter)\n };\n}\n\nfunction parsePriorVoters({\n authorizedPubkey,\n epochOfLastAuthorizedSwitch,\n targetEpoch\n}) {\n return {\n authorizedPubkey: new PublicKey(authorizedPubkey),\n epochOfLastAuthorizedSwitch,\n targetEpoch\n };\n}\n\nfunction getPriorVoters({\n buf,\n idx,\n isEmpty\n}) {\n if (isEmpty) {\n return [];\n }\n\n return [...buf.slice(idx + 1).map(parsePriorVoters), ...buf.slice(0, idx).map(parsePriorVoters)];\n}\n\nconst endpoint = {\n http: {\n devnet: 'http://api.devnet.solana.com',\n testnet: 'http://api.testnet.solana.com',\n 'mainnet-beta': 'http://api.mainnet-beta.solana.com/'\n },\n https: {\n devnet: 'https://api.devnet.solana.com',\n testnet: 'https://api.testnet.solana.com',\n 'mainnet-beta': 'https://api.mainnet-beta.solana.com/'\n }\n};\n\n/**\n * Retrieves the RPC API URL for the specified cluster\n */\nfunction clusterApiUrl(cluster, tls) {\n const key = tls === false ? 'http' : 'https';\n\n if (!cluster) {\n return endpoint[key]['devnet'];\n }\n\n const url = endpoint[key][cluster];\n\n if (!url) {\n throw new Error(`Unknown ${key} cluster: ${cluster}`);\n }\n\n return url;\n}\n\n/**\n * Send and confirm a raw transaction\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Buffer} rawTransaction\n * @param {TransactionConfirmationStrategy} confirmationStrategy\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\n\n/**\n * @deprecated Calling `sendAndConfirmRawTransaction()` without a `confirmationStrategy`\n * is no longer supported and will be removed in a future version.\n */\n// eslint-disable-next-line no-redeclare\n// eslint-disable-next-line no-redeclare\nasync function sendAndConfirmRawTransaction(connection, rawTransaction, confirmationStrategyOrConfirmOptions, maybeConfirmOptions) {\n let confirmationStrategy;\n let options;\n\n if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, 'lastValidBlockHeight')) {\n confirmationStrategy = confirmationStrategyOrConfirmOptions;\n options = maybeConfirmOptions;\n } else if (confirmationStrategyOrConfirmOptions && Object.prototype.hasOwnProperty.call(confirmationStrategyOrConfirmOptions, 'nonceValue')) {\n confirmationStrategy = confirmationStrategyOrConfirmOptions;\n options = maybeConfirmOptions;\n } else {\n options = confirmationStrategyOrConfirmOptions;\n }\n\n const sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n minContextSlot: options.minContextSlot\n };\n const signature = await connection.sendRawTransaction(rawTransaction, sendOptions);\n const commitment = options && options.commitment;\n const confirmationPromise = confirmationStrategy ? connection.confirmTransaction(confirmationStrategy, commitment) : connection.confirmTransaction(signature, commitment);\n const status = (await confirmationPromise).value;\n\n if (status.err) {\n throw new Error(`Raw transaction ${signature} failed (${JSON.stringify(status)})`);\n }\n\n return signature;\n}\n\n/**\n * There are 1-billion lamports in one SOL\n */\n\nconst LAMPORTS_PER_SOL = 1000000000;\n\nexport { Account, AddressLookupTableAccount, AddressLookupTableInstruction, AddressLookupTableProgram, Authorized, BLOCKHASH_CACHE_TIMEOUT_MS, BPF_LOADER_DEPRECATED_PROGRAM_ID, BPF_LOADER_PROGRAM_ID, BpfLoader, COMPUTE_BUDGET_INSTRUCTION_LAYOUTS, ComputeBudgetInstruction, ComputeBudgetProgram, Connection, Ed25519Program, Enum, EpochSchedule, FeeCalculatorLayout, Keypair, LAMPORTS_PER_SOL, LOOKUP_TABLE_INSTRUCTION_LAYOUTS, Loader, Lockup, MAX_SEED_LENGTH, Message, MessageAccountKeys, MessageV0, NONCE_ACCOUNT_LENGTH, NonceAccount, PACKET_DATA_SIZE, PUBLIC_KEY_LENGTH, PublicKey, SIGNATURE_LENGTH_IN_BYTES, SOLANA_SCHEMA, STAKE_CONFIG_ID, STAKE_INSTRUCTION_LAYOUTS, SYSTEM_INSTRUCTION_LAYOUTS, SYSVAR_CLOCK_PUBKEY, SYSVAR_EPOCH_SCHEDULE_PUBKEY, SYSVAR_INSTRUCTIONS_PUBKEY, SYSVAR_RECENT_BLOCKHASHES_PUBKEY, SYSVAR_RENT_PUBKEY, SYSVAR_REWARDS_PUBKEY, SYSVAR_SLOT_HASHES_PUBKEY, SYSVAR_SLOT_HISTORY_PUBKEY, SYSVAR_STAKE_HISTORY_PUBKEY, Secp256k1Program, SendTransactionError, SolanaJSONRPCError, SolanaJSONRPCErrorCode, StakeAuthorizationLayout, StakeInstruction, StakeProgram, Struct, SystemInstruction, SystemProgram, Transaction, TransactionExpiredBlockheightExceededError, TransactionExpiredNonceInvalidError, TransactionExpiredTimeoutError, TransactionInstruction, TransactionMessage, TransactionStatus, VALIDATOR_INFO_KEY, VERSION_PREFIX_MASK, VOTE_PROGRAM_ID, ValidatorInfo, VersionedMessage, VersionedTransaction, VoteAccount, VoteAuthorizationLayout, VoteInit, VoteInstruction, VoteProgram, clusterApiUrl, sendAndConfirmRawTransaction, sendAndConfirmTransaction };\n//# sourceMappingURL=index.browser.esm.js.map\n","export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n//# sourceMappingURL=_assert.js.map","export const crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n//# sourceMappingURL=cryptoBrowser.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n//# sourceMappingURL=utils.js.map","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_224 = wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\nexport const sha224 = wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","/**\n * A `StructFailure` represents a single specific failure in validation.\n */\n\n/**\n * `StructError` objects are thrown (or returned) when validation fails.\n *\n * Validation logic is design to exit early for maximum performance. The error\n * represents the first error encountered during validation. For more detail,\n * the `error.failures` property is a generator function that can be run to\n * continue validation and receive all the failures in the data.\n */\nclass StructError extends TypeError {\n constructor(failure, failures) {\n let cached;\n const {\n message,\n ...rest\n } = failure;\n const {\n path\n } = failure;\n const msg = path.length === 0 ? message : \"At path: \" + path.join('.') + \" -- \" + message;\n super(msg);\n Object.assign(this, rest);\n this.name = this.constructor.name;\n\n this.failures = () => {\n var _cached;\n\n return (_cached = cached) != null ? _cached : cached = [failure, ...failures()];\n };\n }\n\n}\n\n/**\n * Check if a value is an iterator.\n */\nfunction isIterable(x) {\n return isObject(x) && typeof x[Symbol.iterator] === 'function';\n}\n/**\n * Check if a value is a plain object.\n */\n\n\nfunction isObject(x) {\n return typeof x === 'object' && x != null;\n}\n/**\n * Check if a value is a plain object.\n */\n\nfunction isPlainObject(x) {\n if (Object.prototype.toString.call(x) !== '[object Object]') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(x);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Return a value as a printable string.\n */\n\nfunction print(value) {\n return typeof value === 'string' ? JSON.stringify(value) : \"\" + value;\n}\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\n\nfunction shiftIterator(input) {\n const {\n done,\n value\n } = input.next();\n return done ? undefined : value;\n}\n/**\n * Convert a single validation result to a failure.\n */\n\nfunction toFailure(result, context, struct, value) {\n if (result === true) {\n return;\n } else if (result === false) {\n result = {};\n } else if (typeof result === 'string') {\n result = {\n message: result\n };\n }\n\n const {\n path,\n branch\n } = context;\n const {\n type\n } = struct;\n const {\n refinement,\n message = \"Expected a value of type `\" + type + \"`\" + (refinement ? \" with refinement `\" + refinement + \"`\" : '') + \", but received: `\" + print(value) + \"`\"\n } = result;\n return {\n value,\n type,\n refinement,\n key: path[path.length - 1],\n path,\n branch,\n ...result,\n message\n };\n}\n/**\n * Convert a validation result to an iterable of failures.\n */\n\nfunction* toFailures(result, context, struct, value) {\n if (!isIterable(result)) {\n result = [result];\n }\n\n for (const r of result) {\n const failure = toFailure(r, context, struct, value);\n\n if (failure) {\n yield failure;\n }\n }\n}\n/**\n * Check a value against a struct, traversing deeply into nested values, and\n * returning an iterator of failures or success.\n */\n\nfunction* run(value, struct, options = {}) {\n const {\n path = [],\n branch = [value],\n coerce = false,\n mask = false\n } = options;\n const ctx = {\n path,\n branch\n };\n\n if (coerce) {\n value = struct.coercer(value, ctx);\n\n if (mask && struct.type !== 'type' && isObject(struct.schema) && isObject(value) && !Array.isArray(value)) {\n for (const key in value) {\n if (struct.schema[key] === undefined) {\n delete value[key];\n }\n }\n }\n }\n\n let valid = true;\n\n for (const failure of struct.validator(value, ctx)) {\n valid = false;\n yield [failure, undefined];\n }\n\n for (let [k, v, s] of struct.entries(value, ctx)) {\n const ts = run(v, s, {\n path: k === undefined ? path : [...path, k],\n branch: k === undefined ? branch : [...branch, v],\n coerce,\n mask\n });\n\n for (const t of ts) {\n if (t[0]) {\n valid = false;\n yield [t[0], undefined];\n } else if (coerce) {\n v = t[1];\n\n if (k === undefined) {\n value = v;\n } else if (value instanceof Map) {\n value.set(k, v);\n } else if (value instanceof Set) {\n value.add(v);\n } else if (isObject(value)) {\n value[k] = v;\n }\n }\n }\n }\n\n if (valid) {\n for (const failure of struct.refiner(value, ctx)) {\n valid = false;\n yield [failure, undefined];\n }\n }\n\n if (valid) {\n yield [undefined, value];\n }\n}\n\n/**\n * `Struct` objects encapsulate the validation logic for a specific type of\n * values. Once constructed, you use the `assert`, `is` or `validate` helpers to\n * validate unknown input data against the struct.\n */\n\nclass Struct {\n constructor(props) {\n const {\n type,\n schema,\n validator,\n refiner,\n coercer = value => value,\n entries = function* () {}\n } = props;\n this.type = type;\n this.schema = schema;\n this.entries = entries;\n this.coercer = coercer;\n\n if (validator) {\n this.validator = (value, context) => {\n const result = validator(value, context);\n return toFailures(result, context, this, value);\n };\n } else {\n this.validator = () => [];\n }\n\n if (refiner) {\n this.refiner = (value, context) => {\n const result = refiner(value, context);\n return toFailures(result, context, this, value);\n };\n } else {\n this.refiner = () => [];\n }\n }\n /**\n * Assert that a value passes the struct's validation, throwing if it doesn't.\n */\n\n\n assert(value) {\n return assert(value, this);\n }\n /**\n * Create a value with the struct's coercion logic, then validate it.\n */\n\n\n create(value) {\n return create(value, this);\n }\n /**\n * Check if a value passes the struct's validation.\n */\n\n\n is(value) {\n return is(value, this);\n }\n /**\n * Mask a value, coercing and validating it, but returning only the subset of\n * properties defined by the struct's schema.\n */\n\n\n mask(value) {\n return mask(value, this);\n }\n /**\n * Validate a value with the struct's validation logic, returning a tuple\n * representing the result.\n *\n * You may optionally pass `true` for the `withCoercion` argument to coerce\n * the value before attempting to validate it. If you do, the result will\n * contain the coerced result when successful.\n */\n\n\n validate(value, options = {}) {\n return validate(value, this, options);\n }\n\n}\n/**\n * Assert that a value passes a struct, throwing if it doesn't.\n */\n\nfunction assert(value, struct) {\n const result = validate(value, struct);\n\n if (result[0]) {\n throw result[0];\n }\n}\n/**\n * Create a value with the coercion logic of struct and validate it.\n */\n\nfunction create(value, struct) {\n const result = validate(value, struct, {\n coerce: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Mask a value, returning only the subset of properties defined by a struct.\n */\n\nfunction mask(value, struct) {\n const result = validate(value, struct, {\n coerce: true,\n mask: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Check if a value passes a struct.\n */\n\nfunction is(value, struct) {\n const result = validate(value, struct);\n return !result[0];\n}\n/**\n * Validate a value against a struct, returning an error if invalid, or the\n * value (with potential coercion) if valid.\n */\n\nfunction validate(value, struct, options = {}) {\n const tuples = run(value, struct, options);\n const tuple = shiftIterator(tuples);\n\n if (tuple[0]) {\n const error = new StructError(tuple[0], function* () {\n for (const t of tuples) {\n if (t[0]) {\n yield t[0];\n }\n }\n });\n return [error, undefined];\n } else {\n const v = tuple[1];\n return [undefined, v];\n }\n}\n\nfunction assign(...Structs) {\n const schemas = Structs.map(s => s.schema);\n const schema = Object.assign({}, ...schemas);\n return object(schema);\n}\n/**\n * Define a new struct type with a custom validation function.\n */\n\nfunction define(name, validator) {\n return new Struct({\n type: name,\n schema: null,\n validator\n });\n}\n/**\n * Create a new struct based on an existing struct, but the value is allowed to\n * be `undefined`. `log` will be called if the value is not `undefined`.\n */\n\nfunction deprecated(struct, log) {\n return new Struct({ ...struct,\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n\n validator(value, ctx) {\n if (value === undefined) {\n return true;\n } else {\n log(value, ctx);\n return struct.validator(value, ctx);\n }\n }\n\n });\n}\n/**\n * Create a struct with dynamic validation logic.\n *\n * The callback will receive the value currently being validated, and must\n * return a struct object to validate it with. This can be useful to model\n * validation logic that changes based on its input.\n */\n\nfunction dynamic(fn) {\n return new Struct({\n type: 'dynamic',\n schema: null,\n\n *entries(value, ctx) {\n const struct = fn(value, ctx);\n yield* struct.entries(value, ctx);\n },\n\n validator(value, ctx) {\n const struct = fn(value, ctx);\n return struct.validator(value, ctx);\n },\n\n coercer(value, ctx) {\n const struct = fn(value, ctx);\n return struct.coercer(value, ctx);\n }\n\n });\n}\n/**\n * Create a struct with lazily evaluated validation logic.\n *\n * The first time validation is run with the struct, the callback will be called\n * and must return a struct object to use. This is useful for cases where you\n * want to have self-referential structs for nested data structures to avoid a\n * circular definition problem.\n */\n\nfunction lazy(fn) {\n let struct;\n return new Struct({\n type: 'lazy',\n schema: null,\n\n *entries(value, ctx) {\n var _struct;\n\n (_struct = struct) != null ? _struct : struct = fn();\n yield* struct.entries(value, ctx);\n },\n\n validator(value, ctx) {\n var _struct2;\n\n (_struct2 = struct) != null ? _struct2 : struct = fn();\n return struct.validator(value, ctx);\n },\n\n coercer(value, ctx) {\n var _struct3;\n\n (_struct3 = struct) != null ? _struct3 : struct = fn();\n return struct.coercer(value, ctx);\n }\n\n });\n}\n/**\n * Create a new struct based on an existing object struct, but excluding\n * specific properties.\n *\n * Like TypeScript's `Omit` utility.\n */\n\nfunction omit(struct, keys) {\n const {\n schema\n } = struct;\n const subschema = { ...schema\n };\n\n for (const key of keys) {\n delete subschema[key];\n }\n\n return object(subschema);\n}\n/**\n * Create a new struct based on an existing object struct, but with all of its\n * properties allowed to be `undefined`.\n *\n * Like TypeScript's `Partial` utility.\n */\n\nfunction partial(struct) {\n const schema = struct instanceof Struct ? { ...struct.schema\n } : { ...struct\n };\n\n for (const key in schema) {\n schema[key] = optional(schema[key]);\n }\n\n return object(schema);\n}\n/**\n * Create a new struct based on an existing object struct, but only including\n * specific properties.\n *\n * Like TypeScript's `Pick` utility.\n */\n\nfunction pick(struct, keys) {\n const {\n schema\n } = struct;\n const subschema = {};\n\n for (const key of keys) {\n subschema[key] = schema[key];\n }\n\n return object(subschema);\n}\n/**\n * Define a new struct type with a custom validation function.\n *\n * @deprecated This function has been renamed to `define`.\n */\n\nfunction struct(name, validator) {\n console.warn('superstruct@0.11 - The `struct` helper has been renamed to `define`.');\n return define(name, validator);\n}\n\n/**\n * Ensure that any value passes validation.\n */\n\nfunction any() {\n return define('any', () => true);\n}\nfunction array(Element) {\n return new Struct({\n type: 'array',\n schema: Element,\n\n *entries(value) {\n if (Element && Array.isArray(value)) {\n for (const [i, v] of value.entries()) {\n yield [i, v, Element];\n }\n }\n },\n\n coercer(value) {\n return Array.isArray(value) ? value.slice() : value;\n },\n\n validator(value) {\n return Array.isArray(value) || \"Expected an array value, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a boolean.\n */\n\nfunction boolean() {\n return define('boolean', value => {\n return typeof value === 'boolean';\n });\n}\n/**\n * Ensure that a value is a valid `Date`.\n *\n * Note: this also ensures that the value is *not* an invalid `Date` object,\n * which can occur when parsing a date fails but still returns a `Date`.\n */\n\nfunction date() {\n return define('date', value => {\n return value instanceof Date && !isNaN(value.getTime()) || \"Expected a valid `Date` object, but received: \" + print(value);\n });\n}\nfunction enums(values) {\n const schema = {};\n const description = values.map(v => print(v)).join();\n\n for (const key of values) {\n schema[key] = key;\n }\n\n return new Struct({\n type: 'enums',\n schema,\n\n validator(value) {\n return values.includes(value) || \"Expected one of `\" + description + \"`, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a function.\n */\n\nfunction func() {\n return define('func', value => {\n return typeof value === 'function' || \"Expected a function, but received: \" + print(value);\n });\n}\n/**\n * Ensure that a value is an instance of a specific class.\n */\n\nfunction instance(Class) {\n return define('instance', value => {\n return value instanceof Class || \"Expected a `\" + Class.name + \"` instance, but received: \" + print(value);\n });\n}\n/**\n * Ensure that a value is an integer.\n */\n\nfunction integer() {\n return define('integer', value => {\n return typeof value === 'number' && !isNaN(value) && Number.isInteger(value) || \"Expected an integer, but received: \" + print(value);\n });\n}\nfunction intersection(Structs) {\n return new Struct({\n type: 'intersection',\n schema: null,\n\n *entries(value, ctx) {\n for (const S of Structs) {\n yield* S.entries(value, ctx);\n }\n },\n\n *validator(value, ctx) {\n for (const S of Structs) {\n yield* S.validator(value, ctx);\n }\n },\n\n *refiner(value, ctx) {\n for (const S of Structs) {\n yield* S.refiner(value, ctx);\n }\n }\n\n });\n}\nfunction literal(constant) {\n const description = print(constant);\n const t = typeof constant;\n return new Struct({\n type: 'literal',\n schema: t === 'string' || t === 'number' || t === 'boolean' ? constant : null,\n\n validator(value) {\n return value === constant || \"Expected the literal `\" + description + \"`, but received: \" + print(value);\n }\n\n });\n}\nfunction map(Key, Value) {\n return new Struct({\n type: 'map',\n schema: null,\n\n *entries(value) {\n if (Key && Value && value instanceof Map) {\n for (const [k, v] of value.entries()) {\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n\n coercer(value) {\n return value instanceof Map ? new Map(value) : value;\n },\n\n validator(value) {\n return value instanceof Map || \"Expected a `Map` object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that no value ever passes validation.\n */\n\nfunction never() {\n return define('never', () => false);\n}\n/**\n * Augment an existing struct to allow `null` values.\n */\n\nfunction nullable(struct) {\n return new Struct({ ...struct,\n validator: (value, ctx) => value === null || struct.validator(value, ctx),\n refiner: (value, ctx) => value === null || struct.refiner(value, ctx)\n });\n}\n/**\n * Ensure that a value is a number.\n */\n\nfunction number() {\n return define('number', value => {\n return typeof value === 'number' && !isNaN(value) || \"Expected a number, but received: \" + print(value);\n });\n}\nfunction object(schema) {\n const knowns = schema ? Object.keys(schema) : [];\n const Never = never();\n return new Struct({\n type: 'object',\n schema: schema ? schema : null,\n\n *entries(value) {\n if (schema && isObject(value)) {\n const unknowns = new Set(Object.keys(value));\n\n for (const key of knowns) {\n unknowns.delete(key);\n yield [key, value[key], schema[key]];\n }\n\n for (const key of unknowns) {\n yield [key, value[key], Never];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n },\n\n coercer(value) {\n return isObject(value) ? { ...value\n } : value;\n }\n\n });\n}\n/**\n * Augment a struct to allow `undefined` values.\n */\n\nfunction optional(struct) {\n return new Struct({ ...struct,\n validator: (value, ctx) => value === undefined || struct.validator(value, ctx),\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx)\n });\n}\n/**\n * Ensure that a value is an object with keys and values of specific types, but\n * without ensuring any specific shape of properties.\n *\n * Like TypeScript's `Record` utility.\n */\n\nfunction record(Key, Value) {\n return new Struct({\n type: 'record',\n schema: null,\n\n *entries(value) {\n if (isObject(value)) {\n for (const k in value) {\n const v = value[k];\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a `RegExp`.\n *\n * Note: this does not test the value against the regular expression! For that\n * you need to use the `pattern()` refinement.\n */\n\nfunction regexp() {\n return define('regexp', value => {\n return value instanceof RegExp;\n });\n}\nfunction set(Element) {\n return new Struct({\n type: 'set',\n schema: null,\n\n *entries(value) {\n if (Element && value instanceof Set) {\n for (const v of value) {\n yield [v, v, Element];\n }\n }\n },\n\n coercer(value) {\n return value instanceof Set ? new Set(value) : value;\n },\n\n validator(value) {\n return value instanceof Set || \"Expected a `Set` object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a string.\n */\n\nfunction string() {\n return define('string', value => {\n return typeof value === 'string' || \"Expected a string, but received: \" + print(value);\n });\n}\nfunction tuple(Elements) {\n const Never = never();\n return new Struct({\n type: 'tuple',\n schema: null,\n\n *entries(value) {\n if (Array.isArray(value)) {\n const length = Math.max(Elements.length, value.length);\n\n for (let i = 0; i < length; i++) {\n yield [i, value[i], Elements[i] || Never];\n }\n }\n },\n\n validator(value) {\n return Array.isArray(value) || \"Expected an array, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value has a set of known properties of specific types.\n *\n * Note: Unrecognized properties are allowed and untouched. This is similar to\n * how TypeScript's structural typing works.\n */\n\nfunction type(schema) {\n const keys = Object.keys(schema);\n return new Struct({\n type: 'type',\n schema,\n\n *entries(value) {\n if (isObject(value)) {\n for (const k of keys) {\n yield [k, value[k], schema[k]];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n\n });\n}\nfunction union(Structs) {\n const description = Structs.map(s => s.type).join(' | ');\n return new Struct({\n type: 'union',\n schema: null,\n\n validator(value, ctx) {\n const failures = [];\n\n for (const S of Structs) {\n const [...tuples] = run(value, S, ctx);\n const [first] = tuples;\n\n if (!first[0]) {\n return [];\n } else {\n for (const [failure] of tuples) {\n if (failure) {\n failures.push(failure);\n }\n }\n }\n }\n\n return [\"Expected the value to satisfy a union of `\" + description + \"`, but received: \" + print(value), ...failures];\n }\n\n });\n}\n/**\n * Ensure that any value passes validation, without widening its type to `any`.\n */\n\nfunction unknown() {\n return define('unknown', () => true);\n}\n\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n *\n * This allows you to transform input data before validating it, to increase the\n * likelihood that it passes validation—for example for default values, parsing\n * different formats, etc.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction coerce(struct, condition, coercer) {\n return new Struct({ ...struct,\n coercer: (value, ctx) => {\n return is(value, condition) ? struct.coercer(coercer(value, ctx), ctx) : struct.coercer(value, ctx);\n }\n });\n}\n/**\n * Augment a struct to replace `undefined` values with a default.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction defaulted(struct, fallback, options = {}) {\n return coerce(struct, unknown(), x => {\n const f = typeof fallback === 'function' ? fallback() : fallback;\n\n if (x === undefined) {\n return f;\n }\n\n if (!options.strict && isPlainObject(x) && isPlainObject(f)) {\n const ret = { ...x\n };\n let changed = false;\n\n for (const key in f) {\n if (ret[key] === undefined) {\n ret[key] = f[key];\n changed = true;\n }\n }\n\n if (changed) {\n return ret;\n }\n }\n\n return x;\n });\n}\n/**\n * Augment a struct to trim string inputs.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction trimmed(struct) {\n return coerce(struct, string(), x => x.trim());\n}\n\n/**\n * Ensure that a string, array, map, or set is empty.\n */\n\nfunction empty(struct) {\n const expected = \"Expected an empty \" + struct.type;\n return refine(struct, 'empty', value => {\n if (value instanceof Map || value instanceof Set) {\n const {\n size\n } = value;\n return size === 0 || expected + \" but received one with a size of `\" + size + \"`\";\n } else {\n const {\n length\n } = value;\n return length === 0 || expected + \" but received one with a length of `\" + length + \"`\";\n }\n });\n}\n/**\n * Ensure that a number or date is below a threshold.\n */\n\nfunction max(struct, threshold, options = {}) {\n const {\n exclusive\n } = options;\n return refine(struct, 'max', value => {\n return exclusive ? value < threshold : value <= threshold || \"Expected a \" + struct.type + \" greater than \" + (exclusive ? '' : 'or equal to ') + threshold + \" but received `\" + value + \"`\";\n });\n}\n/**\n * Ensure that a number or date is above a threshold.\n */\n\nfunction min(struct, threshold, options = {}) {\n const {\n exclusive\n } = options;\n return refine(struct, 'min', value => {\n return exclusive ? value > threshold : value >= threshold || \"Expected a \" + struct.type + \" greater than \" + (exclusive ? '' : 'or equal to ') + threshold + \" but received `\" + value + \"`\";\n });\n}\n/**\n * Ensure that a string matches a regular expression.\n */\n\nfunction pattern(struct, regexp) {\n return refine(struct, 'pattern', value => {\n return regexp.test(value) || \"Expected a \" + struct.type + \" matching `/\" + regexp.source + \"/` but received \\\"\" + value + \"\\\"\";\n });\n}\n/**\n * Ensure that a string, array, number, date, map, or set has a size (or length, or time) between `min` and `max`.\n */\n\nfunction size(struct, min, max = min) {\n const expected = \"Expected a \" + struct.type;\n const of = min === max ? \"of `\" + min + \"`\" : \"between `\" + min + \"` and `\" + max + \"`\";\n return refine(struct, 'size', value => {\n if (typeof value === 'number' || value instanceof Date) {\n return min <= value && value <= max || expected + \" \" + of + \" but received `\" + value + \"`\";\n } else if (value instanceof Map || value instanceof Set) {\n const {\n size\n } = value;\n return min <= size && size <= max || expected + \" with a size \" + of + \" but received one with a size of `\" + size + \"`\";\n } else {\n const {\n length\n } = value;\n return min <= length && length <= max || expected + \" with a length \" + of + \" but received one with a length of `\" + length + \"`\";\n }\n });\n}\n/**\n * Augment a `Struct` to add an additional refinement to the validation.\n *\n * The refiner function is guaranteed to receive a value of the struct's type,\n * because the struct's existing validation will already have passed. This\n * allows you to layer additional validation on top of existing structs.\n */\n\nfunction refine(struct, name, refiner) {\n return new Struct({ ...struct,\n\n *refiner(value, ctx) {\n yield* struct.refiner(value, ctx);\n const result = refiner(value, ctx);\n const failures = toFailures(result, ctx, struct, value);\n\n for (const failure of failures) {\n yield { ...failure,\n refinement: name\n };\n }\n }\n\n });\n}\n\nexport { Struct, StructError, any, array, assert, assign, boolean, coerce, create, date, defaulted, define, deprecated, dynamic, empty, enums, func, instance, integer, intersection, is, lazy, literal, map, mask, max, min, never, nullable, number, object, omit, optional, partial, pattern, pick, record, refine, regexp, set, size, string, struct, trimmed, tuple, type, union, unknown, validate };\n//# sourceMappingURL=index.es.js.map\n","import assert from './_assert.js';\nimport u64 from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapConstructorWithOpts, } from './utils.js';\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s);\nconst rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s);\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n assert.number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n assert.exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n assert.exists(this, false);\n assert.bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n assert.number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n assert.output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = gen(0x06, 136, 256 / 8);\nexport const sha3_384 = gen(0x06, 104, 384 / 8);\nexport const sha3_512 = gen(0x06, 72, 512 / 8);\nexport const keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = gen(0x01, 136, 256 / 8);\nexport const keccak_384 = gen(0x01, 104, 384 / 8);\nexport const keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = genShake(0x1f, 168, 128 / 8);\nexport const shake256 = genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\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\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst 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\nconst 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 const arr = new Uint8Array(1)\n const 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 const 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 const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const 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(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\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 const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const 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 const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let 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 const 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 let 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 const len = checked(obj.length) | 0\n const 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 let x = a.length\n let y = b.length\n\n for (let 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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n 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 const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 let 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 const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const 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 let str = ''\n const 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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const 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 const 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 let 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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let 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 const 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 const 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 let val = this[offset]\n let mul = 1\n let 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 let val = this[offset + --byteLength]\n let 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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 const 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 const 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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\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 const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 const 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 const 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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const 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// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst 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 let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet converter;\n/**\n * Convert a little-endian buffer into a BigInt.\n * @param buf The little-endian buffer to convert\n * @returns A BigInt with the little-endian representation of buf.\n */\nfunction toBigIntLE(buf) {\n {\n const reversed = Buffer.from(buf);\n reversed.reverse();\n const hex = reversed.toString('hex');\n if (hex.length === 0) {\n return BigInt(0);\n }\n return BigInt(`0x${hex}`);\n }\n return converter.toBigInt(buf, false);\n}\nexports.toBigIntLE = toBigIntLE;\n/**\n * Convert a big-endian buffer into a BigInt\n * @param buf The big-endian buffer to convert.\n * @returns A BigInt with the big-endian representation of buf.\n */\nfunction toBigIntBE(buf) {\n {\n const hex = buf.toString('hex');\n if (hex.length === 0) {\n return BigInt(0);\n }\n return BigInt(`0x${hex}`);\n }\n return converter.toBigInt(buf, true);\n}\nexports.toBigIntBE = toBigIntBE;\n/**\n * Convert a BigInt to a little-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A little-endian buffer representation of num.\n */\nfunction toBufferLE(num, width) {\n {\n const hex = num.toString(16);\n const buffer = Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n buffer.reverse();\n return buffer;\n }\n // Allocation is done here, since it is slower using napi in C\n return converter.fromBigInt(num, Buffer.allocUnsafe(width), false);\n}\nexports.toBufferLE = toBufferLE;\n/**\n * Convert a BigInt to a big-endian buffer.\n * @param num The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A big-endian buffer representation of num.\n */\nfunction toBufferBE(num, width) {\n {\n const hex = num.toString(16);\n return Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n }\n return converter.fromBigInt(num, Buffer.allocUnsafe(width), true);\n}\nexports.toBufferBE = toBufferBE;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 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 this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\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 parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\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 // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 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 b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\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 this._strip();\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 function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\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 // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n 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 off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\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.modrn(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, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\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 var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\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] >>> wbit) & 0x01;\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 // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(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 var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 isNegNum ? this.ineg() : 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.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(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.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\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 this._strip();\n return isNegNum ? this.ineg() : this;\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 if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\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\n move(a, a.umod(this.m)._forceRed(this));\n return a;\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\";\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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst ResolvedTextDecoder = typeof TextDecoder !== \"function\" ? encoding.TextDecoder : TextDecoder;\nconst textDecoder = new ResolvedTextDecoder(\"utf-8\", { fatal: true });\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n value = Buffer.from(value, \"utf8\");\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + \": \" + this.fieldPath.join(\".\");\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 16)));\n }\n writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 32)));\n }\n writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 64)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([\n Buffer.from(this.buf.subarray(0, this.length)),\n buffer,\n Buffer.alloc(INITIAL_LENGTH),\n ]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, \"utf8\");\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if ([\"ERR_BUFFER_OUT_OF_BOUNDS\", \"ERR_OUT_OF_RANGE\"].indexOf(code) >= 0) {\n throw new BorshError(\"Reached the end of buffer when deserializing\");\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU16() {\n const value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, \"le\");\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, \"le\");\n }\n readU256() {\n const buf = this.readBuffer(32);\n return new bn_js_1.default(buf, \"le\");\n }\n readU512() {\n const buf = this.readBuffer(64);\n return new bn_js_1.default(buf, \"le\");\n }\n readBuffer(len) {\n if (this.offset + len > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === \"string\") {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else if (fieldType.length === 2 && typeof fieldType[1] === \"number\") {\n if (value.length !== fieldType[1]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`);\n }\n for (let i = 0; i < fieldType[1]; i++) {\n serializeField(schema, null, value[i], fieldType[0], writer);\n }\n }\n else {\n writer.writeArray(value, (item) => {\n serializeField(schema, fieldName, item, fieldType[0], writer);\n });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case \"option\": {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n case \"map\": {\n writer.writeU32(value.size);\n value.forEach((val, key) => {\n serializeField(schema, fieldName, key, fieldType.key, writer);\n serializeField(schema, fieldName, val, fieldType.value, writer);\n });\n break;\n }\n default:\n throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n if (typeof obj.borshSerialize === \"function\") {\n obj.borshSerialize(writer);\n return;\n }\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === \"enum\") {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj, Writer = BinaryWriter) {\n const writer = new Writer();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === \"string\") {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n return reader.readFixedArray(fieldType[0]);\n }\n else if (typeof fieldType[1] === \"number\") {\n const arr = [];\n for (let i = 0; i < fieldType[1]; i++) {\n arr.push(deserializeField(schema, null, fieldType[0], reader));\n }\n return arr;\n }\n else {\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n }\n if (fieldType.kind === \"option\") {\n const option = reader.readU8();\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n return undefined;\n }\n if (fieldType.kind === \"map\") {\n let map = new Map();\n const length = reader.readU32();\n for (let i = 0; i < length; i++) {\n const key = deserializeField(schema, fieldName, fieldType.key, reader);\n const val = deserializeField(schema, fieldName, fieldType.value, reader);\n map.set(key, val);\n }\n return map;\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n if (typeof classType.borshDeserialize === \"function\") {\n return classType.borshDeserialize(reader);\n }\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === \"enum\") {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\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\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst 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\nconst 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 const arr = new Uint8Array(1)\n const 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 const 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 const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const 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(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\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 const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const 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 const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let 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 const 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 let 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 const len = checked(obj.length) | 0\n const 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 let x = a.length\n let y = b.length\n\n for (let 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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n 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 const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 let 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 const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const 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 let str = ''\n const 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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const 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 const 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 let 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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let 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 const 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 const 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 let val = this[offset]\n let mul = 1\n let 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 let val = this[offset + --byteLength]\n let 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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 const 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 const 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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\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 const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 const 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 const 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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const 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// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst 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 let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\nconst uuid = require('uuid').v4;\nconst generateRequest = require('../../generateRequest');\n\n/**\n * Constructor for a Jayson Browser Client that does not depend any node.js core libraries\n * @class ClientBrowser\n * @param {Function} callServer Method that calls the server, receives the stringified request and a regular node-style callback\n * @param {Object} [options]\n * @param {Function} [options.reviver] Reviver function for JSON\n * @param {Function} [options.replacer] Replacer function for JSON\n * @param {Number} [options.version=2] JSON-RPC version to use (1|2)\n * @param {Function} [options.generator] Function to use for generating request IDs\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @return {ClientBrowser}\n */\nconst ClientBrowser = function(callServer, options) {\n if(!(this instanceof ClientBrowser)) {\n return new ClientBrowser(callServer, options);\n }\n\n if (!options) {\n options = {};\n }\n\n this.options = {\n reviver: typeof options.reviver !== 'undefined' ? options.reviver : null,\n replacer: typeof options.replacer !== 'undefined' ? options.replacer : null,\n generator: typeof options.generator !== 'undefined' ? options.generator : function() { return uuid(); },\n version: typeof options.version !== 'undefined' ? options.version : 2,\n notificationIdNull: typeof options.notificationIdNull === 'boolean' ? options.notificationIdNull : false,\n };\n\n this.callServer = callServer;\n};\n\nmodule.exports = ClientBrowser;\n\n/**\n * Creates a request and dispatches it if given a callback.\n * @param {String|Array} method A batch request if passed an Array, or a method name if passed a String\n * @param {Array|Object} [params] Parameters for the method\n * @param {String|Number} [id] Optional id. If undefined an id will be generated. If null it creates a notification request\n * @param {Function} [callback] Request callback. If specified, executes the request rather than only returning it.\n * @throws {TypeError} Invalid parameters\n * @return {Object} JSON-RPC 1.0 or 2.0 compatible request\n */\nClientBrowser.prototype.request = function(method, params, id, callback) {\n const self = this;\n let request = null;\n\n // is this a batch request?\n const isBatch = Array.isArray(method) && typeof params === 'function';\n\n if (this.options.version === 1 && isBatch) {\n throw new TypeError('JSON-RPC 1.0 does not support batching');\n }\n\n // is this a raw request?\n const isRaw = !isBatch && method && typeof method === 'object' && typeof params === 'function';\n\n if(isBatch || isRaw) {\n callback = params;\n request = method;\n } else {\n if(typeof id === 'function') {\n callback = id;\n // specifically undefined because \"null\" is a notification request\n id = undefined;\n }\n\n const hasCallback = typeof callback === 'function';\n\n try {\n request = generateRequest(method, params, id, {\n generator: this.options.generator,\n version: this.options.version,\n notificationIdNull: this.options.notificationIdNull,\n });\n } catch(err) {\n if(hasCallback) {\n return callback(err);\n }\n throw err;\n }\n\n // no callback means we should just return a raw request\n if(!hasCallback) {\n return request;\n }\n\n }\n\n let message;\n try {\n message = JSON.stringify(request, this.options.replacer);\n } catch(err) {\n return callback(err);\n }\n\n this.callServer(message, function(err, response) {\n self._parseResponse(err, response, callback);\n });\n\n // always return the raw request\n return request;\n};\n\n/**\n * Parses a response from a server\n * @param {Object} err Error to pass on that is unrelated to the actual response\n * @param {String} responseText JSON-RPC 1.0 or 2.0 response\n * @param {Function} callback Callback that will receive different arguments depending on the amount of parameters\n * @private\n */\nClientBrowser.prototype._parseResponse = function(err, responseText, callback) {\n if(err) {\n callback(err);\n return;\n }\n\n if(!responseText) {\n // empty response text, assume that is correct because it could be a\n // notification which jayson does not give any body for\n return callback();\n }\n\n let response;\n try {\n response = JSON.parse(responseText, this.options.reviver);\n } catch(err) {\n return callback(err);\n }\n\n if(callback.length === 3) {\n // if callback length is 3, we split callback arguments on error and response\n\n // is batch response?\n if(Array.isArray(response)) {\n\n // neccesary to split strictly on validity according to spec here\n const isError = function(res) {\n return typeof res.error !== 'undefined';\n };\n\n const isNotError = function (res) {\n return !isError(res);\n };\n\n return callback(null, response.filter(isError), response.filter(isNotError));\n \n } else {\n\n // split regardless of validity\n return callback(null, response.error, response.result);\n \n }\n \n }\n\n callback(null, response);\n};\n","'use strict';\n\nconst uuid = require('uuid').v4;\n\n/**\n * Generates a JSON-RPC 1.0 or 2.0 request\n * @param {String} method Name of method to call\n * @param {Array|Object} params Array of parameters passed to the method as specified, or an object of parameter names and corresponding value\n * @param {String|Number|null} [id] Request ID can be a string, number, null for explicit notification or left out for automatic generation\n * @param {Object} [options]\n * @param {Number} [options.version=2] JSON-RPC version to use (1 or 2)\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @param {Function} [options.generator] Passed the request, and the options object and is expected to return a request ID\n * @throws {TypeError} If any of the parameters are invalid\n * @return {Object} A JSON-RPC 1.0 or 2.0 request\n * @memberOf Utils\n */\nconst generateRequest = function(method, params, id, options) {\n if(typeof method !== 'string') {\n throw new TypeError(method + ' must be a string');\n }\n\n options = options || {};\n\n // check valid version provided\n const version = typeof options.version === 'number' ? options.version : 2;\n if (version !== 1 && version !== 2) {\n throw new TypeError(version + ' must be 1 or 2');\n }\n\n const request = {\n method: method\n };\n\n if(version === 2) {\n request.jsonrpc = '2.0';\n }\n\n if(params) {\n // params given, but invalid?\n if(typeof params !== 'object' && !Array.isArray(params)) {\n throw new TypeError(params + ' must be an object, array or omitted');\n }\n request.params = params;\n }\n\n // if id was left out, generate one (null means explicit notification)\n if(typeof(id) === 'undefined') {\n const generator = typeof options.generator === 'function' ? options.generator : function() { return uuid(); };\n request.id = generator(request, options);\n } else if (version === 2 && id === null) {\n // we have a version 2 notification\n if (options.notificationIdNull) {\n request.id = null; // id will not be set at all unless option provided\n }\n } else {\n request.id = id;\n }\n\n return request;\n};\n\nmodule.exports = generateRequest;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var prefix = arguments.length > 1 ? arguments[1] : undefined;\n var idsListRef = React__default['default'].useRef([]);\n var prevCount = usePrevious(count);\n var prevPrefix = usePrevious(prefix);\n\n if (count !== prevCount || prevPrefix !== prefix) {\n idsListRef.current = getIds(count, prefix);\n }\n\n return idsListRef.current;\n}\n\nexports['default'] = nextId;\nexports.resetId = resetId;\nexports.setPrefix = setPrefix;\nexports.useId = useId;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 1 && arguments[1] !== undefined ? arguments[1] : \"ws://localhost:8080\";\n\n var _a = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var generate_request_id = arguments.length > 3 ? arguments[3] : undefined;\n (0, _classCallCheck2[\"default\"])(this, CommonClient);\n\n var _a$autoconnect = _a.autoconnect,\n autoconnect = _a$autoconnect === void 0 ? true : _a$autoconnect,\n _a$reconnect = _a.reconnect,\n reconnect = _a$reconnect === void 0 ? true : _a$reconnect,\n _a$reconnect_interval = _a.reconnect_interval,\n reconnect_interval = _a$reconnect_interval === void 0 ? 1000 : _a$reconnect_interval,\n _a$max_reconnects = _a.max_reconnects,\n max_reconnects = _a$max_reconnects === void 0 ? 5 : _a$max_reconnects,\n rest_options = __rest(_a, [\"autoconnect\", \"reconnect\", \"reconnect_interval\", \"max_reconnects\"]);\n\n _this = _super.call(this);\n _this.webSocketFactory = webSocketFactory;\n _this.queue = {};\n _this.rpc_id = 0;\n _this.address = address;\n _this.autoconnect = autoconnect;\n _this.ready = false;\n _this.reconnect = reconnect;\n _this.reconnect_interval = reconnect_interval;\n _this.max_reconnects = max_reconnects;\n _this.rest_options = rest_options;\n _this.current_reconnects = 0;\n\n _this.generate_request_id = generate_request_id || function () {\n return ++_this.rpc_id;\n };\n\n if (_this.autoconnect) _this._connect(_this.address, Object.assign({\n autoconnect: _this.autoconnect,\n reconnect: _this.reconnect,\n reconnect_interval: _this.reconnect_interval,\n max_reconnects: _this.max_reconnects\n }, _this.rest_options));\n return _this;\n }\n /**\n * Connects to a defined server if not connected already.\n * @method\n * @return {Undefined}\n */\n\n\n (0, _createClass2[\"default\"])(CommonClient, [{\n key: \"connect\",\n value: function connect() {\n if (this.socket) return;\n\n this._connect(this.address, Object.assign({\n autoconnect: this.autoconnect,\n reconnect: this.reconnect,\n reconnect_interval: this.reconnect_interval,\n max_reconnects: this.max_reconnects\n }, this.rest_options));\n }\n /**\n * Calls a registered RPC method on server.\n * @method\n * @param {String} method - RPC method name\n * @param {Object|Array} params - optional method parameters\n * @param {Number} timeout - RPC reply timeout value\n * @param {Object} ws_opts - options passed to ws\n * @return {Promise}\n */\n\n }, {\n key: \"call\",\n value: function call(method, params, timeout, ws_opts) {\n var _this2 = this;\n\n if (!ws_opts && \"object\" === (0, _typeof2[\"default\"])(timeout)) {\n ws_opts = timeout;\n timeout = null;\n }\n\n return new Promise(function (resolve, reject) {\n if (!_this2.ready) return reject(new Error(\"socket not ready\"));\n\n var rpc_id = _this2.generate_request_id(method, params);\n\n var message = {\n jsonrpc: \"2.0\",\n method: method,\n params: params || null,\n id: rpc_id\n };\n\n _this2.socket.send(JSON.stringify(message), ws_opts, function (error) {\n if (error) return reject(error);\n _this2.queue[rpc_id] = {\n promise: [resolve, reject]\n };\n\n if (timeout) {\n _this2.queue[rpc_id].timeout = setTimeout(function () {\n delete _this2.queue[rpc_id];\n reject(new Error(\"reply timeout\"));\n }, timeout);\n }\n });\n });\n }\n /**\n * Logins with the other side of the connection.\n * @method\n * @param {Object} params - Login credentials object\n * @return {Promise}\n */\n\n }, {\n key: \"login\",\n value: function () {\n var _login = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(params) {\n var resp;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.call(\"rpc.login\", params);\n\n case 2:\n resp = _context.sent;\n\n if (resp) {\n _context.next = 5;\n break;\n }\n\n throw new Error(\"authentication failed\");\n\n case 5:\n return _context.abrupt(\"return\", resp);\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function login(_x) {\n return _login.apply(this, arguments);\n }\n\n return login;\n }()\n /**\n * Fetches a list of client's methods registered on server.\n * @method\n * @return {Array}\n */\n\n }, {\n key: \"listMethods\",\n value: function () {\n var _listMethods = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.call(\"__listMethods\");\n\n case 2:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function listMethods() {\n return _listMethods.apply(this, arguments);\n }\n\n return listMethods;\n }()\n /**\n * Sends a JSON-RPC 2.0 notification to server.\n * @method\n * @param {String} method - RPC method name\n * @param {Object} params - optional method parameters\n * @return {Promise}\n */\n\n }, {\n key: \"notify\",\n value: function notify(method, params) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n if (!_this3.ready) return reject(new Error(\"socket not ready\"));\n var message = {\n jsonrpc: \"2.0\",\n method: method,\n params: params || null\n };\n\n _this3.socket.send(JSON.stringify(message), function (error) {\n if (error) return reject(error);\n resolve();\n });\n });\n }\n /**\n * Subscribes for a defined event.\n * @method\n * @param {String|Array} event - event name\n * @return {Undefined}\n * @throws {Error}\n */\n\n }, {\n key: \"subscribe\",\n value: function () {\n var _subscribe = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee3(event) {\n var result;\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (typeof event === \"string\") event = [event];\n _context3.next = 3;\n return this.call(\"rpc.on\", event);\n\n case 3:\n result = _context3.sent;\n\n if (!(typeof event === \"string\" && result[event] !== \"ok\")) {\n _context3.next = 6;\n break;\n }\n\n throw new Error(\"Failed subscribing to an event '\" + event + \"' with: \" + result[event]);\n\n case 6:\n return _context3.abrupt(\"return\", result);\n\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function subscribe(_x2) {\n return _subscribe.apply(this, arguments);\n }\n\n return subscribe;\n }()\n /**\n * Unsubscribes from a defined event.\n * @method\n * @param {String|Array} event - event name\n * @return {Undefined}\n * @throws {Error}\n */\n\n }, {\n key: \"unsubscribe\",\n value: function () {\n var _unsubscribe = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee4(event) {\n var result;\n return _regenerator[\"default\"].wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n if (typeof event === \"string\") event = [event];\n _context4.next = 3;\n return this.call(\"rpc.off\", event);\n\n case 3:\n result = _context4.sent;\n\n if (!(typeof event === \"string\" && result[event] !== \"ok\")) {\n _context4.next = 6;\n break;\n }\n\n throw new Error(\"Failed unsubscribing from an event with: \" + result);\n\n case 6:\n return _context4.abrupt(\"return\", result);\n\n case 7:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function unsubscribe(_x3) {\n return _unsubscribe.apply(this, arguments);\n }\n\n return unsubscribe;\n }()\n /**\n * Closes a WebSocket connection gracefully.\n * @method\n * @param {Number} code - socket close code\n * @param {String} data - optional data to be sent before closing\n * @return {Undefined}\n */\n\n }, {\n key: \"close\",\n value: function close(code, data) {\n this.socket.close(code || 1000, data);\n }\n /**\n * Connection/Message handler.\n * @method\n * @private\n * @param {String} address - WebSocket API address\n * @param {Object} options - ws options object\n * @return {Undefined}\n */\n\n }, {\n key: \"_connect\",\n value: function _connect(address, options) {\n var _this4 = this;\n\n this.socket = this.webSocketFactory(address, options);\n this.socket.addEventListener(\"open\", function () {\n _this4.ready = true;\n\n _this4.emit(\"open\");\n\n _this4.current_reconnects = 0;\n });\n this.socket.addEventListener(\"message\", function (_ref) {\n var message = _ref.data;\n if (message instanceof ArrayBuffer) message = Buffer.from(message).toString();\n\n try {\n message = JSON.parse(message);\n } catch (error) {\n return;\n } // check if any listeners are attached and forward event\n\n\n if (message.notification && _this4.listeners(message.notification).length) {\n if (!Object.keys(message.params).length) return _this4.emit(message.notification);\n var args = [message.notification];\n if (message.params.constructor === Object) args.push(message.params);else // using for-loop instead of unshift/spread because performance is better\n for (var i = 0; i < message.params.length; i++) {\n args.push(message.params[i]);\n } // run as microtask so that pending queue messages are resolved first\n // eslint-disable-next-line prefer-spread\n\n return Promise.resolve().then(function () {\n _this4.emit.apply(_this4, args);\n });\n }\n\n if (!_this4.queue[message.id]) {\n // general JSON RPC 2.0 events\n if (message.method && message.params) {\n // run as microtask so that pending queue messages are resolved first\n return Promise.resolve().then(function () {\n _this4.emit(message.method, message.params);\n });\n }\n\n return;\n } // reject early since server's response is invalid\n\n\n if (\"error\" in message === \"result\" in message) _this4.queue[message.id].promise[1](new Error(\"Server response malformed. Response must include either \\\"result\\\"\" + \" or \\\"error\\\", but not both.\"));\n if (_this4.queue[message.id].timeout) clearTimeout(_this4.queue[message.id].timeout);\n if (message.error) _this4.queue[message.id].promise[1](message.error);else _this4.queue[message.id].promise[0](message.result);\n delete _this4.queue[message.id];\n });\n this.socket.addEventListener(\"error\", function (error) {\n return _this4.emit(\"error\", error);\n });\n this.socket.addEventListener(\"close\", function (_ref2) {\n var code = _ref2.code,\n reason = _ref2.reason;\n if (_this4.ready) // Delay close event until internal state is updated\n setTimeout(function () {\n return _this4.emit(\"close\", code, reason);\n }, 0);\n _this4.ready = false;\n _this4.socket = undefined;\n if (code === 1000) return;\n _this4.current_reconnects++;\n if (_this4.reconnect && (_this4.max_reconnects > _this4.current_reconnects || _this4.max_reconnects === 0)) setTimeout(function () {\n return _this4._connect(address, options);\n }, _this4.reconnect_interval);\n });\n }\n }]);\n return CommonClient;\n}(_eventemitter.EventEmitter);\n\nexports[\"default\"] = CommonClient;","/**\n * WebSocket implements a browser-side WebSocket specification.\n * @module Client\n */\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _eventemitter = require(\"eventemitter3\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar WebSocketBrowserImpl = /*#__PURE__*/function (_EventEmitter) {\n (0, _inherits2[\"default\"])(WebSocketBrowserImpl, _EventEmitter);\n\n var _super = _createSuper(WebSocketBrowserImpl);\n\n /** Instantiate a WebSocket class\n * @constructor\n * @param {String} address - url to a websocket server\n * @param {(Object)} options - websocket options\n * @param {(String|Array)} protocols - a list of protocols\n * @return {WebSocketBrowserImpl} - returns a WebSocket instance\n */\n function WebSocketBrowserImpl(address, options, protocols) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, WebSocketBrowserImpl);\n _this = _super.call(this);\n _this.socket = new window.WebSocket(address, protocols);\n\n _this.socket.onopen = function () {\n return _this.emit(\"open\");\n };\n\n _this.socket.onmessage = function (event) {\n return _this.emit(\"message\", event.data);\n };\n\n _this.socket.onerror = function (error) {\n return _this.emit(\"error\", error);\n };\n\n _this.socket.onclose = function (event) {\n _this.emit(\"close\", event.code, event.reason);\n };\n\n return _this;\n }\n /**\n * Sends data through a websocket connection\n * @method\n * @param {(String|Object)} data - data to be sent via websocket\n * @param {Object} optionsOrCallback - ws options\n * @param {Function} callback - a callback called once the data is sent\n * @return {Undefined}\n */\n\n\n (0, _createClass2[\"default\"])(WebSocketBrowserImpl, [{\n key: \"send\",\n value: function send(data, optionsOrCallback, callback) {\n var cb = callback || optionsOrCallback;\n\n try {\n this.socket.send(data);\n cb();\n } catch (error) {\n cb(error);\n }\n }\n /**\n * Closes an underlying socket\n * @method\n * @param {Number} code - status code explaining why the connection is being closed\n * @param {String} reason - a description why the connection is closing\n * @return {Undefined}\n * @throws {Error}\n */\n\n }, {\n key: \"close\",\n value: function close(code, reason) {\n this.socket.close(code, reason);\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(type, listener, options) {\n this.socket.addEventListener(type, listener, options);\n }\n }]);\n return WebSocketBrowserImpl;\n}(_eventemitter.EventEmitter);\n/**\n * factory method for common WebSocket instance\n * @method\n * @param {String} address - url to a websocket server\n * @param {(Object)} options - websocket options\n * @return {Undefined}\n */\n\n\nfunction _default(address, options) {\n return new WebSocketBrowserImpl(address, options);\n}","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexports.TextEncoder = TextEncoder;\nexports.TextDecoder = TextDecoder;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport * as nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _8n = BigInt(8);\nconst CU_O = BigInt('7237005577332262213973186563042994240857116359379907606001950938285454250989');\nconst CURVE = Object.freeze({\n a: BigInt(-1),\n d: BigInt('37095705934669439343138083508754565189542113879843219016388785533085940283555'),\n P: BigInt('57896044618658097711785492504343953926634992332820282019728792003956564819949'),\n l: CU_O,\n n: CU_O,\n h: BigInt(8),\n Gx: BigInt('15112221349535400772501151409588531511454012693041857206046113283949847762202'),\n Gy: BigInt('46316835694926478169428394003475163141307993866256225615783033603165251855960'),\n});\nexport { CURVE };\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nconst SQRT_M1 = BigInt('19681161376707505956807079304988542015446066515923890162744021073123829784752');\nconst SQRT_D = BigInt('6853475219497561581579357271197624642482790079785650197046958215289687604742');\nconst SQRT_AD_MINUS_ONE = BigInt('25063068953384623474111414158702152701244531502492656460079210482610430750235');\nconst INVSQRT_A_MINUS_D = BigInt('54469307008909316920995813868745141605393597292927456921205312896311721017578');\nconst ONE_MINUS_D_SQ = BigInt('1159843021668779879193775521855586647937357759715417654439879720876111806838');\nconst D_MINUS_ONE_SQ = BigInt('40440834346308536858101042469323190826248399146238708352240133220865137265952');\nclass ExtendedPoint {\n constructor(x, y, z, t) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.t = t;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('ExtendedPoint#fromAffine: expected Point');\n }\n if (p.equals(Point.ZERO))\n return ExtendedPoint.ZERO;\n return new ExtendedPoint(p.x, p.y, _1n, mod(p.x * p.y));\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return this.toAffineBatch(points).map(this.fromAffine);\n }\n equals(other) {\n assertExtPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const X1Z2 = mod(X1 * Z2);\n const X2Z1 = mod(X2 * Z1);\n const Y1Z2 = mod(Y1 * Z2);\n const Y2Z1 = mod(Y2 * Z1);\n return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n }\n negate() {\n return new ExtendedPoint(mod(-this.x), this.y, this.z, mod(-this.t));\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const { a } = CURVE;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(_2n * mod(Z1 * Z1));\n const D = mod(a * A);\n const x1y1 = X1 + Y1;\n const E = mod(mod(x1y1 * x1y1) - A - B);\n const G = D + B;\n const F = G - C;\n const H = D - B;\n const X3 = mod(E * F);\n const Y3 = mod(G * H);\n const T3 = mod(E * H);\n const Z3 = mod(F * G);\n return new ExtendedPoint(X3, Y3, Z3, T3);\n }\n add(other) {\n assertExtPoint(other);\n const { x: X1, y: Y1, z: Z1, t: T1 } = this;\n const { x: X2, y: Y2, z: Z2, t: T2 } = other;\n const A = mod((Y1 - X1) * (Y2 + X2));\n const B = mod((Y1 + X1) * (Y2 - X2));\n const F = mod(B - A);\n if (F === _0n)\n return this.double();\n const C = mod(Z1 * _2n * T2);\n const D = mod(T1 * _2n * Z2);\n const E = D + C;\n const G = B + A;\n const H = D - C;\n const X3 = mod(E * F);\n const Y3 = mod(G * H);\n const T3 = mod(E * H);\n const Z3 = mod(F * G);\n return new ExtendedPoint(X3, Y3, Z3, T3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n precomputeWindow(W) {\n const windows = 1 + 256 / W;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(ExtendedPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = ExtendedPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = ExtendedPoint.ZERO;\n let f = ExtendedPoint.BASE;\n const windows = 1 + 256 / W;\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1;\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n return ExtendedPoint.normalizeZ([p, f])[0];\n }\n multiply(scalar, affinePoint) {\n return this.wNAF(normalizeScalar(scalar, CURVE.l), affinePoint);\n }\n multiplyUnsafe(scalar) {\n let n = normalizeScalar(scalar, CURVE.l, false);\n const G = ExtendedPoint.BASE;\n const P0 = ExtendedPoint.ZERO;\n if (n === _0n)\n return P0;\n if (this.equals(P0) || n === _1n)\n return this;\n if (this.equals(G))\n return this.wNAF(n);\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n isSmallOrder() {\n return this.multiplyUnsafe(CURVE.h).equals(ExtendedPoint.ZERO);\n }\n isTorsionFree() {\n let p = this.multiplyUnsafe(CURVE.l / _2n).double();\n if (CURVE.l % _2n)\n p = p.add(this);\n return p.equals(ExtendedPoint.ZERO);\n }\n toAffine(invZ) {\n const { x, y, z } = this;\n const is0 = this.equals(ExtendedPoint.ZERO);\n if (invZ == null)\n invZ = is0 ? _8n : invert(z);\n const ax = mod(x * invZ);\n const ay = mod(y * invZ);\n const zz = mod(z * invZ);\n if (is0)\n return Point.ZERO;\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n fromRistrettoBytes() {\n legacyRist();\n }\n toRistrettoBytes() {\n legacyRist();\n }\n fromRistrettoHash() {\n legacyRist();\n }\n}\nExtendedPoint.BASE = new ExtendedPoint(CURVE.Gx, CURVE.Gy, _1n, mod(CURVE.Gx * CURVE.Gy));\nExtendedPoint.ZERO = new ExtendedPoint(_0n, _1n, _1n, _0n);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nfunction assertExtPoint(other) {\n if (!(other instanceof ExtendedPoint))\n throw new TypeError('ExtendedPoint expected');\n}\nfunction assertRstPoint(other) {\n if (!(other instanceof RistrettoPoint))\n throw new TypeError('RistrettoPoint expected');\n}\nfunction legacyRist() {\n throw new Error('Legacy method: switch to RistrettoPoint');\n}\nclass RistrettoPoint {\n constructor(ep) {\n this.ep = ep;\n }\n static calcElligatorRistrettoMap(r0) {\n const { d } = CURVE;\n const r = mod(SQRT_M1 * r0 * r0);\n const Ns = mod((r + _1n) * ONE_MINUS_D_SQ);\n let c = BigInt(-1);\n const D = mod((c - d * r) * mod(r + d));\n let { isValid: Ns_D_is_sq, value: s } = uvRatio(Ns, D);\n let s_ = mod(s * r0);\n if (!edIsNegative(s_))\n s_ = mod(-s_);\n if (!Ns_D_is_sq)\n s = s_;\n if (!Ns_D_is_sq)\n c = r;\n const Nt = mod(c * (r - _1n) * D_MINUS_ONE_SQ - D);\n const s2 = s * s;\n const W0 = mod((s + s) * D);\n const W1 = mod(Nt * SQRT_AD_MINUS_ONE);\n const W2 = mod(_1n - s2);\n const W3 = mod(_1n + s2);\n return new ExtendedPoint(mod(W0 * W3), mod(W2 * W1), mod(W1 * W3), mod(W0 * W2));\n }\n static hashToCurve(hex) {\n hex = ensureBytes(hex, 64);\n const r1 = bytes255ToNumberLE(hex.slice(0, 32));\n const R1 = this.calcElligatorRistrettoMap(r1);\n const r2 = bytes255ToNumberLE(hex.slice(32, 64));\n const R2 = this.calcElligatorRistrettoMap(r2);\n return new RistrettoPoint(R1.add(R2));\n }\n static fromHex(hex) {\n hex = ensureBytes(hex, 32);\n const { a, d } = CURVE;\n const emsg = 'RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint';\n const s = bytes255ToNumberLE(hex);\n if (!equalBytes(numberTo32BytesLE(s), hex) || edIsNegative(s))\n throw new Error(emsg);\n const s2 = mod(s * s);\n const u1 = mod(_1n + a * s2);\n const u2 = mod(_1n - a * s2);\n const u1_2 = mod(u1 * u1);\n const u2_2 = mod(u2 * u2);\n const v = mod(a * d * u1_2 - u2_2);\n const { isValid, value: I } = invertSqrt(mod(v * u2_2));\n const Dx = mod(I * u2);\n const Dy = mod(I * Dx * v);\n let x = mod((s + s) * Dx);\n if (edIsNegative(x))\n x = mod(-x);\n const y = mod(u1 * Dy);\n const t = mod(x * y);\n if (!isValid || edIsNegative(t) || y === _0n)\n throw new Error(emsg);\n return new RistrettoPoint(new ExtendedPoint(x, y, _1n, t));\n }\n toRawBytes() {\n let { x, y, z, t } = this.ep;\n const u1 = mod(mod(z + y) * mod(z - y));\n const u2 = mod(x * y);\n const u2sq = mod(u2 * u2);\n const { value: invsqrt } = invertSqrt(mod(u1 * u2sq));\n const D1 = mod(invsqrt * u1);\n const D2 = mod(invsqrt * u2);\n const zInv = mod(D1 * D2 * t);\n let D;\n if (edIsNegative(t * zInv)) {\n let _x = mod(y * SQRT_M1);\n let _y = mod(x * SQRT_M1);\n x = _x;\n y = _y;\n D = mod(D1 * INVSQRT_A_MINUS_D);\n }\n else {\n D = D2;\n }\n if (edIsNegative(x * zInv))\n y = mod(-y);\n let s = mod((z - y) * D);\n if (edIsNegative(s))\n s = mod(-s);\n return numberTo32BytesLE(s);\n }\n toHex() {\n return bytesToHex(this.toRawBytes());\n }\n toString() {\n return this.toHex();\n }\n equals(other) {\n assertRstPoint(other);\n const a = this.ep;\n const b = other.ep;\n const one = mod(a.x * b.y) === mod(a.y * b.x);\n const two = mod(a.y * b.y) === mod(a.x * b.x);\n return one || two;\n }\n add(other) {\n assertRstPoint(other);\n return new RistrettoPoint(this.ep.add(other.ep));\n }\n subtract(other) {\n assertRstPoint(other);\n return new RistrettoPoint(this.ep.subtract(other.ep));\n }\n multiply(scalar) {\n return new RistrettoPoint(this.ep.multiply(scalar));\n }\n multiplyUnsafe(scalar) {\n return new RistrettoPoint(this.ep.multiplyUnsafe(scalar));\n }\n}\nRistrettoPoint.BASE = new RistrettoPoint(ExtendedPoint.BASE);\nRistrettoPoint.ZERO = new RistrettoPoint(ExtendedPoint.ZERO);\nconst pointPrecomputes = new WeakMap();\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n static fromHex(hex, strict = true) {\n const { d, P } = CURVE;\n hex = ensureBytes(hex, 32);\n const normed = hex.slice();\n normed[31] = hex[31] & ~0x80;\n const y = bytesToNumberLE(normed);\n if (strict && y >= P)\n throw new Error('Expected 0 < hex < P');\n if (!strict && y >= POW_2_256)\n throw new Error('Expected 0 < hex < 2**256');\n const y2 = mod(y * y);\n const u = mod(y2 - _1n);\n const v = mod(d * y2 + _1n);\n let { isValid, value: x } = uvRatio(u, v);\n if (!isValid)\n throw new Error('Point.fromHex: invalid y coordinate');\n const isXOdd = (x & _1n) === _1n;\n const isLastByteOdd = (hex[31] & 0x80) !== 0;\n if (isLastByteOdd !== isXOdd) {\n x = mod(-x);\n }\n return new Point(x, y);\n }\n static async fromPrivateKey(privateKey) {\n return (await getExtendedPublicKey(privateKey)).point;\n }\n toRawBytes() {\n const bytes = numberTo32BytesLE(this.y);\n bytes[31] |= this.x & _1n ? 0x80 : 0;\n return bytes;\n }\n toHex() {\n return bytesToHex(this.toRawBytes());\n }\n toX25519() {\n const { y } = this;\n const u = mod((_1n + y) * invert(_1n - y));\n return numberTo32BytesLE(u);\n }\n isTorsionFree() {\n return ExtendedPoint.fromAffine(this).isTorsionFree();\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(mod(-this.x), this.y);\n }\n add(other) {\n return ExtendedPoint.fromAffine(this).add(ExtendedPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return ExtendedPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _1n);\nclass Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex, 64);\n const r = Point.fromHex(bytes.slice(0, 32), false);\n const s = bytesToNumberLE(bytes.slice(32, 64));\n return new Signature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!(r instanceof Point))\n throw new Error('Expected Point instance');\n normalizeScalar(s, CURVE.l, false);\n return this;\n }\n toRawBytes() {\n const u8 = new Uint8Array(64);\n u8.set(this.r.toRawBytes());\n u8.set(numberTo32BytesLE(this.s), 32);\n return u8;\n }\n toHex() {\n return bytesToHex(this.toRawBytes());\n }\n}\nexport { ExtendedPoint, RistrettoPoint, Point, Signature };\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Expected Uint8Array list');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction numberTo32BytesBE(num) {\n const length = 32;\n const hex = num.toString(16).padStart(length * 2, '0');\n return hexToBytes(hex);\n}\nfunction numberTo32BytesLE(num) {\n return numberTo32BytesBE(num).reverse();\n}\nfunction edIsNegative(num) {\n return (mod(num) & _1n) === _1n;\n}\nfunction bytesToNumberLE(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n return BigInt('0x' + bytesToHex(Uint8Array.from(uint8a).reverse()));\n}\nconst MAX_255B = BigInt('0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nfunction bytes255ToNumberLE(bytes) {\n return mod(bytesToNumberLE(bytes) & MAX_255B);\n}\nfunction mod(a, b = CURVE.P) {\n const res = a % b;\n return res >= _0n ? res : b + res;\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const tmp = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n tmp[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n tmp[i] = mod(acc * tmp[i], p);\n return mod(acc * num, p);\n }, inverted);\n return tmp;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction pow_2_252_3(x) {\n const { P } = CURVE;\n const _5n = BigInt(5);\n const _10n = BigInt(10);\n const _20n = BigInt(20);\n const _40n = BigInt(40);\n const _80n = BigInt(80);\n const x2 = (x * x) % P;\n const b2 = (x2 * x) % P;\n const b4 = (pow2(b2, _2n) * b2) % P;\n const b5 = (pow2(b4, _1n) * x) % P;\n const b10 = (pow2(b5, _5n) * b5) % P;\n const b20 = (pow2(b10, _10n) * b10) % P;\n const b40 = (pow2(b20, _20n) * b20) % P;\n const b80 = (pow2(b40, _40n) * b40) % P;\n const b160 = (pow2(b80, _80n) * b80) % P;\n const b240 = (pow2(b160, _80n) * b80) % P;\n const b250 = (pow2(b240, _10n) * b10) % P;\n const pow_p_5_8 = (pow2(b250, _2n) * x) % P;\n return { pow_p_5_8, b2 };\n}\nfunction uvRatio(u, v) {\n const v3 = mod(v * v * v);\n const v7 = mod(v3 * v3 * v);\n const pow = pow_2_252_3(u * v7).pow_p_5_8;\n let x = mod(u * v3 * pow);\n const vx2 = mod(v * x * x);\n const root1 = x;\n const root2 = mod(x * SQRT_M1);\n const useRoot1 = vx2 === u;\n const useRoot2 = vx2 === mod(-u);\n const noRoot = vx2 === mod(-u * SQRT_M1);\n if (useRoot1)\n x = root1;\n if (useRoot2 || noRoot)\n x = root2;\n if (edIsNegative(x))\n x = mod(-x);\n return { isValid: useRoot1 || useRoot2, value: x };\n}\nfunction invertSqrt(number) {\n return uvRatio(_1n, number);\n}\nfunction modlLE(hash) {\n return mod(bytesToNumberLE(hash), CURVE.l);\n}\nfunction equalBytes(b1, b2) {\n if (b1.length !== b2.length) {\n return false;\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction ensureBytes(hex, expectedLength) {\n const bytes = hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n if (typeof expectedLength === 'number' && bytes.length !== expectedLength)\n throw new Error(`Expected ${expectedLength} bytes`);\n return bytes;\n}\nfunction normalizeScalar(num, max, strict = true) {\n if (!max)\n throw new TypeError('Specify max value');\n if (typeof num === 'number' && Number.isSafeInteger(num))\n num = BigInt(num);\n if (typeof num === 'bigint' && num < max) {\n if (strict) {\n if (_0n < num)\n return num;\n }\n else {\n if (_0n <= num)\n return num;\n }\n }\n throw new TypeError('Expected valid scalar: 0 < scalar < max');\n}\nfunction adjustBytes25519(bytes) {\n bytes[0] &= 248;\n bytes[31] &= 127;\n bytes[31] |= 64;\n return bytes;\n}\nfunction decodeScalar25519(n) {\n return bytesToNumberLE(adjustBytes25519(ensureBytes(n, 32)));\n}\nfunction checkPrivateKey(key) {\n key =\n typeof key === 'bigint' || typeof key === 'number'\n ? numberTo32BytesBE(normalizeScalar(key, POW_2_256))\n : ensureBytes(key);\n if (key.length !== 32)\n throw new Error(`Expected 32 bytes`);\n return key;\n}\nfunction getKeyFromHash(hashed) {\n const head = adjustBytes25519(hashed.slice(0, 32));\n const prefix = hashed.slice(32, 64);\n const scalar = modlLE(head);\n const point = Point.BASE.multiply(scalar);\n const pointBytes = point.toRawBytes();\n return { head, prefix, scalar, point, pointBytes };\n}\nlet _sha512Sync;\nfunction sha512s(...m) {\n if (typeof _sha512Sync !== 'function')\n throw new Error('utils.sha512Sync must be set to use sync methods');\n return _sha512Sync(...m);\n}\nasync function getExtendedPublicKey(key) {\n return getKeyFromHash(await utils.sha512(checkPrivateKey(key)));\n}\nfunction getExtendedPublicKeySync(key) {\n return getKeyFromHash(sha512s(checkPrivateKey(key)));\n}\nexport async function getPublicKey(privateKey) {\n return (await getExtendedPublicKey(privateKey)).pointBytes;\n}\nfunction getPublicKeySync(privateKey) {\n return getExtendedPublicKeySync(privateKey).pointBytes;\n}\nexport async function sign(message, privateKey) {\n message = ensureBytes(message);\n const { prefix, scalar, pointBytes } = await getExtendedPublicKey(privateKey);\n const r = modlLE(await utils.sha512(prefix, message));\n const R = Point.BASE.multiply(r);\n const k = modlLE(await utils.sha512(R.toRawBytes(), pointBytes, message));\n const s = mod(r + k * scalar, CURVE.l);\n return new Signature(R, s).toRawBytes();\n}\nfunction signSync(message, privateKey) {\n message = ensureBytes(message);\n const { prefix, scalar, pointBytes } = getExtendedPublicKeySync(privateKey);\n const r = modlLE(sha512s(prefix, message));\n const R = Point.BASE.multiply(r);\n const k = modlLE(sha512s(R.toRawBytes(), pointBytes, message));\n const s = mod(r + k * scalar, CURVE.l);\n return new Signature(R, s).toRawBytes();\n}\nfunction prepareVerification(sig, message, publicKey) {\n message = ensureBytes(message);\n if (!(publicKey instanceof Point))\n publicKey = Point.fromHex(publicKey, false);\n const { r, s } = sig instanceof Signature ? sig.assertValidity() : Signature.fromHex(sig);\n const SB = ExtendedPoint.BASE.multiplyUnsafe(s);\n return { r, s, SB, pub: publicKey, msg: message };\n}\nfunction finishVerification(publicKey, r, SB, hashed) {\n const k = modlLE(hashed);\n const kA = ExtendedPoint.fromAffine(publicKey).multiplyUnsafe(k);\n const RkA = ExtendedPoint.fromAffine(r).add(kA);\n return RkA.subtract(SB).multiplyUnsafe(CURVE.h).equals(ExtendedPoint.ZERO);\n}\nexport async function verify(sig, message, publicKey) {\n const { r, SB, msg, pub } = prepareVerification(sig, message, publicKey);\n const hashed = await utils.sha512(r.toRawBytes(), pub.toRawBytes(), msg);\n return finishVerification(pub, r, SB, hashed);\n}\nfunction verifySync(sig, message, publicKey) {\n const { r, SB, msg, pub } = prepareVerification(sig, message, publicKey);\n const hashed = sha512s(r.toRawBytes(), pub.toRawBytes(), msg);\n return finishVerification(pub, r, SB, hashed);\n}\nexport const sync = {\n getExtendedPublicKey: getExtendedPublicKeySync,\n getPublicKey: getPublicKeySync,\n sign: signSync,\n verify: verifySync,\n};\nexport async function getSharedSecret(privateKey, publicKey) {\n const { head } = await getExtendedPublicKey(privateKey);\n const u = Point.fromHex(publicKey).toX25519();\n return curve25519.scalarMult(head, u);\n}\nPoint.BASE._setWindowSize(8);\nfunction cswap(swap, x_2, x_3) {\n const dummy = mod(swap * (x_2 - x_3));\n x_2 = mod(x_2 - dummy);\n x_3 = mod(x_3 + dummy);\n return [x_2, x_3];\n}\nfunction montgomeryLadder(pointU, scalar) {\n const { P } = CURVE;\n const u = normalizeScalar(pointU, P);\n const k = normalizeScalar(scalar, P);\n const a24 = BigInt(121665);\n const x_1 = u;\n let x_2 = _1n;\n let z_2 = _0n;\n let x_3 = u;\n let z_3 = _1n;\n let swap = _0n;\n let sw;\n for (let t = BigInt(255 - 1); t >= _0n; t--) {\n const k_t = (k >> t) & _1n;\n swap ^= k_t;\n sw = cswap(swap, x_2, x_3);\n x_2 = sw[0];\n x_3 = sw[1];\n sw = cswap(swap, z_2, z_3);\n z_2 = sw[0];\n z_3 = sw[1];\n swap = k_t;\n const A = x_2 + z_2;\n const AA = mod(A * A);\n const B = x_2 - z_2;\n const BB = mod(B * B);\n const E = AA - BB;\n const C = x_3 + z_3;\n const D = x_3 - z_3;\n const DA = mod(D * A);\n const CB = mod(C * B);\n const dacb = DA + CB;\n const da_cb = DA - CB;\n x_3 = mod(dacb * dacb);\n z_3 = mod(x_1 * mod(da_cb * da_cb));\n x_2 = mod(AA * BB);\n z_2 = mod(E * (AA + mod(a24 * E)));\n }\n sw = cswap(swap, x_2, x_3);\n x_2 = sw[0];\n x_3 = sw[1];\n sw = cswap(swap, z_2, z_3);\n z_2 = sw[0];\n z_3 = sw[1];\n const { pow_p_5_8, b2 } = pow_2_252_3(z_2);\n const xp2 = mod(pow2(pow_p_5_8, BigInt(3)) * b2);\n return mod(x_2 * xp2);\n}\nfunction encodeUCoordinate(u) {\n return numberTo32BytesLE(mod(u, CURVE.P));\n}\nfunction decodeUCoordinate(uEnc) {\n const u = ensureBytes(uEnc, 32);\n u[31] &= 127;\n return bytesToNumberLE(u);\n}\nexport const curve25519 = {\n BASE_POINT_U: '0900000000000000000000000000000000000000000000000000000000000000',\n scalarMult(privateKey, publicKey) {\n const u = decodeUCoordinate(publicKey);\n const p = decodeScalar25519(privateKey);\n const pu = montgomeryLadder(u, p);\n if (pu === _0n)\n throw new Error('Invalid private or public key received');\n return encodeUCoordinate(pu);\n },\n scalarMultBase(privateKey) {\n return curve25519.scalarMult(privateKey, curve25519.BASE_POINT_U);\n },\n};\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nexport const utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n getExtendedPublicKey,\n mod,\n invert,\n TORSION_SUBGROUP: [\n '0100000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a',\n '0000000000000000000000000000000000000000000000000000000000000080',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05',\n 'ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85',\n '0000000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa',\n ],\n hashToPrivateScalar: (hash) => {\n hash = ensureBytes(hash);\n if (hash.length < 40 || hash.length > 1024)\n throw new Error('Expected 40-1024 bytes of private key as per FIPS 186');\n return mod(bytesToNumberLE(hash), CURVE.l - _1n) + _1n;\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return new Uint8Array(randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return utils.randomBytes(32);\n },\n sha512: async (...messages) => {\n const message = concatBytes(...messages);\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-512', message.buffer);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n return Uint8Array.from(crypto.node.createHash('sha512').update(message).digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha512 function\");\n }\n },\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point.equals(Point.BASE) ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_2n);\n return cached;\n },\n sha512Sync: undefined,\n};\nObject.defineProperties(utils, {\n sha512Sync: {\n configurable: false,\n get() {\n return _sha512Sync;\n },\n set(val) {\n if (!_sha512Sync)\n _sha512Sync = val;\n },\n },\n});\n","var W=e=>typeof e==\"function\",T=(e,t)=>W(e)?e(t):e;var U=(()=>{let e=0;return()=>(++e).toString()})(),b=(()=>{let e;return()=>{if(e===void 0&&typeof window<\"u\"){let t=matchMedia(\"(prefers-reduced-motion: reduce)\");e=!t||t.matches}return e}})();import{useEffect as H,useState as j}from\"react\";var Q=20;var S=new Map,X=1e3,$=e=>{if(S.has(e))return;let t=setTimeout(()=>{S.delete(e),u({type:4,toastId:e})},X);S.set(e,t)},J=e=>{let t=S.get(e);t&&clearTimeout(t)},v=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,Q)};case 1:return t.toast.id&&J(t.toast.id),{...e,toasts:e.toasts.map(r=>r.id===t.toast.id?{...r,...t.toast}:r)};case 2:let{toast:o}=t;return e.toasts.find(r=>r.id===o.id)?v(e,{type:1,toast:o}):v(e,{type:0,toast:o});case 3:let{toastId:s}=t;return s?$(s):e.toasts.forEach(r=>{$(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===s||s===void 0?{...r,visible:!1}:r)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(r=>r.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let a=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(r=>({...r,pauseDuration:r.pauseDuration+a}))}}},A=[],P={toasts:[],pausedAt:void 0},u=e=>{P=v(P,e),A.forEach(t=>{t(P)})},Y={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},I=(e={})=>{let[t,o]=j(P);H(()=>(A.push(o),()=>{let a=A.indexOf(o);a>-1&&A.splice(a,1)}),[t]);let s=t.toasts.map(a=>{var r,c;return{...e,...e[a.type],...a,duration:a.duration||((r=e[a.type])==null?void 0:r.duration)||(e==null?void 0:e.duration)||Y[a.type],style:{...e.style,...(c=e[a.type])==null?void 0:c.style,...a.style}}});return{...t,toasts:s}};var G=(e,t=\"blank\",o)=>({createdAt:Date.now(),visible:!0,type:t,ariaProps:{role:\"status\",\"aria-live\":\"polite\"},message:e,pauseDuration:0,...o,id:(o==null?void 0:o.id)||U()}),h=e=>(t,o)=>{let s=G(t,e,o);return u({type:2,toast:s}),s.id},n=(e,t)=>h(\"blank\")(e,t);n.error=h(\"error\");n.success=h(\"success\");n.loading=h(\"loading\");n.custom=h(\"custom\");n.dismiss=e=>{u({type:3,toastId:e})};n.remove=e=>u({type:4,toastId:e});n.promise=(e,t,o)=>{let s=n.loading(t.loading,{...o,...o==null?void 0:o.loading});return e.then(a=>(n.success(T(t.success,a),{id:s,...o,...o==null?void 0:o.success}),a)).catch(a=>{n.error(T(t.error,a),{id:s,...o,...o==null?void 0:o.error})}),e};import{useEffect as K,useCallback as L}from\"react\";var Z=(e,t)=>{u({type:1,toast:{id:e,height:t}})},ee=()=>{u({type:5,time:Date.now()})},D=e=>{let{toasts:t,pausedAt:o}=I(e);K(()=>{if(o)return;let r=Date.now(),c=t.map(i=>{if(i.duration===1/0)return;let d=(i.duration||0)+i.pauseDuration-(r-i.createdAt);if(d<0){i.visible&&n.dismiss(i.id);return}return setTimeout(()=>n.dismiss(i.id),d)});return()=>{c.forEach(i=>i&&clearTimeout(i))}},[t,o]);let s=L(()=>{o&&u({type:6,time:Date.now()})},[o]),a=L((r,c)=>{let{reverseOrder:i=!1,gutter:d=8,defaultPosition:p}=c||{},g=t.filter(m=>(m.position||p)===(r.position||p)&&m.height),E=g.findIndex(m=>m.id===r.id),x=g.filter((m,R)=>Rm.visible).slice(...i?[x+1]:[0,x]).reduce((m,R)=>m+(R.height||0)+d,0)},[t]);return{toasts:t,handlers:{updateHeight:Z,startPause:ee,endPause:s,calculateOffset:a}}};import*as l from\"react\";import{styled as B,keyframes as z}from\"goober\";import*as y from\"react\";import{styled as C,keyframes as me}from\"goober\";import{styled as te,keyframes as k}from\"goober\";var oe=k`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n opacity: 1;\n}`,re=k`\nfrom {\n transform: scale(0);\n opacity: 0;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`,se=k`\nfrom {\n transform: scale(0) rotate(90deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(90deg);\n\topacity: 1;\n}`,_=te(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${e=>e.primary||\"#ff4b4b\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${oe} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n\n &:after,\n &:before {\n content: '';\n animation: ${re} 0.15s ease-out forwards;\n animation-delay: 150ms;\n position: absolute;\n border-radius: 3px;\n opacity: 0;\n background: ${e=>e.secondary||\"#fff\"};\n bottom: 9px;\n left: 4px;\n height: 2px;\n width: 12px;\n }\n\n &:before {\n animation: ${se} 0.15s ease-out forwards;\n animation-delay: 180ms;\n transform: rotate(90deg);\n }\n`;import{styled as ae,keyframes as ie}from\"goober\";var ne=ie`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`,V=ae(\"div\")`\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: ${e=>e.secondary||\"#e0e0e0\"};\n border-right-color: ${e=>e.primary||\"#616161\"};\n animation: ${ne} 1s linear infinite;\n`;import{styled as ce,keyframes as N}from\"goober\";var pe=N`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n\topacity: 1;\n}`,de=N`\n0% {\n\theight: 0;\n\twidth: 0;\n\topacity: 0;\n}\n40% {\n height: 0;\n\twidth: 6px;\n\topacity: 1;\n}\n100% {\n opacity: 1;\n height: 10px;\n}`,w=ce(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${e=>e.primary||\"#61d345\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${pe} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n &:after {\n content: '';\n box-sizing: border-box;\n animation: ${de} 0.2s ease-out forwards;\n opacity: 0;\n animation-delay: 200ms;\n position: absolute;\n border-right: 2px solid;\n border-bottom: 2px solid;\n border-color: ${e=>e.secondary||\"#fff\"};\n bottom: 6px;\n left: 6px;\n height: 10px;\n width: 6px;\n }\n`;var ue=C(\"div\")`\n position: absolute;\n`,le=C(\"div\")`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 20px;\n min-height: 20px;\n`,Te=me`\nfrom {\n transform: scale(0.6);\n opacity: 0.4;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`,fe=C(\"div\")`\n position: relative;\n transform: scale(0.6);\n opacity: 0.4;\n min-width: 20px;\n animation: ${Te} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n`,M=({toast:e})=>{let{icon:t,type:o,iconTheme:s}=e;return t!==void 0?typeof t==\"string\"?y.createElement(fe,null,t):t:o===\"blank\"?null:y.createElement(le,null,y.createElement(V,{...s}),o!==\"loading\"&&y.createElement(ue,null,o===\"error\"?y.createElement(_,{...s}):y.createElement(w,{...s})))};var ye=e=>`\n0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,ge=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;}\n`,he=\"0%{opacity:0;} 100%{opacity:1;}\",xe=\"0%{opacity:1;} 100%{opacity:0;}\",be=B(\"div\")`\n display: flex;\n align-items: center;\n background: #fff;\n color: #363636;\n line-height: 1.3;\n will-change: transform;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\n max-width: 350px;\n pointer-events: auto;\n padding: 8px 10px;\n border-radius: 8px;\n`,Se=B(\"div\")`\n display: flex;\n justify-content: center;\n margin: 4px 10px;\n color: inherit;\n flex: 1 1 auto;\n white-space: pre-line;\n`,Ae=(e,t)=>{let s=e.includes(\"top\")?1:-1,[a,r]=b()?[he,xe]:[ye(s),ge(s)];return{animation:t?`${z(a)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${z(r)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},F=l.memo(({toast:e,position:t,style:o,children:s})=>{let a=e.height?Ae(e.position||t||\"top-center\",e.visible):{opacity:0},r=l.createElement(M,{toast:e}),c=l.createElement(Se,{...e.ariaProps},T(e.message,e));return l.createElement(be,{className:e.className,style:{...a,...o,...e.style}},typeof s==\"function\"?s({icon:r,message:c}):l.createElement(l.Fragment,null,r,c))});import{css as Pe,setup as Oe}from\"goober\";import*as f from\"react\";Oe(f.createElement);var Ee=({id:e,className:t,style:o,onHeightUpdate:s,children:a})=>{let r=f.useCallback(c=>{if(c){let i=()=>{let d=c.getBoundingClientRect().height;s(e,d)};i(),new MutationObserver(i).observe(c,{subtree:!0,childList:!0,characterData:!0})}},[e,s]);return f.createElement(\"div\",{ref:r,className:t,style:o},a)},Re=(e,t)=>{let o=e.includes(\"top\"),s=o?{top:0}:{bottom:0},a=e.includes(\"center\")?{justifyContent:\"center\"}:e.includes(\"right\")?{justifyContent:\"flex-end\"}:{};return{left:0,right:0,display:\"flex\",position:\"absolute\",transition:b()?void 0:\"all 230ms cubic-bezier(.21,1.02,.73,1)\",transform:`translateY(${t*(o?1:-1)}px)`,...s,...a}},ve=Pe`\n z-index: 9999;\n > * {\n pointer-events: auto;\n }\n`,O=16,Ie=({reverseOrder:e,position:t=\"top-center\",toastOptions:o,gutter:s,children:a,containerStyle:r,containerClassName:c})=>{let{toasts:i,handlers:d}=D(o);return f.createElement(\"div\",{style:{position:\"fixed\",zIndex:9999,top:O,left:O,right:O,bottom:O,pointerEvents:\"none\",...r},className:c,onMouseEnter:d.startPause,onMouseLeave:d.endPause},i.map(p=>{let g=p.position||t,E=d.calculateOffset(p,{reverseOrder:e,gutter:s,defaultPosition:t}),x=Re(g,E);return f.createElement(Ee,{id:p.id,key:p.id,onHeightUpdate:d.updateHeight,className:p.visible?ve:\"\",style:x},p.type===\"custom\"?T(p.message,p):a?a(p):f.createElement(F,{toast:p,position:g}))}))};var _t=n;export{w as CheckmarkIcon,_ as ErrorIcon,V as LoaderIcon,F as ToastBar,M as ToastIcon,Ie as Toaster,_t as default,T as resolveValue,n as toast,D as useToaster,I as useToasterStore};\n//# sourceMappingURL=index.mjs.map","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n"],"names":["Object","defineProperty","exports","value","s16","s8","nu64be","u48be","u40be","u32be","u24be","u16be","nu64","u48","u40","u32","u24","u16","u8","offset","greedy","Constant","UTF8","CString","Blob","Boolean","BitField","BitStructure","VariantLayout","Union","UnionLayoutDiscriminator","UnionDiscriminator","Structure","Sequence","DoubleBE","Double","FloatBE","Float","NearInt64BE","NearInt64","NearUInt64BE","NearUInt64","IntBE","Int","UIntBE","UInt","OffsetLayout","GreedyCount","ExternalLayout","bindConstructorLayout","nameWithProperty","Layout","uint8ArrayToBuffer","checkUint8Array","constant","utf8","cstr","blob","unionLayoutDiscriminator","union","seq","bits","struct","f64be","f64","f32be","f32","ns64be","s48be","s40be","s32be","s24be","s16be","ns64","s48","s40","s32","s24","buffer_1","b","Uint8Array","Buffer","from","buffer","byteOffset","length","constructor","span","property","Number","isInteger","makeDestinationObject","getSpan","replicate","rv","create","prototype","assign","fromArray","values","name","lo","Class","layout","hasOwnProperty","call","layout_","boundConstructor_","encode","writable","decode","isCount","elementSpan","Math","floor","rem","src","readUIntLE","writeUIntLE","readUIntBE","writeUIntBE","readIntLE","writeIntLE","readIntBE","writeIntBE","divmodInt64","hi32","lo32","roundedInt64","readUInt32LE","split","writeUInt32LE","readUInt32BE","writeUInt32BE","readInt32LE","writeInt32LE","readInt32BE","writeInt32BE","readFloatLE","writeFloatLE","readFloatBE","writeFloatBE","readDoubleLE","writeDoubleLE","readDoubleBE","writeDoubleBE","elementLayout","count","idx","i","push","elo","reduce","v","fields","decodePrefixes","Array","isArray","acc","fd","undefined","e","fsp","dest","firstOffset","lastOffset","lastWrote","fv","shift","layoutFor","offsetOf","discr","defaultLayout","discriminator","usesPrefixDiscriminator","registry","boundGetSourceVariant","defaultGetSourceVariant","bind","getSourceVariant","configGetSourceVariant","gsv","vlo","getVariant","tag","dlo","clo","contentOffset","addVariant","variant","vb","fixBitwiseResult","word","msb","_packedSetValue","_packedGetValue","addField","bf","addBoolean","fieldFor","container","totalBits","usedBits","sum","valueMask","start","wordMask","wordValue","slice","srcBuffer","write","toString","String","srcb","copy","maxSpan","_sha256Sync","_hmacSha256Sync","_Symbol$toStringTag","TransactionStatus","number","n","isSafeInteger","bytes","lengths","includes","hash","outputLen","blockLen","instance","checkFinished","destroyed","finished","out","min","self","crypto","Uint32Array","arr","byteLength","createView","DataView","rotr","toBytes","data","utf8ToBytes","str","TextEncoder","padStart","Hash","clone","_cloneInto","wrapConstructor","hashConstructor","hashC","update","message","digest","tmp","SHA2","padOffset","isLE","pos","view","len","take","dataView","process","set","subarray","roundClean","digestInto","fill","setBigUint64","_32n","BigInt","_u32_max","wh","wl","h","l","setUint32","oview","outLen","state","get","res","destroy","to","U32_MASK64","lst","le","Ah","Al","fromBig","shrSH","s","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotlSH","rotlSL","rotlBH","rotlBL","add","Bh","Bl","add3L","Cl","add3H","low","Ch","add4L","Dl","add4H","Dh","add5H","Eh","add5L","El","SHA512_Kh","SHA512_Kl","map","SHA512_W_H","SHA512_W_L","SHA512","Fh","Fl","Gh","Gl","Hh","Hl","getUint32","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","All","SHA512_224","SHA512_256","SHA384","sha512","Chi","a","c","Maj","SHA256_K","IV","SHA256_W","SHA256","A","B","C","D","E","F","G","H","W15","W2","s0","s1","T1","T2","SHA224","sha256","StructError","TypeError","failure","failures","cached","rest","path","join","_cached","isObject","x","print","JSON","stringify","toFailures","result","context","r","Symbol","iterator","toFailure","branch","type","refinement","key","run","options","coerce","mask","ctx","coercer","schema","valid","validator","k","entries","t","Map","Set","refiner","Struct","props","assert","is","validate","tuples","tuple","shiftIterator","input","done","next","array","Element","literal","description","nullable","isNaN","optional","record","Key","Value","string","Elements","Never","max","keys","Structs","S","first","unknown","condition","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","round","R","y","j","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","Keccak","suffix","enableXOF","rounds","posOut","state32","keccak","keccakP","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","finish","writeInto","bufferOut","xofInto","xof","gen","keccak_256","genShake","wrapConstructorWithOpts","hashCons","msg","opts","dkLen","HMAC","_key","iHash","pad","oHash","buf","getPrototypeOf","hmac","_3n","_8n","CURVE","freeze","P","Gx","Gy","beta","divNearest","endo","splitScalar","a1","b1","a2","POW_2_128","c1","b2","c2","k1","mod","k2","k1neg","k2neg","weierstrass","x2","x3","USE_ENDOMORPHISM","ShaError","Error","assertJacPoint","other","JacobianPoint","z","fromAffine","p","Point","equals","ZERO","toAffineBatch","points","toInv","invertBatch","nums","scratch","inverted","invert","num","reduceRight","toAffine","normalizeZ","X1","Y1","Z1","X2","Y2","Z2","Z1Z1","Z2Z2","U1","U2","S1","S2","negate","double","x1b","X3","Y3","HH","HHH","V","subtract","multiplyUnsafe","scalar","P0","normalizeScalar","d","k1p","k2p","precomputeWindow","W","windows","base","window","wNAF","affinePoint","BASE","_WINDOW_SIZE","precomputes","pointPrecomputes","f","windowSize","maxNumber","shiftBy","wbits","offset2","abs","cond1","cond2","constTimeNegate","multiply","point","fake","f1p","f2p","invZ","is0","iz1","iz2","iz3","ax","ay","zz","item","neg","WeakMap","_setWindowSize","delete","hasEvenY","fromCompressedHex","isShort","bytesToNumber","isValidFieldElement","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b3","b6","b9","b11","b22","b44","b88","b176","b220","b223","t1","t2","rt","pow2","xc","isYOdd","assertValidity","fromUncompressedHex","fieldLen","fromHex","hex","ensureBytes","header","fromPrivateKey","privateKey","normalizePrivateKey","fromSignature","msgHash","signature","recovery","normalizeSignature","Signature","fromDER","error","fromCompact","truncateHash","radj","rinv","u1","u2","prefix","numTo32bStr","Q","multiplyAndAddUnsafe","toRawBytes","isCompressed","toHex","toHexX","toRawX","left","aP","bQ","sliceDER","parseInt","parseDERInt","hexToNumber","parseDERSignature","sBytes","rBytesLeft","isWithinCurveOrder","hasHighS","HALF","normalizeS","toDERRawBytes","toDERHex","sHex","numberToHexUnpadded","rHex","sHexL","rHexL","sLen","rLen","toCompactRawBytes","toCompactHex","arrays","every","uint8a","POW_2_256","numTo32b","byte","power","modulo","u","q","m","gcd","truncateOnly","bits2int_2","delta","groupLen","HmacDrbg","hashLen","qByteLen","counter","utils","hmacSha256","hmacSync","checkSync","incr","reseed","seed","reseedSync","generate","sl","generateSync","bits2int","node","web","TAGGED_HASH_PREFIXES","bytesToHex","hexToBytes","concatBytes","isValidPrivateKey","_bigintTo32Bytes","_normalizePrivateKey","hashToPrivateKey","randomBytes","bytesLength","getRandomValues","randomPrivateKey","precompute","messages","subtle","createHash","forEach","ckey","importKey","sign","createHmac","sha256Sync","hmacSha256Sync","taggedHash","tagP","tagH","charCodeAt","taggedHashSync","_JacobianPoint","defineProperties","configurable","val","generatePrivateKey","generateKeypair","privateScalar","publicKey","secretKey","isOnCurve","toBuffer","properties","serialize","SOLANA_SCHEMA","deserialize","decodeUnchecked","deserializeUnchecked","Enum","enum","MAX_SEED_LENGTH","PUBLIC_KEY_LENGTH","uniquePublicKeyCounter","toStringTag","PublicKey","_bn","decoded","unique","eq","toBase58","toJSON","toArrayLike","zeroPad","createWithSeed","fromPublicKey","programId","createProgramAddressSync","seeds","publicKeyBytes","createProgramAddress","findProgramAddressSync","address","nonce","seedsWithNonce","concat","err","findProgramAddress","pubkeyData","pubkey","default","kind","Account","_publicKey","_secretKey","secretKeyBuffer","BPF_LOADER_DEPRECATED_PROGRAM_ID","PACKET_DATA_SIZE","VERSION_PREFIX_MASK","SIGNATURE_LENGTH_IN_BYTES","TransactionExpiredBlockheightExceededError","TransactionExpiredTimeoutError","timeoutSeconds","toFixed","TransactionExpiredNonceInvalidError","MessageAccountKeys","staticAccountKeys","accountKeysFromLookups","keySegments","readonly","index","keySegment","flat","compileInstructions","instructions","U8_MAX","keyIndexMap","findKeyIndex","keyIndex","instruction","programIdIndex","accountKeyIndexes","meta","rustString","rsl","_decode","_encode","rslShim","chars","alloc","decodeLength","size","elem","encodeLength","rem_len","CompiledKeys","payer","keyMetaMap","compile","getOrInsertDefault","keyMeta","isSigner","isWritable","isInvoked","payerKeyMeta","ix","accountMeta","getMessageComponents","mapEntries","writableSigners","filter","readonlySigners","writableNonSigners","readonlyNonSigners","numRequiredSignatures","numReadonlySignedAccounts","numReadonlyUnsignedAccounts","payerAddress","extractTableLookup","lookupTable","writableIndexes","drainedWritableKeys","drainKeysFoundInLookupTable","addresses","readonlyIndexes","drainedReadonlyKeys","accountKey","lookupTableEntries","keyMetaFilter","lookupTableIndexes","drainedKeys","lookupTableIndex","findIndex","entry","Message","args","accountKeys","recentBlockhash","indexToProgramIds","account","version","compiledInstructions","accounts","addressTableLookups","getAccountKeys","compiledKeys","payerKey","isAccountSigner","isAccountWritable","numSignedAccounts","numWritableUnsignedAccounts","numUnsignedAccounts","unsignedAccountIndex","isProgramId","has","programIds","nonProgramIds","_","numKeys","keyCount","keyIndicesCount","dataCount","keyIndices","dataLength","instructionCount","instructionBuffer","instructionBufferLength","instructionLayout","signDataLayout","transaction","signData","byteArray","accountCount","dataSlice","MessageV0","numAccountKeysFromLookups","lookup","addressLookupTableAccounts","resolveAddressTableLookups","numStaticAccountKeys","lookupAccountKeysIndex","tableLookup","tableAccount","find","extractResult","addressTableLookup","encodedStaticAccountKeysLength","serializedInstructions","serializeInstructions","encodedInstructionsLength","serializedAddressTableLookups","serializeAddressTableLookups","encodedAddressTableLookupsLength","messageLayout","serializedMessage","serializedMessageLength","staticAccountKeysLength","instructionsLength","addressTableLookupsLength","serializedLength","encodedAccountKeyIndexesLength","encodedDataLength","encodedWritableIndexesLength","encodedReadonlyIndexesLength","addressTableLookupLayout","maskedPrefix","splice","accountKeyIndexesLength","addressTableLookupsCount","writableIndexesLength","readonlyIndexesLength","VersionedMessage","deserializeMessageVersion","DEFAULT_SIGNATURE","TransactionInstruction","Transaction","signatures","feePayer","lastValidBlockHeight","nonceInfo","minNonceContextSlot","_message","_json","minContextSlot","blockhash","nonceInstruction","signers","items","compileMessage","console","warn","accountMetas","uniqueMetas","pubkeyString","uniqueIndex","sort","localeCompare","feePayerIndex","payerMeta","unshift","signedKeys","unsignedKeys","indexOf","_compile","pair","serializeMessage","getEstimatedFee","connection","getFeeForMessage","setSigners","seen","uniqueSigners","signer","_partialSign","partialSign","_addSignature","addSignature","sigpair","verifySignatures","requireAllSignatures","_verifySignatures","config","_serialize","signatureCount","transactionLength","wireTransaction","keyObj","populate","sigPubkeyPair","some","TransactionMessage","decompile","numWritableSignedAccounts","compiledIx","compileToLegacyMessage","compileToV0Message","VersionedTransaction","defaultSignatures","encodedSignaturesLength","transactionLayout","serializedTransaction","serializedTransactionLength","signaturesLength","messageData","signerPubkeys","signerIndex","SYSVAR_CLOCK_PUBKEY","SYSVAR_EPOCH_SCHEDULE_PUBKEY","SYSVAR_INSTRUCTIONS_PUBKEY","SYSVAR_RECENT_BLOCKHASHES_PUBKEY","SYSVAR_RENT_PUBKEY","SYSVAR_REWARDS_PUBKEY","SYSVAR_SLOT_HASHES_PUBKEY","SYSVAR_SLOT_HISTORY_PUBKEY","SYSVAR_STAKE_HISTORY_PUBKEY","sendAndConfirmTransaction","status","sendOptions","skipPreflight","preflightCommitment","commitment","maxRetries","sendTransaction","confirmTransaction","abortSignal","nonceAccountPubkey","nonceValue","sleep","ms","Promise","resolve","setTimeout","encodeData","allocLength","getAlloc","getItemAlloc","field","layoutFields","decodeData$1","FeeCalculatorLayout","NonceAccountLayout","NONCE_ACCOUNT_LENGTH","NonceAccount","authorizedPubkey","feeCalculator","fromAccountData","nonceAccount","encodeDecode","bigIntLayout","toBigIntLE","bigInt","toBufferLE","SystemInstruction","decodeInstructionType","checkProgramId","typeIndex","instructionTypeLayout","ixType","SYSTEM_INSTRUCTION_LAYOUTS","decodeCreateAccount","checkKeyLength","lamports","space","Create","fromPubkey","newAccountPubkey","decodeTransfer","Transfer","toPubkey","decodeTransferWithSeed","TransferWithSeed","basePubkey","decodeAllocate","Allocate","accountPubkey","decodeAllocateWithSeed","AllocateWithSeed","decodeAssign","Assign","decodeAssignWithSeed","AssignWithSeed","decodeCreateWithSeed","CreateWithSeed","decodeNonceInitialize","authorized","InitializeNonceAccount","noncePubkey","decodeNonceAdvance","AdvanceNonceAccount","decodeNonceWithdraw","WithdrawNonceAccount","decodeNonceAuthorize","AuthorizeNonceAccount","newAuthorizedPubkey","SystemProgram","expectedLength","UpgradeNonceAccount","createAccount","params","transfer","createAccountWithSeed","createNonceAccount","initParams","nonceInitialize","nonceAdvance","nonceWithdraw","nonceAuthorize","allocate","CHUNK_SIZE","Loader","getMinNumSignatures","ceil","chunkSize","load","program","balanceNeeded","getMinimumBalanceForRentExemption","programInfo","getAccountInfo","executable","owner","dataLayout","transactions","bytesLengthPadding","_rpcEndpoint","all","BPF_LOADER_PROGRAM_ID","BpfLoader","elf","loaderProgramId","objToString","objKeys","obj","fastStableStringify$1","returnVal","isArrayProp","propVal","toStr","isFinite","trailingZeros","EpochSchedule","slotsPerEpoch","leaderScheduleSlotOffset","warmup","firstNormalEpoch","firstNormalSlot","getEpoch","slot","getEpochAndSlotIndex","epoch","epochLen","getSlotsInEpoch","normalSlotIndex","normalEpochIndex","getFirstSlotInEpoch","pow","getLastSlotInEpoch","SendTransactionError","logs","SolanaJSONRPCErrorCode","JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP","JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE","JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY","JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_NO_SNAPSHOT","JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX","JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE","JSON_RPC_SCAN_ERROR","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH","JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET","JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION","JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED","SolanaJSONRPCError","code","customMessage","fetchImpl","globalThis","fetch","RpcWebSocketClient","generate_request_id","url","rpc","autoconnect","max_reconnects","reconnect","reconnect_interval","underlyingSocket","socket","readyState","reject","notify","AddressLookupTableAccount","isActive","U64_MAX","deactivationSlot","accountData","decodeData","LookupTableMetaLayout","serializedAddressesLen","lastExtendedSlot","lastExtendedSlotStartIndex","lastExtendedStartIndex","authority","URL_RE","PublicKeyFromString","RawAccountDataResult","BufferFromRawAccountData","BLOCKHASH_CACHE_TIMEOUT_MS","extractCommitmentFromConfig","commitmentOrConfig","specifiedCommitment","specifiedConfig","createRpcResult","jsonrpc","id","UnknownRpcResult","jsonRpcResult","jsonRpcResultAndContext","notificationResultAndContext","versionedMessageFromResponse","response","GetInflationGovernorResult","foundation","foundationTerm","initial","taper","terminal","GetInflationRewardResult","effectiveSlot","amount","postBalance","commission","GetInflationRateResult","total","GetEpochInfoResult","slotIndex","slotsInEpoch","absoluteSlot","blockHeight","transactionCount","GetEpochScheduleResult","GetLeaderScheduleResult","TransactionErrorResult","SignatureStatusResult","SignatureReceivedResult","VersionResult","SimulatedTransactionResponseStruct","rentEpoch","unitsConsumed","returnData","BlockProductionResponseStruct","byIdentity","range","firstSlot","lastSlot","GetInflationGovernorRpcResult","GetInflationRateRpcResult","GetEpochInfoRpcResult","GetEpochScheduleRpcResult","GetLeaderScheduleRpcResult","SlotRpcResult","GetSupplyRpcResult","circulating","nonCirculating","nonCirculatingAccounts","TokenAmountResult","uiAmount","decimals","uiAmountString","GetTokenLargestAccountsResult","GetTokenAccountsByOwner","ParsedAccountDataResult","parsed","GetParsedTokenAccountsByOwner","GetLargestAccountsRpcResult","AccountInfoResult","KeyedAccountInfoResult","ParsedOrRawAccountData","ParsedAccountInfoResult","KeyedParsedAccountInfoResult","StakeActivationResult","active","inactive","GetConfirmedSignaturesForAddress2RpcResult","memo","blockTime","GetSignaturesForAddressRpcResult","AccountNotificationResult","subscription","ProgramAccountInfoResult","ProgramAccountNotificationResult","SlotInfoResult","parent","root","SlotNotificationResult","SlotUpdateResult","timestamp","stats","numTransactionEntries","numSuccessfulTransactions","numFailedTransactions","maxTransactionsPerEntry","SlotUpdateNotificationResult","SignatureNotificationResult","RootNotificationResult","ContactInfoResult","gossip","tpu","VoteAccountInfoResult","votePubkey","nodePubkey","activatedStake","epochVoteAccount","epochCredits","lastVote","rootSlot","GetVoteAccounts","current","delinquent","ConfirmationStatus","SignatureStatusResponse","confirmations","confirmationStatus","GetSignatureStatusesRpcResult","GetMinimumBalanceForRentExemptionRpcResult","AddressTableLookupStruct","ConfirmedTransactionResult","AnnotatedAccountKey","source","ConfirmedTransactionAccountsModeResult","ParsedInstructionResult","RawInstructionResult","ParsedOrRawInstruction","ParsedConfirmedTransactionResult","TokenBalanceResult","accountIndex","mint","uiTokenAmount","LoadedAddressesResult","ConfirmedTransactionMetaResult","fee","innerInstructions","preBalances","postBalances","logMessages","preTokenBalances","postTokenBalances","loadedAddresses","computeUnitsConsumed","ParsedConfirmedTransactionMetaResult","TransactionVersionStruct","RewardsResult","rewardType","GetBlockRpcResult","previousBlockhash","parentSlot","rewards","GetNoneModeBlockRpcResult","GetAccountsModeBlockRpcResult","GetParsedBlockRpcResult","GetParsedAccountsModeBlockRpcResult","GetParsedNoneModeBlockRpcResult","GetConfirmedBlockRpcResult","GetBlockSignaturesRpcResult","GetTransactionRpcResult","GetParsedTransactionRpcResult","GetRecentBlockhashAndContextRpcResult","lamportsPerSignature","GetLatestBlockhashRpcResult","GetRecentPerformanceSamplesRpcResult","numTransactions","numSlots","samplePeriodSecs","GetFeeCalculatorRpcResult","RequestAirdropRpcResult","SendTransactionRpcResult","LogsResult","LogsNotificationResult","COMMON_HTTP_HEADERS","Connection","endpoint","client","wsEndpoint","httpHeaders","fetchMiddleware","disableRetryOnRateLimit","httpAgent","_commitment","_confirmTransactionInitialTimeout","_rpcWsEndpoint","_rpcClient","_rpcRequest","_rpcBatchRequest","_rpcWebSocket","_rpcWebSocketConnected","_rpcWebSocketHeartbeat","_rpcWebSocketIdleTimeout","_rpcWebSocketGeneration","_disableBlockhashCaching","_pollingBlockhash","_blockhashInfo","latestBlockhash","lastFetch","transactionSignatures","simulatedSignatures","_nextClientSubscriptionId","_subscriptionDisposeFunctionsByClientSubscriptionId","_subscriptionHashByClientSubscriptionId","_subscriptionStateChangeCallbacksByHash","_subscriptionCallbacksByServerSubscriptionId","_subscriptionsByHash","_subscriptionsAutoDisposedByRpc","confirmTransactionInitialTimeout","assertEndpointUrl","putativeUrl","test","makeWebsocketUrl","matches","match","hostish","portWithColon","protocol","startsWith","startPort","websocketPort","createRpcClient","customFetch","agent","fetchWithMiddleware","info","init","modifiedFetchArgs","modifiedInfo","modifiedInit","request","callback","method","body","headers","too_many_requests_retries","waitTime","log","statusText","text","ok","requests","batch","methodName","Infinity","on","_wsOnOpen","_wsOnError","_wsOnClose","_wsOnAccountNotification","_wsOnProgramAccountNotification","_wsOnSlotNotification","_wsOnSlotUpdatesNotification","_wsOnSignatureNotification","_wsOnRootNotification","_wsOnLogsNotification","rpcEndpoint","getBalanceAndContext","_buildArgs","getBalance","then","catch","getBlockTime","getMinimumLedgerSlot","getFirstAvailableBlock","getSupply","configArg","getTokenSupply","tokenMintAddress","getTokenAccountBalance","tokenAddress","getTokenAccountsByOwner","ownerAddress","_args","getParsedTokenAccountsByOwner","getLargestAccounts","arg","getTokenLargestAccounts","mintAddress","getAccountInfoAndContext","getParsedAccountInfo","getMultipleParsedAccounts","publicKeys","rawConfig","getMultipleAccountsInfoAndContext","getMultipleAccountsInfo","getStakeActivation","getProgramAccounts","configOrCommitment","encoding","configWithoutEncoding","getParsedProgramAccounts","strategy","rawSignature","decodedSignature","aborted","reason","confirmTransactionUsingLegacyTimeoutStrategy","confirmTransactionUsingBlockHeightExceedanceStrategy","confirmTransactionUsingDurableNonceStrategy","getCancellationPromise","signal","addEventListener","getTransactionConfirmationPromise","signatureSubscriptionId","disposeSignatureSubscriptionStateChangeObserver","abortConfirmation","removeSignatureListener","confirmationPromise","onSignature","__type","PROCESSED","subscriptionSetupPromise","resolveSubscriptionSetup","_onSubscriptionStateChange","nextState","getSignatureStatus","expiryPromise","checkBlockHeight","getBlockHeight","_e","currentBlockHeight","BLOCKHEIGHT_EXCEEDED","cancellationPromise","outcome","race","currentNonceValue","lastCheckedSlot","getCurrentNonceValue","getNonceAndContext","NONCE_INVALID","slotInWhichNonceDidAdvance","signatureStatus","commitmentForStatus","timeoutId","timeoutMs","TIMED_OUT","clearTimeout","getClusterNodes","getVoteAccounts","getSlot","getSlotLeader","getSlotLeaders","startSlot","limit","getSignatureStatuses","getTransactionCount","getTotalSupply","excludeNonCirculatingAccountsList","getInflationGovernor","getInflationReward","getInflationRate","getEpochInfo","getEpochSchedule","epochSchedule","getLeaderSchedule","getRecentBlockhashAndContext","getRecentPerformanceSamples","getFeeCalculatorForBlockhash","wireMessage","getRecentBlockhash","getLatestBlockhash","getLatestBlockhashAndContext","getVersion","getGenesisHash","getBlock","_buildArgsAtLeastConfirmed","unsafeRes","transactionDetails","getParsedBlock","getBlockProduction","extra","getTransaction","getParsedTransaction","getParsedTransactions","getTransactions","getConfirmedBlock","block","getBlocks","endSlot","getBlockSignatures","getConfirmedBlockSignatures","getConfirmedTransaction","getParsedConfirmedTransaction","getParsedConfirmedTransactions","getConfirmedSignaturesForAddress","firstAvailableBlock","until","highestConfirmedRoot","before","confirmedSignatureInfo","getConfirmedSignaturesForAddress2","getSignaturesForAddress","getAddressLookupTable","accountInfo","getNonce","requestAirdrop","_blockhashWithExpiryBlockHeight","disableCache","timeSinceFetch","Date","now","_pollNewBlockhash","startTime","cachedLatestBlockhash","cachedBlockhash","MS_PER_SLOT","getStakeMinimumDelegation","simulateTransaction","transactionOrMessage","configOrSigners","includeAccounts","versionedTx","encodedTransaction","originalTx","sigVerify","traceIndent","logTrace","signersOrOptions","sendRawTransaction","rawTransaction","sendEncodedTransaction","setInterval","_updateSubscriptions","MAX_SAFE_INTEGER","clearInterval","_setSubscription","nextSubscription","prevState","stateChangeCallbacks","cb","clientSubscriptionId","_this$_subscriptionSt","close","connect","activeWebSocketGeneration","isCurrentConnectionStillActive","callbacks","serverSubscriptionId","unsubscribeMethod","_handleServerNotification","callbackArgs","notification","_makeSubscription","subscriptionConfig","existingSubscription","onAccountChange","removeAccountChangeListener","_unsubscribeClientSubscription","accountId","onProgramAccountChange","filters","removeProgramAccountChangeListener","onLogs","mentions","removeOnLogsListener","onSlotChange","removeSlotChangeListener","onSlotUpdate","removeSlotUpdateListener","subscriptionName","dispose","override","_err","onSignatureWithOptions","onRootChange","removeRootChangeListener","Keypair","keypair","_keypair","fromSecretKey","skipValidation","computedPublicKey","ii","fromSeed","LOOKUP_TABLE_INSTRUCTION_LAYOUTS","CreateLookupTable","FreezeLookupTable","ExtendLookupTable","DeactivateLookupTable","CloseLookupTable","AddressLookupTableInstruction","layoutType","decodeCreateLookupTable","checkKeysLength","recentSlot","decodeExtendLookupTable","decodeCloseLookupTable","recipient","decodeFreezeLookupTable","decodeDeactivateLookupTable","AddressLookupTableProgram","createLookupTable","lookupTableAddress","bumpSeed","freezeLookupTable","extendLookupTable","addr","deactivateLookupTable","closeLookupTable","ComputeBudgetInstruction","COMPUTE_BUDGET_INSTRUCTION_LAYOUTS","decodeRequestUnits","units","additionalFee","RequestUnits","decodeRequestHeapFrame","RequestHeapFrame","decodeSetComputeUnitLimit","SetComputeUnitLimit","decodeSetComputeUnitPrice","microLamports","SetComputeUnitPrice","ComputeBudgetProgram","requestUnits","requestHeapFrame","setComputeUnitLimit","setComputeUnitPrice","ED25519_INSTRUCTION_LAYOUT","Ed25519Program","createInstructionWithPublicKey","instructionIndex","publicKeyOffset","signatureOffset","messageDataOffset","instructionData","numSignatures","padding","signatureInstructionIndex","publicKeyInstructionIndex","messageDataSize","messageInstructionIndex","createInstructionWithPrivateKey","msgs","ecdsaSign","privKey","sig","initSigArgs","extraEntropy","h1","seedArgs","bits2octets","z1","z2","drbg","kmdToSig","kBytes","lowS","kinv","canonical","finalizeSig","recSig","der","recovered","hashed","SECP256K1_INSTRUCTION_LAYOUT","Secp256k1Program","publicKeyToEthAddress","recoveryId","createInstructionWithEthAddress","ethAddress","rawAddress","substr","dataStart","ethAddressOffset","ethAddressInstructionIndex","pkey","publicKeyCreate","messageHash","STAKE_CONFIG_ID","Authorized","staker","withdrawer","Lockup","unixTimestamp","custodian","StakeInstruction","STAKE_INSTRUCTION_LAYOUTS","decodeInitialize","lockup","Initialize","stakePubkey","decodeDelegate","Delegate","decodeAuthorize","newAuthorized","stakeAuthorizationType","Authorize","o","custodianPubkey","decodeAuthorizeWithSeed","authoritySeed","authorityOwner","AuthorizeWithSeed","authorityBase","decodeSplit","Split","splitStakePubkey","decodeMerge","Merge","sourceStakePubKey","decodeWithdraw","Withdraw","decodeDeactivate","Deactivate","StakeProgram","StakeAuthorizationLayout","Staker","Withdrawer","initialize","maybeLockup","delegate","authorize","authorizeWithSeed","splitInstruction","splitWithSeed","merge","withdraw","deactivate","VoteInit","authorizedVoter","authorizedWithdrawer","VoteInstruction","VOTE_INSTRUCTION_LAYOUTS","decodeInitializeAccount","voteInit","InitializeAccount","voteAuthorizationType","voteAuthorizeWithSeedArgs","currentAuthorityDerivedKeyOwnerPubkey","currentAuthorityDerivedKeySeed","currentAuthorityDerivedKeyBasePubkey","authorizedWithdrawerPubkey","VoteProgram","VoteAuthorizationLayout","Voter","initializeAccount","safeWithdraw","currentVoteAccountBalance","rentExemptMinimum","VALIDATOR_INFO_KEY","InfoString","website","details","keybaseUsername","ValidatorInfo","fromConfigData","configKeyCount","configKeys","parse","VOTE_PROGRAM_ID","VoteAccountLayout","VoteAccount","votes","authorizedVoters","priorVoters","lastTimestamp","va","rootSlotValid","parseAuthorizedVoter","getPriorVoters","isEmpty","parsePriorVoters","epochOfLastAuthorizedSwitch","targetEpoch","http","devnet","testnet","https","clusterApiUrl","cluster","tls","sendAndConfirmRawTransaction","confirmationStrategyOrConfirmOptions","maybeConfirmOptions","confirmationStrategy","LAMPORTS_PER_SOL","basex","module","base64","ieee754","customInspectSymbol","createBuffer","setPrototypeOf","encodingOrOffset","allocUnsafe","fromString","isEncoding","actual","ArrayBuffer","isView","fromArrayView","arrayView","isInstance","fromArrayBuffer","fromArrayLike","SharedArrayBuffer","valueOf","fromObject","isBuffer","checked","toPrimitive","assertSize","mustMatch","arguments","loweredCase","base64ToBytes","toLowerCase","slowToString","end","hexSlice","hexSliceLookupTable","utf8Slice","asciiSlice","ret","fromCharCode","latin1Slice","fromByteArray","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","apply","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","hi","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","TYPED_ARRAY_SUPPORT","typedArraySupport","proto","foo","enumerable","poolSize","allocUnsafeSlow","_isBuffer","compare","list","swap16","swap32","swap64","toLocaleString","inspect","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","remaining","hexWrite","strLen","blitBuffer","asciiToBytes","utf16leToBytes","_arr","newBuf","readUintLE","mul","readUintBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUint32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","last","boundsError","readBigUInt64BE","readInt8","readInt16LE","readInt16BE","readBigInt64LE","readBigInt64BE","writeUintLE","maxBytes","writeUintBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUint32BE","writeBigUInt64LE","writeBigUInt64BE","sub","writeInt8","writeInt16LE","writeInt16BE","writeBigInt64LE","writeBigInt64BE","targetStart","copyWithin","errors","sym","getMessage","Base","stack","addNumericalSeparator","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","RangeError","received","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","_Buffer","ALPHABET","BASE_MAP","charAt","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","carry","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","b64","lens","getLens","validLen","placeHoldersLen","Arr","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","output","reversed","reverse","toBigIntBE","width","toBufferBE","inherits","ctor","superCtor","super_","TempCtor","BN","endian","isBN","negative","words","red","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","move","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","toArray","w","off","_strip","parseLength","limbLen","limbPow","imuln","_iaddn","_move","_expand","_normSign","for","zeros","groupSizes","groupBases","smallMulTo","ncarry","rword","maxJ","groupSize","groupBase","isZero","modrn","idivn","toNumber","ArrayType","reqLength","_toArrayLikeLE","position","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","al1","ah1","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","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","FFTM","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","andln","modn","egcd","g","isEven","yp","xp","im","isOdd","jm","_invmp","x1","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","Red","toRed","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","K256","P224","P192","P25519","prime","_prime","Mont","imod","minv","ireduce","rlen","imulK","strip","prev","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","__createBinding","__setModuleDefault","__decorate","decorators","desc","getOwnPropertyDescriptor","Reflect","decorate","__importStar","__esModule","__importDefault","BinaryReader","BinaryWriter","BorshError","baseDecode","baseEncode","bn_js_1","bs58_1","textDecoder","TextDecoder","fatal","fieldPath","originalMessage","addToFieldPath","fieldName","maybeResize","writeU8","writeU16","writeU32","writeU64","writeBuffer","writeU128","writeU256","writeU512","writeString","writeFixedArray","writeArray","handlingRangeError","propertyKey","propertyDescriptor","originalMethod","readU8","readU16","readU32","readU64","readBuffer","readU128","readU256","readU512","readString","readFixedArray","readArray","capitalizeFirstLetter","toUpperCase","serializeField","fieldType","writer","serializeStruct","borshSerialize","structSchema","deserializeField","reader","deserializeStruct","classType","borshDeserialize","fieldValue","Writer","Reader","SlowBuffer","INSPECT_MAX_BYTES","kMaxLength","Events","EE","once","addListener","emitter","event","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","__proto__","eventNames","events","names","getOwnPropertySymbols","listeners","handlers","ee","listenerCount","emit","removeListener","removeAllListeners","prefixed","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","LN2","uuid","generateRequest","ClientBrowser","callServer","reviver","replacer","generator","notificationIdNull","isBatch","isRaw","hasCallback","_parseResponse","responseText","isError","xe","Aj","Bj","Cj","Dj","Wk","aa","ca","encodeURIComponent","da","ea","fa","ha","ia","document","createElement","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","qa","pa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","construct","displayName","Sa","Ta","nodeName","Va","_valueTracker","Ua","getValue","setValue","stopTracking","Wa","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","sb","style","setProperty","substring","tb","menuitem","area","br","col","embed","hr","img","keygen","link","param","track","wbr","ub","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","Yb","child","sibling","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","pc","qc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","location","locale","which","Td","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","fe","ge","he","color","date","datetime","email","month","password","search","tel","time","week","me","ne","oe","pe","qe","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","random","sf","capture","passive","J","tf","uf","parentWindow","vf","wf","$a","na","xa","ba","je","ke","char","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","Ra","_context","render","Qa","$$typeof","_payload","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","dh","K","eh","fh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","xh","yh","implementation","zh","Ih","documentElement","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","O","Sh","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","pi","qi","ri","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","Pa","Li","Mi","Ni","Oi","element","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","nj","oj","pj","fallback","rj","sj","tj","dataset","dgst","uj","vj","_reactRetry","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","onClick","onclick","Kj","U","Lj","WeakSet","Mj","Nj","Oj","Qj","Rj","Sj","Uj","Vj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","wasMultiple","multiple","isHidden","gk","hk","display","Xj","insertBefore","Wj","_reactRootContainer","lk","__reactInternalSnapshotBeforeUpdate","autoFocus","focus","kk","mk","nk","pk","Y","Z","T","qk","rk","sk","tk","uk","Hj","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","wc","expirationTimes","vc","expiredLanes","callbackPriority","Fk","Hk","Ik","Jk","Kk","Lk","Mk","Vk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Gj","Rk","Sk","Ij","Tk","Uk","Fj","suppressHydrationWarning","createElementNS","createTextNode","Jj","Xk","Bc","mutableReadLanes","Pj","rangeCount","focusedElem","selectionRange","Oe","Le","contains","compareDocumentPosition","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","jk","mc","onCommitFiberRoot","onRecoverableError","Tj","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","rl","unmount","unstable_scheduleHydration","querySelectorAll","form","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","usingClientEntryPoint","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","DefaultContext","className","attr","IconContext","__assign","__rest","propertyIsEnumerable","GenIcon","IconBase","Tree2Element","tree","conf","title","svgProps","computedSize","stroke","xmlns","Consumer","MdOutlineClose","React","lastId","localPrefix","setState","forceUpdate","__self","__source","_status","_result","Children","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","startTransition","unstable_act","_interopRequireDefault","_regenerator","_asyncToGenerator2","_typeof2","_classCallCheck2","_createClass2","_inherits2","_possibleConstructorReturn2","_getPrototypeOf2","_eventemitter","CommonClient","_EventEmitter","hasNativeReflectConstruct","_login","_listMethods","_subscribe","_unsubscribe","_super","_isNativeReflectConstruct","sham","Proxy","Super","webSocketFactory","_this","_a","_a$autoconnect","_a$reconnect","_a$reconnect_interval","_a$max_reconnects","rest_options","rpc_id","ready","current_reconnects","_connect","timeout","ws_opts","_this2","send","promise","mark","_callee","resp","wrap","sent","abrupt","stop","_x","_callee2","_context2","_this3","_callee3","_context3","_x2","_callee4","_context4","_x3","_this4","_ref","_ref2","WebSocketBrowserImpl","protocols","WebSocket","onopen","onmessage","onerror","onclose","optionsOrCallback","copyProps","SafeBuffer","pop","sortIndex","performance","setImmediate","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","inRange","ToDictionary","Stream","tokens","decoderError","opt_code_point","endOfStream","prepend","token","DEFAULT_ENCODING","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","handler","stream","bite","code_point","UTF8Encoder","temp","input_stream","code_points","codePointsToString","cp","opt_string","stringToCodePoints","rnds8","byteToHex","rnds","rng","msCrypto","asyncGeneratorStep","_next","_throw","Constructor","toPropertyKey","_defineProperties","descriptor","protoProps","staticProps","_getPrototypeOf","subClass","superClass","_typeof","assertThisInitialized","_regeneratorRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","tryCatch","resultName","nextLoc","_sent","dispatchException","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","awrap","async","iter","object","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","_setPrototypeOf","prim","runtime","regeneratorRuntime","accidentalStrictMode","Function","_sha512Sync","CU_O","SQRT_M1","SQRT_AD_MINUS_ONE","INVSQRT_A_MINUS_D","ONE_MINUS_D_SQ","D_MINUS_ONE_SQ","ExtendedPoint","assertExtPoint","X1Z2","X2Z1","Y1Z2","Y2Z1","x1y1","T3","isSmallOrder","isTorsionFree","fromRistrettoBytes","legacyRist","toRistrettoBytes","fromRistrettoHash","assertRstPoint","RistrettoPoint","ep","calcElligatorRistrettoMap","r0","Ns","isValid","Ns_D_is_sq","uvRatio","s_","edIsNegative","Nt","s2","W0","W1","W3","hashToCurve","r1","bytes255ToNumberLE","R1","R2","emsg","equalBytes","numberTo32BytesLE","u1_2","u2_2","Dx","Dy","u2sq","invsqrt","D1","D2","zInv","_y","two","strict","normed","bytesToNumberLE","y2","isXOdd","getExtendedPublicKey","toX25519","hexes","numberTo32BytesBE","MAX_255B","v3","pow_2_252_3","_5n","_10n","_20n","_40n","_80n","b10","b20","b40","b80","b160","b240","b250","pow_p_5_8","vx2","root1","root2","useRoot1","useRoot2","noRoot","modlLE","checkPrivateKey","getKeyFromHash","head","pointBytes","sha512s","getExtendedPublicKeySync","sync","getPublicKey","verify","SB","pub","prepareVerification","finishVerification","kA","RkA","TORSION_SUBGROUP","hashToPrivateScalar","sha512Sync","querySelector","_goober","exec","raw","theme","as","matchMedia","$","toastId","toasts","toast","visible","pausedAt","pauseDuration","blank","success","loading","custom","duration","createdAt","ariaProps","role","dismiss","remove","reverseOrder","gutter","defaultPosition","updateHeight","startPause","endPause","calculateOffset","primary","secondary","icon","iconTheme","onHeightUpdate","getBoundingClientRect","MutationObserver","observe","subtree","childList","characterData","justifyContent","bottom","toastOptions","containerStyle","containerClassName","pointerEvents","onMouseEnter","onMouseLeave","_t"],"sourceRoot":""}