From ad31a07833ef396ee39af8cd05585a995d20c8bc Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Sat, 12 Oct 2024 04:36:35 +0400 Subject: [PATCH 01/60] fix basic tests --- node/node-server/test/ao.js | 1 - node/node-server/test/test.js | 2 +- node/node-server/vm.js | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/node/node-server/test/ao.js b/node/node-server/test/ao.js index 0a85ea1..f343938 100644 --- a/node/node-server/test/ao.js +++ b/node/node-server/test/ao.js @@ -108,7 +108,6 @@ describe("WeaveDB on AO", function () { hash: "9490062173314360716133102172838140491357233774084690229623706293601383041546", height: 1, }) - console.log(await cwao.cu.zkjson(contractTxId, "ppl", "Bob", "name")) // get zkJSON proof expect( (await cwao.cu.zkjson(contractTxId, "ppl", "Bob", "name")).data, diff --git a/node/node-server/test/test.js b/node/node-server/test/test.js index 528870b..8f33c44 100644 --- a/node/node-server/test/test.js +++ b/node/node-server/test/test.js @@ -64,7 +64,7 @@ describe("rollup node", function () { arweave: network, }) await warp_db.init() - expect((await warp_db.getInfo()).version).to.eql("0.40.0") + expect((await warp_db.getInfo()).version).to.eql("0.42.1") // update the DB (via node) const db2 = new DB({ diff --git a/node/node-server/vm.js b/node/node-server/vm.js index 3978322..5b7e07f 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -243,7 +243,7 @@ class VM { const parsed = this.parseQuery(call, callback) const { type, res, nocache, txid, func, query, isAdmin } = parsed if (isAdmin) { - const { op, module, scheduler, key, db, type } = JSON.parse(query).query + let { op, module, scheduler, key, db, type } = JSON.parse(query).query const auth = { privateKey: this.conf.admin } let err, signer switch (op) { From 9849733dd2145d69ff35b37cfd69094c2b8fb50a Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Sat, 12 Oct 2024 07:31:31 +0400 Subject: [PATCH 02/60] remove unnecessary files --- node/node-server/ao.js | 42 ++++++++++++++++ node/node-server/rollup.js | 94 +++++++----------------------------- node/node-server/test/ao.js | 29 +++++++---- node/node-server/vm.js | 96 ++++--------------------------------- 4 files changed, 89 insertions(+), 172 deletions(-) create mode 100644 node/node-server/ao.js diff --git a/node/node-server/ao.js b/node/node-server/ao.js new file mode 100644 index 0000000..f28b809 --- /dev/null +++ b/node/node-server/ao.js @@ -0,0 +1,42 @@ +const express = require("express") +let count = 0 +let data = {} +let mid = 0 + +const CU = async port => { + const app = express() + app.get("/spawn", (req, res) => { + res.json({ pid: `tx-${++count}` }) + }) + app.get("/msg", (req, res) => { + if (req.query.act === "Rollup") { + const diffs = JSON.parse(req.query.input) + for (const v of diffs) { + data[v.collection] ??= {} + data[v.collection][v.doc] = v.data + } + res.json({ mid: `msg-${++mid}` }) + } else { + const { query } = JSON.parse(req.query.input).Input + res.json({ mid: `msg-${++mid}`, out: data[query[0]][query[1]] }) + } + }) + app.listen(port, () => console.log(`AO on port ${port}`)) +} + +class AO { + constructor() {} + async init() { + return this + } + async deploy() { + return await fetch("http://localhost:4001/spawn").then(v => v.json()) + } + async msg({ pid, tags, act }) { + return await fetch( + `http://localhost:4001/msg?input=${JSON.stringify(tags)}&act=${act}`, + ).then(v => v.json()) + } +} + +module.exports = { AO, CU } diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index 15d298d..9917c75 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -1,9 +1,10 @@ const { DB: ZKDB } = require("zkjson") -const { CWAO } = require("cwao") +const { AO } = require("./ao") const pako = require("pako") const fs = require("fs") const { cpSync, rmSync } = require("fs") const { + o, sortBy, mergeLeft, prop, @@ -15,6 +16,7 @@ const { map, includes, path: _path, + flatten, } = require("ramda") const DB = require("weavedb-offchain") const { open } = require("lmdb") @@ -171,10 +173,7 @@ class Rollup { ["commit", "==", false], ) if (bundling.length > 0) { - const b = (await this.measureSizes(bundling, this.last_hash)).slice( - 0, - 10, - ) + const b = await this.measureSizes(bundling, this.last_hash) this.cb[++this.count] = ( _err, { err, results, success, state }, @@ -211,25 +210,21 @@ class Rollup { ar: this.bundler, }, ) - const tx = await this.syncer.execute({ - process: this.contractTxId, - action: "bundle", - input: signed, + const input = o(flatten, map(_path(["data", "diff"])))(bundling) + const result = await this.syncer.msg({ + pid: this.contractTxId, + act: "Rollup", + tags: input, }) - console.log("lets get result....") - - const result = - (await this.syncer.cu.result(tx.id, this.contractTxId)) - ?.Output ?? null if (!isNil(result)) { results.push({ hash, height, - tx: result, + tx: { originalTxId: result.mid }, items: v, - duration: result.duration, + //duration: result.duration, }) - validity[result.originalTxId] = true + validity[result.mid] = true } else { // [TODO] need to handle this console.log("something went wrong with bundling") @@ -245,12 +240,6 @@ class Rollup { len: b.length, results, }) - } else { - this.syncer.send({ - id: this.count, - op: "bundle", - opt: { height: this.height, b }, - }) } } else { _res({ err: null, len: 0, success: null }) @@ -361,14 +350,6 @@ class Rollup { if (this.type === "ao") { // TODO: need implementation console.log("ao is not recoverable at the moment") - } else { - this.syncer.send({ - id: this.count, - op: "recover", - opt: { - full: !this.partial_recovery, - }, - }) } } @@ -380,7 +361,7 @@ class Rollup { await this.initWarp() await this.initPlugins() } - + /* async recoverWAL() { this.recovering = true this.cb[++this.count] = async (err, { txs }) => { @@ -544,7 +525,7 @@ class Rollup { op: "txs", opt: {}, }) - } + }*/ async initSyncer() { if (this.type === "ao") { @@ -552,51 +533,10 @@ class Rollup { console.log("srcTxId is missing...", this.contractTxId) return } - this.syncer = new CWAO({ - wallet: this.bundler, - ...this.ao, - }) - try { - console.log(await this.syncer.cu.get()) - this.init_warp = true - } catch (e) { - console.log("CU not responding...", this.contractTxId) - } + + this.syncer = new AO() + this.init_warp = true return - } else { - if (!isNil(this.syncer)) this.syncer.kill() - this.syncer = fork(path.resolve(__dirname, "warp")) - this.syncer.on("message", async ({ err, result, id }) => { - if (!isNil(id)) { - await this.cb[id]?.(err, result) - delete this.cb[id] - } - }) - this.cb[++this.count] = err => { - if (err) { - console.log(`warp unsuccessful... ${this.contractTxId}`) - } else { - console.log(`warp successfully initialized! ${this.contractTxId}`) - if (this.tx_count === 0) { - this.recoverWAL() - } - this.init_warp = true - } - } - this.syncer.send({ - id: this.count, - op: "init", - opt: { - snapshot: this.snapshot, - sequencerUrl: this.sequencerUrl, - apiKey: this.apiKey, - arweave: this.arweave, - contractTxId: this.contractTxId, - bundler: this.bundler, - dir: this.dir, - dir_backup: this.dir_backup, - }, - }) } } diff --git a/node/node-server/test/ao.js b/node/node-server/test/ao.js index f343938..eca56b8 100644 --- a/node/node-server/test/ao.js +++ b/node/node-server/test/ao.js @@ -2,9 +2,10 @@ const { expect } = require("chai") const DB = require("weavedb-node-client") const SDK = require("weavedb-sdk-node") const { wait, Test } = require("./lib/utils") -const { CWAO } = require("cwao") +//const { CWAO } = require("cwao") const { readFileSync } = require("fs") const { resolve } = require("path") +const { CU, AO } = require("../ao") const getModule = async () => readFileSync(resolve(__dirname, "../contract.js")) @@ -31,6 +32,8 @@ describe("WeaveDB on AO", function () { }) it("should start server", async () => { + await CU(4001) + /* const cwao = new CWAO({ wallet: bundler, ...base }) const sch = await arweave.wallets.jwkToAddress(bundler) expect(await cwao.mu.get()).to.eql("ao messenger unit") @@ -40,7 +43,9 @@ describe("WeaveDB on AO", function () { const _binary = await getModule() const mod_id = await cwao.deploy(_binary) await cwao.setSU({ url: base.su }) - + */ + const mod_id = "mod" + const sch = "sch" const db = new DB({ rpc: "localhost:9090", contractTxId: "testdb", @@ -78,6 +83,7 @@ describe("WeaveDB on AO", function () { { privateKey: admin.privateKey }, ) expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) + await wait(2000) // update the DB (via node) @@ -94,14 +100,18 @@ describe("WeaveDB on AO", function () { // check rollup await wait(5000) + console.log(contractTxId) + const ao = new AO() expect( - await cwao.query({ - process: contractTxId, - action: "get", - input: { function: "get", query: ["ppl", "Bob"] }, - }), + ( + await ao.msg({ + pid: contractTxId, + act: "Query", + tags: { Input: { function: "get", query: ["ppl", "Bob"] } }, + }) + ).out, ).to.eql(Bob) - + /* // get zk merkle tree hash try { expect(await cwao.cu.hash(contractTxId)).to.eql({ @@ -114,6 +124,7 @@ describe("WeaveDB on AO", function () { ).to.eql(Bob) } catch (e) { console.log(e) - } + } + */ }) }) diff --git a/node/node-server/vm.js b/node/node-server/vm.js index 5b7e07f..d7404c3 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -3,7 +3,8 @@ const SDK = require("weavedb-node-client") const { Wallet, isAddress } = require("ethers") const { validate } = require("./lib/validate") const Snapshot = require("./lib/snapshot") -const { CWAO } = require("cwao") +const { AO } = require("./ao") + const { all, indexBy, @@ -346,113 +347,36 @@ class VM { polygonID: "polygon-id", jsonschema: "jsonschema", } - const cwao = new CWAO({ - wallet: this.conf.bundler, - ...this.conf.ao, - }) - const pr = await cwao.instantiate({ - module, - scheduler, - input: initialState, - }) + const ao = await new AO(this.conf.ao).init(this.conf.bundler) + const { pid } = await ao.deploy({}) const tx = await this.admin_db.update( - { contractTxId: pr.id, type: "ao", srcTxId: module }, + { contractTxId: pid, type: "ao", srcTxId: module }, "dbs", key, auth, ) console.log( - `contract deployed: ${pr.id} [${key}:${tx.success}]`, + `contract deployed: ${pid} [${key}:${tx.success}]`, ) callback(null, { result: JSON.stringify({ - contractTxId: pr.id, + contractTxId: pid, srcTxId: module, }), err, }) - this.txid_map[pr.id] = key + this.txid_map[pid] = key this.rollups[key].deployContract( - pr.id, + pid, module, ++this.count, () => { - console.log(`AO contract initialized! ${pr.id}`) + console.log(`AO contract initialized! ${pid}`) }, "ao", this.conf.ao, ) return - } else { - const warp = - this.conf.arweave?.host === "localhost" - ? WarpFactory.forLocal().use(new DeployPlugin()) - : WarpFactory.forMainnet().use(new DeployPlugin()) - const srcTxId = - this.conf.weavedb_srcTxId ?? - "E14TapQNshyUIyN_DNhI0-YdUs8OP4-KXSgZnSxnROM" - let res = null - let err = null - try { - initialState.contracts = this.conf.contracts ?? { - dfinity: "3OnjOPuWzB138LOiNxqq2cKby2yANw6RWcQVEkztXX8", - ethereum: "Awwzwvw7qfc58cKS8cG3NsPdDet957-Bf-S1RcHry0w", - bundler: "lry5KMRj6j13sLHsKxs1D2joLjcj6yNHtNQQQoaHRug", - nostr: "PDuTzRpn99EwiUvT9XrUhg8nyhW20Wcd-XcRXboCpHs", - polygonID: "Lmu_BUdDuzja4X_egjPeOPdrQH6SQ5HgW7tKUpX37Gc", - jsonschema: "Mu5RtB1v_N6vW2cf0zRhOsIrrpcvSaEW8zeFlHMuVNI", - } - res = await warp.createContract.deployFromSourceTx({ - wallet: - _arweave.host === "localhost" - ? this.conf.bundler - : new ArweaveSigner(this.conf.bundler), - initState: JSON.stringify(initialState), - srcTxId, - evaluationManifest: { - evaluationOptions: { - useKVStorage: true, - internalWrites: true, - allowBigInt: true, - }, - }, - }) - } catch (e) { - err = e - console.log(e) - } - if (isNil(res?.contractTxId) || !isNil(err)) { - callback(null, { - result: null, - err: err ?? "unknown error", - }) - return - } else { - const tx = await this.admin_db.update( - { contractTxId: res.contractTxId, srcTxId, type: "warp" }, - "dbs", - key, - auth, - ) - console.log( - `contract deployed: ${res.contractTxId} [${key}:${tx.success}]`, - ) - callback(null, { - result: JSON.stringify(res), - err, - }) - this.txid_map[res.contractTxId] = key - this.rollups[key].deployContract( - res.contractTxId, - srcTxId, - ++this.count, - () => { - console.log( - `Warp contract initialized! ${res.contractTxId}`, - ) - }, - ) - } } } } From 7afd1c932990e0d06bb38bd27c831f609da25c3f Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Sat, 12 Oct 2024 18:27:24 +0400 Subject: [PATCH 03/60] simple lua contract --- lua/contracts/weavedb.lua | 28 + lua/package-lock.json | 3831 +++++++++++++++++++++++++++++++++++++ lua/package.json | 13 + lua/test/test.js | 50 + lua/yarn.lock | 2335 ++++++++++++++++++++++ 5 files changed, 6257 insertions(+) create mode 100644 lua/contracts/weavedb.lua create mode 100644 lua/package-lock.json create mode 100644 lua/package.json create mode 100644 lua/test/test.js create mode 100644 lua/yarn.lock diff --git a/lua/contracts/weavedb.lua b/lua/contracts/weavedb.lua new file mode 100644 index 0000000..12dedc1 --- /dev/null +++ b/lua/contracts/weavedb.lua @@ -0,0 +1,28 @@ +local ao = require("ao") +local json = require("json") +data = data or {} + +Handlers.add( + "Rollup", + Handlers.utils.hasMatchingTag('Action', 'Rollup'), + function(msg) + local diffs = json.decode(msg.Data) + for i, v in ipairs(diffs) do + data[v.collection] = data[v.collection] or {} + data[v.collection][v.doc] = v.data + end + Handlers.utils.reply('committed!')(msg) + end +) + +Handlers.add( + "Get", + Handlers.utils.hasMatchingTag('Action', 'Get'), + function(msg) + assert(type(msg.Tags.Query) == 'string', 'Query is required!') + local query = json.decode(msg.Tags.Query) + local result = json.encode(data[query[1]][query[2]]) + ao.send({ Target = msg.From, Tags = { Result = json.encode(result)} }) + end +) + diff --git a/lua/package-lock.json b/lua/package-lock.json new file mode 100644 index 0000000..6eb1f27 --- /dev/null +++ b/lua/package-lock.json @@ -0,0 +1,3831 @@ +{ + "name": "weavedb-ao-lua", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "weavedb-ao-lua", + "version": "1.0.0", + "dependencies": { + "aonote": "^0.8.2", + "chai": "^5.1.1", + "mocha": "^10.7.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", + "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", + "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.8", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.8", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "dependencies": { + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "peer": true, + "dependencies": { + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "dependencies": { + "@babel/types": "^7.25.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz", + "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@irys/arweave": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@irys/arweave/-/arweave-0.0.2.tgz", + "integrity": "sha512-ddE5h4qXbl0xfGlxrtBIwzflaxZUDlDs43TuT0u1OMfyobHul4AA1VEX72Rpzw2bOh4vzoytSqA1jCM7x9YtHg==", + "dependencies": { + "asn1.js": "^5.4.1", + "async-retry": "^1.3.3", + "axios": "^1.4.0", + "base64-js": "^1.5.1", + "bignumber.js": "^9.1.1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@permaweb/ao-scheduler-utils": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@permaweb/ao-scheduler-utils/-/ao-scheduler-utils-0.0.24.tgz", + "integrity": "sha512-G6109Nz8+dQFPuG7mV8mz66kLVA+gl2uTSqU7qpaRwfujrWi6obM94CpmvyvAnrLo3dB29EYiuv7+KOKcns8ig==", + "dependencies": { + "lru-cache": "^10.2.2", + "ramda": "^0.30.0", + "zod": "^3.23.5" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@permaweb/ao-scheduler-utils/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/@permaweb/aoconnect": { + "version": "0.0.59", + "resolved": "https://registry.npmjs.org/@permaweb/aoconnect/-/aoconnect-0.0.59.tgz", + "integrity": "sha512-AgnUv50hp3BVvqWk2IOw3p9ksF2GblFwQHCIWqwTYjvdViCPlsL4gx/BefxFqbMABXQ5q2QJItMJLlPelqC2CQ==", + "dependencies": { + "@permaweb/ao-scheduler-utils": "~0.0.23", + "buffer": "^6.0.3", + "debug": "^4.3.6", + "hyper-async": "^1.1.2", + "mnemonist": "^0.39.8", + "ramda": "^0.30.1", + "warp-arbundles": "^1.0.4", + "zod": "^3.23.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@randlabs/communication-bridge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@randlabs/communication-bridge/-/communication-bridge-1.0.1.tgz", + "integrity": "sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg==", + "optional": true + }, + "node_modules/@randlabs/myalgo-connect": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz", + "integrity": "sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA==", + "optional": true, + "dependencies": { + "@randlabs/communication-bridge": "1.0.1" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "node_modules/algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", + "optional": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/algosdk": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", + "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", + "optional": true, + "dependencies": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.2", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aonote": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/aonote/-/aonote-0.8.2.tgz", + "integrity": "sha512-CZNXHm4ApPCIHWbAkMHulobxN3aaRxoB36mAQfc5ekOSQ5qI1tUIAVSzAUmmYd/eQZxnZY9rtexhI6KFKy7arA==", + "dependencies": { + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@permaweb/aoconnect": "^0.0.59", + "arbundles": "^0.11.1", + "arweave": "^1.15.1", + "ramda": "^0.30.1", + "test": "^3.3.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/arbundles": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/arbundles/-/arbundles-0.11.2.tgz", + "integrity": "sha512-vyX7vY6S8B4RFhGSoCixbnR/Z7ckpJjK+b/H7zcgRWJqqXjZqQ+3DQIJ19vKl5AvzNSsj5ja9kQDoZhMiGpBFw==", + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/providers": "^5.7.2", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wallet": "^5.7.0", + "@irys/arweave": "^0.0.2", + "@noble/ed25519": "^1.6.1", + "base64url": "^3.0.1", + "bs58": "^4.0.1", + "keccak": "^3.0.2", + "secp256k1": "^5.0.0" + }, + "optionalDependencies": { + "@randlabs/myalgo-connect": "^1.1.2", + "algosdk": "^1.13.1", + "arweave-stream-tx": "^1.1.0", + "multistream": "^4.1.0", + "tmp-promise": "^3.0.2" + } + }, + "node_modules/arconnect": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/arconnect/-/arconnect-0.4.2.tgz", + "integrity": "sha512-Jkpd4QL3TVqnd3U683gzXmZUVqBUy17DdJDuL/3D9rkysLgX6ymJ2e+sR+xyZF5Rh42CBqDXWNMmCjBXeP7Gbw==", + "dependencies": { + "arweave": "^1.10.13" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arweave": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/arweave/-/arweave-1.15.5.tgz", + "integrity": "sha512-Zj3b8juz1ZtDaQDPQlzWyk2I4wZPx3RmcGq8pVJeZXl2Tjw0WRy5ueHPelxZtBLqCirGoZxZEAFRs6SZUSCBjg==", + "dependencies": { + "arconnect": "^0.4.2", + "asn1.js": "^5.4.1", + "base64-js": "^1.5.1", + "bignumber.js": "^9.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/arweave-stream-tx": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz", + "integrity": "sha512-bNt9rj0hbAEzoUZEF2s6WJbIz8nasZlZpxIw03Xm8fzb9gRiiZlZGW3lxQLjfc9Z0VRUWDzwtqoYeEoB/JDToQ==", + "optional": true, + "dependencies": { + "exponential-backoff": "^3.1.0" + }, + "peerDependencies": { + "arweave": "^1.10.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001668", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz", + "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true + }, + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "peer": true + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "optional": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.36", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz", + "integrity": "sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==", + "peer": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "optional": true + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==", + "optional": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hyper-async": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/hyper-async/-/hyper-async-1.1.2.tgz", + "integrity": "sha512-cnpOgKa+5FZOaccTtjduac1FrZuSc38/ftCp3vYJdUMt+7c+uvGDKLDK4MTNK8D3aFjIeveVrPcSgUPvzZLopg==" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", + "optional": true + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==", + "optional": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "optional": true, + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mnemonist": { + "version": "0.39.8", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz", + "integrity": "sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==", + "dependencies": { + "obliterator": "^2.0.1" + } + }, + "node_modules/mocha": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", + "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/multistream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", + "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true, + "dependencies": { + "once": "^1.4.0", + "readable-stream": "^3.6.0" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "optional": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "peer": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/ramda": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz", + "integrity": "sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/secp256k1/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.replaceall": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.replaceall/-/string.prototype.replaceall-1.0.10.tgz", + "integrity": "sha512-PKLapcZUZmXUdfIM6rTTTMYOxaj4JiQrgl0SKEeCFug1CdMAuJq8hVZd4eek9yMXAW4ldGUq+TiZRtjLJRU96g==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/test": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/test/-/test-3.3.0.tgz", + "integrity": "sha512-JKlEohxDIJRjwBH/+BrTcAPHljBALrAHw3Zs99RqZlaC605f6BggqXhxkdqZThbSHgaYPwpNJlf9bTSWkb/1rA==", + "dependencies": { + "minimist": "^1.2.6", + "readable-stream": "^4.3.0", + "string.prototype.replaceall": "^1.0.6" + }, + "bin": { + "node--test": "bin/node--test.js", + "node--test-name-pattern": "bin/node--test-name-pattern.js", + "node--test-only": "bin/node--test-only.js", + "test": "bin/node-core-test.js" + } + }, + "node_modules/test/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "optional": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "optional": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "optional": true + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "optional": true + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==", + "optional": true + }, + "node_modules/warp-arbundles": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/warp-arbundles/-/warp-arbundles-1.0.4.tgz", + "integrity": "sha512-KeRac/EJ7VOK+v5+PSMh2SrzpCKOAFnJICLlqZWt6qPkDCzVwcrNE5wFxOlEk5U170ewMDAB3e86UHUblevXpw==", + "dependencies": { + "arweave": "^1.13.7", + "base64url": "^3.0.1", + "buffer": "^6.0.3", + "warp-isomorphic": "^1.0.7" + } + }, + "node_modules/warp-isomorphic": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/warp-isomorphic/-/warp-isomorphic-1.0.7.tgz", + "integrity": "sha512-fXHbUXwdYqPm9fRPz8mjv5ndPco09aMQuTe4kXfymzOq8V6F3DLsg9cIafxvjms9/mc6eijzkLBJ63yjEENEjA==", + "dependencies": { + "buffer": "^6.0.3", + "undici": "^5.19.1" + }, + "engines": { + "node": ">=16.8.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "optional": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "optional": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "peer": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/lua/package.json b/lua/package.json new file mode 100644 index 0000000..274fae9 --- /dev/null +++ b/lua/package.json @@ -0,0 +1,13 @@ +{ + "name": "weavedb-ao-lua", + "version": "1.0.0", + "type": "module", + "scripts": { + "test": "mocha" + }, + "dependencies": { + "aonote": "^0.8.2", + "chai": "^5.1.1", + "mocha": "^10.7.3" + } +} diff --git a/lua/test/test.js b/lua/test/test.js new file mode 100644 index 0000000..a25dbbc --- /dev/null +++ b/lua/test/test.js @@ -0,0 +1,50 @@ +import { setup, ok, fail } from "aonote/test/helpers.js" +import { expect } from "chai" +import { AR, AO, Profile, Note, Notebook } from "aonote" +import { readFileSync } from "fs" +import { resolve } from "path" +describe("Atomic Notes", function () { + this.timeout(0) + let ao, opt, profile, ar, thumbnail, banner + + before(async () => { + ;({ thumbnail, banner, opt, ao, ar, profile } = await setup({ + cache: true, + })) + }) + + it("should deploy weavedb process", async () => { + const data = readFileSync( + resolve(import.meta.dirname, "../contracts/weavedb.lua"), + "utf8", + ) + const ao = await new AO(opt.ao).init(ar.jwk) + const { pid } = await ao.spwn({}) + await ao.wait({ pid }) + const { mid } = await ao.load({ pid, data }) + ok( + await ao.msg({ + pid, + act: "Rollup", + data: JSON.stringify([ + { collection: "ppl", doc: "Bob", data: { name: "Bob" } }, + ]), + checkData: "committed!", + }), + ) + + const res = JSON.parse( + ( + await ao.dry({ + pid, + act: "Get", + tags: { + Query: JSON.stringify(["ppl", "Bob"]), + }, + get: { name: "Result", json: true }, + }) + ).out, + ) + expect(res).to.eql({ name: "Bob" }) + }) +}) diff --git a/lua/yarn.lock b/lua/yarn.lock new file mode 100644 index 0000000..9bf416c --- /dev/null +++ b/lua/yarn.lock @@ -0,0 +1,2335 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz" + integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== + dependencies: + "@babel/highlight" "^7.25.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.25.7": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz" + integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA== + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz" + integrity sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.25.7" + "@babel/generator" "^7.25.7" + "@babel/helper-compilation-targets" "^7.25.7" + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helpers" "^7.25.7" + "@babel/parser" "^7.25.8" + "@babel/template" "^7.25.7" + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.8" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz" + integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA== + dependencies: + "@babel/types" "^7.25.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz" + integrity sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A== + dependencies: + "@babel/compat-data" "^7.25.7" + "@babel/helper-validator-option" "^7.25.7" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-module-imports@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz" + integrity sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-module-transforms@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz" + integrity sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ== + dependencies: + "@babel/helper-module-imports" "^7.25.7" + "@babel/helper-simple-access" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/helper-plugin-utils@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz" + integrity sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw== + +"@babel/helper-simple-access@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz" + integrity sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-string-parser@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz" + integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== + +"@babel/helper-validator-identifier@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz" + integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== + +"@babel/helper-validator-option@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz" + integrity sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ== + +"@babel/helpers@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz" + integrity sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA== + dependencies: + "@babel/template" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/highlight@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz" + integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== + dependencies: + "@babel/helper-validator-identifier" "^7.25.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.25.7", "@babel/parser@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz" + integrity sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ== + dependencies: + "@babel/types" "^7.25.8" + +"@babel/plugin-transform-modules-commonjs@^7.24.8": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz" + integrity sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg== + dependencies: + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-simple-access" "^7.25.7" + +"@babel/template@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz" + integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA== + dependencies: + "@babel/code-frame" "^7.25.7" + "@babel/parser" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/traverse@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz" + integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== + dependencies: + "@babel/code-frame" "^7.25.7" + "@babel/generator" "^7.25.7" + "@babel/parser" "^7.25.7" + "@babel/template" "^7.25.7" + "@babel/types" "^7.25.7" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.25.7", "@babel/types@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz" + integrity sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg== + dependencies: + "@babel/helper-string-parser" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" + to-fast-properties "^2.0.0" + +"@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@^5.7.2": + version "5.7.2" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/wallet@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@fastify/busboy@^2.0.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== + +"@irys/arweave@^0.0.2": + version "0.0.2" + resolved "https://registry.npmjs.org/@irys/arweave/-/arweave-0.0.2.tgz" + integrity sha512-ddE5h4qXbl0xfGlxrtBIwzflaxZUDlDs43TuT0u1OMfyobHul4AA1VEX72Rpzw2bOh4vzoytSqA1jCM7x9YtHg== + dependencies: + asn1.js "^5.4.1" + async-retry "^1.3.3" + axios "^1.4.0" + base64-js "^1.5.1" + bignumber.js "^9.1.1" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@noble/ed25519@^1.6.1": + version "1.7.3" + resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz" + integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== + +"@permaweb/ao-scheduler-utils@~0.0.23": + version "0.0.24" + resolved "https://registry.npmjs.org/@permaweb/ao-scheduler-utils/-/ao-scheduler-utils-0.0.24.tgz" + integrity sha512-G6109Nz8+dQFPuG7mV8mz66kLVA+gl2uTSqU7qpaRwfujrWi6obM94CpmvyvAnrLo3dB29EYiuv7+KOKcns8ig== + dependencies: + lru-cache "^10.2.2" + ramda "^0.30.0" + zod "^3.23.5" + +"@permaweb/aoconnect@^0.0.59": + version "0.0.59" + resolved "https://registry.npmjs.org/@permaweb/aoconnect/-/aoconnect-0.0.59.tgz" + integrity sha512-AgnUv50hp3BVvqWk2IOw3p9ksF2GblFwQHCIWqwTYjvdViCPlsL4gx/BefxFqbMABXQ5q2QJItMJLlPelqC2CQ== + dependencies: + "@permaweb/ao-scheduler-utils" "~0.0.23" + buffer "^6.0.3" + debug "^4.3.6" + hyper-async "^1.1.2" + mnemonist "^0.39.8" + ramda "^0.30.1" + warp-arbundles "^1.0.4" + zod "^3.23.8" + +"@randlabs/communication-bridge@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@randlabs/communication-bridge/-/communication-bridge-1.0.1.tgz" + integrity sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg== + +"@randlabs/myalgo-connect@^1.1.2": + version "1.4.2" + resolved "https://registry.npmjs.org/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz" + integrity sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA== + dependencies: + "@randlabs/communication-bridge" "1.0.1" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +algo-msgpack-with-bigint@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz" + integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== + +algosdk@^1.13.1: + version "1.24.1" + resolved "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz" + integrity sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww== + dependencies: + algo-msgpack-with-bigint "^2.1.1" + buffer "^6.0.2" + cross-fetch "^3.1.5" + hi-base32 "^0.5.1" + js-sha256 "^0.9.0" + js-sha3 "^0.8.0" + js-sha512 "^0.8.0" + json-bigint "^1.0.0" + tweetnacl "^1.0.3" + vlq "^2.0.4" + +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aonote@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/aonote/-/aonote-0.8.2.tgz" + integrity sha512-CZNXHm4ApPCIHWbAkMHulobxN3aaRxoB36mAQfc5ekOSQ5qI1tUIAVSzAUmmYd/eQZxnZY9rtexhI6KFKy7arA== + dependencies: + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@permaweb/aoconnect" "^0.0.59" + arbundles "^0.11.1" + arweave "^1.15.1" + ramda "^0.30.1" + test "^3.3.0" + +arbundles@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/arbundles/-/arbundles-0.11.2.tgz" + integrity sha512-vyX7vY6S8B4RFhGSoCixbnR/Z7ckpJjK+b/H7zcgRWJqqXjZqQ+3DQIJ19vKl5AvzNSsj5ja9kQDoZhMiGpBFw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/providers" "^5.7.2" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wallet" "^5.7.0" + "@irys/arweave" "^0.0.2" + "@noble/ed25519" "^1.6.1" + base64url "^3.0.1" + bs58 "^4.0.1" + keccak "^3.0.2" + secp256k1 "^5.0.0" + optionalDependencies: + "@randlabs/myalgo-connect" "^1.1.2" + algosdk "^1.13.1" + arweave-stream-tx "^1.1.0" + multistream "^4.1.0" + tmp-promise "^3.0.2" + +arconnect@^0.4.2: + version "0.4.2" + resolved "https://registry.npmjs.org/arconnect/-/arconnect-0.4.2.tgz" + integrity sha512-Jkpd4QL3TVqnd3U683gzXmZUVqBUy17DdJDuL/3D9rkysLgX6ymJ2e+sR+xyZF5Rh42CBqDXWNMmCjBXeP7Gbw== + dependencies: + arweave "^1.10.13" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arweave-stream-tx@^1.1.0: + version "1.2.2" + resolved "https://registry.npmjs.org/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz" + integrity sha512-bNt9rj0hbAEzoUZEF2s6WJbIz8nasZlZpxIw03Xm8fzb9gRiiZlZGW3lxQLjfc9Z0VRUWDzwtqoYeEoB/JDToQ== + dependencies: + exponential-backoff "^3.1.0" + +arweave@^1.10.0, arweave@^1.10.13, arweave@^1.13.7, arweave@^1.15.1: + version "1.15.5" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.15.5.tgz" + integrity sha512-Zj3b8juz1ZtDaQDPQlzWyk2I4wZPx3RmcGq8pVJeZXl2Tjw0WRy5ueHPelxZtBLqCirGoZxZEAFRs6SZUSCBjg== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + base64-js "^1.5.1" + bignumber.js "^9.0.2" + +asn1.js@^5.4.1: + version "5.4.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + +async-retry@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axios@^1.4.0: + version "1.7.7" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2: + version "3.0.10" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz" + integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64url@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + +bech32@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +bignumber.js@^9.0.0, bignumber.js@^9.0.2, bignumber.js@^9.1.1: + version "9.1.2" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bn.js@^4.0.0: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-stdout@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.24.0, "browserslist@>= 4.21.0": + version "4.24.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz" + integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== + dependencies: + caniuse-lite "^1.0.30001663" + electron-to-chromium "^1.5.28" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +buffer@^6.0.2, buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001663: + version "1.0.30001668" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz" + integrity sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw== + +chai@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz" + integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +debug@^4.1.0, debug@^4.3.1, debug@^4.3.5, debug@^4.3.6: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + +electron-to-chromium@^1.5.28: + version "1.5.36" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz" + integrity sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw== + +elliptic@^6.5.4, elliptic@6.5.4: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +exponential-backoff@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.15.6: + version "1.15.9" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +form-data@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz" + integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hi-base32@^0.5.1: + version "0.5.1" + resolved "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz" + integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hyper-async@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/hyper-async/-/hyper-async-1.1.2.tgz" + integrity sha512-cnpOgKa+5FZOaccTtjduac1FrZuSc38/ftCp3vYJdUMt+7c+uvGDKLDK4MTNK8D3aFjIeveVrPcSgUPvzZLopg== + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +js-sha256@^0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz" + integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== + +js-sha3@^0.8.0, js-sha3@0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-sha512@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz" + integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== + dependencies: + bignumber.js "^9.0.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +keccak@^3.0.2: + version "3.0.4" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +loupe@^3.1.0: + version "3.1.2" + resolved "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz" + integrity sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== + +lru-cache@^10.2.2: + version "10.4.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^5.0.1, minimatch@^5.1.6: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mnemonist@^0.39.8: + version "0.39.8" + resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz" + integrity sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ== + dependencies: + obliterator "^2.0.1" + +mocha@^10.7.3: + version "10.7.3" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz" + integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multistream@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz" + integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== + dependencies: + once "^1.4.0" + readable-stream "^3.6.0" + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0: + version "4.8.2" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz" + integrity sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw== + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +obliterator@^2.0.1: + version "2.0.4" + resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== + +picocolors@^1.0.0, picocolors@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +ramda@^0.30.0, ramda@^0.30.1: + version "0.30.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz" + integrity sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^4.3.0: + version "4.5.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regexp.prototype.flags@^1.5.2: + version "1.5.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz" + integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^5.0.0" + node-gyp-build "^4.2.0" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.replaceall@^1.0.6: + version "1.0.10" + resolved "https://registry.npmjs.org/string.prototype.replaceall/-/string.prototype.replaceall-1.0.10.tgz" + integrity sha512-PKLapcZUZmXUdfIM6rTTTMYOxaj4JiQrgl0SKEeCFug1CdMAuJq8hVZd4eek9yMXAW4ldGUq+TiZRtjLJRU96g== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + is-regex "^1.1.4" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +test@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/test/-/test-3.3.0.tgz" + integrity sha512-JKlEohxDIJRjwBH/+BrTcAPHljBALrAHw3Zs99RqZlaC605f6BggqXhxkdqZThbSHgaYPwpNJlf9bTSWkb/1rA== + dependencies: + minimist "^1.2.6" + readable-stream "^4.3.0" + string.prototype.replaceall "^1.0.6" + +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.3" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici@^5.19.1: + version "5.28.4" + resolved "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz" + integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== + dependencies: + "@fastify/busboy" "^2.0.0" + +update-browserslist-db@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +vlq@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz" + integrity sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA== + +warp-arbundles@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/warp-arbundles/-/warp-arbundles-1.0.4.tgz" + integrity sha512-KeRac/EJ7VOK+v5+PSMh2SrzpCKOAFnJICLlqZWt6qPkDCzVwcrNE5wFxOlEk5U170ewMDAB3e86UHUblevXpw== + dependencies: + arweave "^1.13.7" + base64url "^3.0.1" + buffer "^6.0.3" + warp-isomorphic "^1.0.7" + +warp-isomorphic@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/warp-isomorphic/-/warp-isomorphic-1.0.7.tgz" + integrity sha512-fXHbUXwdYqPm9fRPz8mjv5ndPco09aMQuTe4kXfymzOq8V6F3DLsg9cIafxvjms9/mc6eijzkLBJ63yjEENEjA== + dependencies: + buffer "^6.0.3" + undici "^5.19.1" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@^20.2.2, yargs-parser@^20.2.9: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod@^3.23.5, zod@^3.23.8: + version "3.23.8" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== From 58ca13865d5201f39d078554e934918e096a3986 Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Sat, 12 Oct 2024 20:41:02 +0400 Subject: [PATCH 04/60] the simplest integration between rollup and ao --- node/node-server/lua/aos.wasm | Bin 0 -> 738624 bytes node/node-server/lua/weavedb.lua | 28 + node/node-server/package.json | 10 +- node/node-server/rollup.js | 21 +- node/node-server/test/ao.js | 49 +- node/node-server/test/lib/helpers.js | 83 + node/node-server/test/lib/utils.js | 145 +- node/node-server/vm.js | 28 +- node/node-server/yarn.lock | 8424 ++++++++++++++++++-------- 9 files changed, 6067 insertions(+), 2721 deletions(-) create mode 100644 node/node-server/lua/aos.wasm create mode 100644 node/node-server/lua/weavedb.lua create mode 100644 node/node-server/test/lib/helpers.js diff --git a/node/node-server/lua/aos.wasm b/node/node-server/lua/aos.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6b6f6da1f228f897a13923dfe4626bd6177f9d6d GIT binary patch literal 738624 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%0DeA#13 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
  • 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%0An>;x&}Vg%4TItxmY=MBrT#>ZFW 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 literal 0 HcmV?d00001 diff --git a/node/node-server/lua/weavedb.lua b/node/node-server/lua/weavedb.lua new file mode 100644 index 0000000..12dedc1 --- /dev/null +++ b/node/node-server/lua/weavedb.lua @@ -0,0 +1,28 @@ +local ao = require("ao") +local json = require("json") +data = data or {} + +Handlers.add( + "Rollup", + Handlers.utils.hasMatchingTag('Action', 'Rollup'), + function(msg) + local diffs = json.decode(msg.Data) + for i, v in ipairs(diffs) do + data[v.collection] = data[v.collection] or {} + data[v.collection][v.doc] = v.data + end + Handlers.utils.reply('committed!')(msg) + end +) + +Handlers.add( + "Get", + Handlers.utils.hasMatchingTag('Action', 'Get'), + function(msg) + assert(type(msg.Tags.Query) == 'string', 'Query is required!') + local query = json.decode(msg.Tags.Query) + local result = json.encode(data[query[1]][query[2]]) + ao.send({ Target = msg.From, Tags = { Result = json.encode(result)} }) + end +) + diff --git a/node/node-server/package.json b/node/node-server/package.json index d5e79e5..0f56f7c 100644 --- a/node/node-server/package.json +++ b/node/node-server/package.json @@ -3,7 +3,7 @@ "version": "0.5.3", "main": "server.js", "engines": { - "node": ">=18.13" + "node": ">=20" }, "scripts": { "test": "mocha", @@ -16,6 +16,7 @@ "@grpc/grpc-js": "~1.1.8", "@grpc/proto-loader": "~0.5.0", "@metamask/eth-sig-util": "^5.0.2", + "aonote": "^0.8.2", "archiver": "^5.3.1", "arweave": "^1.14.4", "aws-sdk": "^2.1306.0", @@ -30,18 +31,11 @@ "md5": "^2.3.0", "mocha": "^10.2.0", "nostr-tools": "^1.16.0", - "pako": "^2.1.0", "pm2": "^5.3.0", "ramda": "^0.28.0", - "redis": "^4.6.4", - "tweetnacl": "^1.0.3", - "warp-arbundles": "^1.0.4", - "warp-contracts": "1.4.1", - "warp-contracts-plugin-deploy": "1.0.3", "weavedb-node-client": "^0.44.2", "weavedb-offchain": "^0.44.4", "weavedb-sdk-node": "^0.44.3", - "weavedb-warp-contracts-plugin-deploy": "^1.0.10", "ws": "^8.14.2", "yargs": "^17.6.2", "zkjson": "^0.3.1" diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index 9917c75..0a10efb 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -1,6 +1,5 @@ const { DB: ZKDB } = require("zkjson") -const { AO } = require("./ao") -const pako = require("pako") +const { AO } = require("aonote") const fs = require("fs") const { cpSync, rmSync } = require("fs") const { @@ -59,7 +58,7 @@ const getNewHash = async (last_hash, current_hash) => { class Rollup { constructor({ sequencerUrl, - ao, + aos, apiKey, txid, srcTxId, @@ -82,7 +81,7 @@ class Rollup { this.snapshot = snapshot this.cb = {} this.type = type - this.ao = ao + this.aos = aos this.sequencerUrl = sequencerUrl this.apiKey = apiKey this.arweave = arweave @@ -211,22 +210,24 @@ class Rollup { }, ) const input = o(flatten, map(_path(["data", "diff"])))(bundling) - const result = await this.syncer.msg({ + const { err, mid } = await this.syncer.msg({ pid: this.contractTxId, act: "Rollup", - tags: input, + data: JSON.stringify(input), + checkData: "committed!", }) - if (!isNil(result)) { + if (!err) { results.push({ hash, height, - tx: { originalTxId: result.mid }, + tx: { originalTxId: mid }, items: v, //duration: result.duration, }) - validity[result.mid] = true + validity[mid] = true } else { // [TODO] need to handle this + console.log(err) console.log("something went wrong with bundling") } } @@ -534,7 +535,7 @@ class Rollup { return } - this.syncer = new AO() + this.syncer = await new AO(this.aos).init(this.bundler) this.init_warp = true return } diff --git a/node/node-server/test/ao.js b/node/node-server/test/ao.js index eca56b8..3a37a0c 100644 --- a/node/node-server/test/ao.js +++ b/node/node-server/test/ao.js @@ -2,20 +2,23 @@ const { expect } = require("chai") const DB = require("weavedb-node-client") const SDK = require("weavedb-sdk-node") const { wait, Test } = require("./lib/utils") -//const { CWAO } = require("cwao") const { readFileSync } = require("fs") const { resolve } = require("path") -const { CU, AO } = require("../ao") +const { AO } = require("aonote") +const { setup, ok, fail } = require("./lib/helpers.js") const getModule = async () => readFileSync(resolve(__dirname, "../contract.js")) describe("WeaveDB on AO", function () { this.timeout(0) - let admin, network, bundler, test, base, arweave + let admin, network, bundler, test, base, arweave, opt before(async () => { + ;({ opt } = await setup({ cache: true })) + // testing in insecure mode, never do that in production test = new Test({ + aos: opt.ao, secure: false, sequencerUrl: "https://gw.warp.cc/", apiKey: "xyz", @@ -31,21 +34,7 @@ describe("WeaveDB on AO", function () { process.exit() }) - it("should start server", async () => { - await CU(4001) - /* - const cwao = new CWAO({ wallet: bundler, ...base }) - const sch = await arweave.wallets.jwkToAddress(bundler) - expect(await cwao.mu.get()).to.eql("ao messenger unit") - expect((await cwao.cu.get()).address).to.eql(sch) - expect((await cwao.su.get()).Address).to.eql(sch) - expect((await cwao.su.timestamp()).block_height).to.eql(0) - const _binary = await getModule() - const mod_id = await cwao.deploy(_binary) - await cwao.setSU({ url: base.su }) - */ - const mod_id = "mod" - const sch = "sch" + it("should deploy weavedb on AO", async () => { const db = new DB({ rpc: "localhost:9090", contractTxId: "testdb", @@ -77,8 +66,8 @@ describe("WeaveDB on AO", function () { op: "deploy_contract", key: "testdb", type: "ao", - module: mod_id, - scheduler: sch, + module: opt.ao.module, + scheduler: opt.ao.scheduler, }, { privateKey: admin.privateKey }, ) @@ -100,16 +89,18 @@ describe("WeaveDB on AO", function () { // check rollup await wait(5000) - console.log(contractTxId) - const ao = new AO() + const ao = new AO(opt.ao) expect( - ( - await ao.msg({ - pid: contractTxId, - act: "Query", - tags: { Input: { function: "get", query: ["ppl", "Bob"] } }, - }) - ).out, + JSON.parse( + ( + await ao.dry({ + pid: contractTxId, + act: "Get", + tags: { Query: JSON.stringify(["ppl", "Bob"]) }, + get: { name: "Result", json: true }, + }) + ).out, + ), ).to.eql(Bob) /* // get zk merkle tree hash diff --git a/node/node-server/test/lib/helpers.js b/node/node-server/test/lib/helpers.js new file mode 100644 index 0000000..35c37d6 --- /dev/null +++ b/node/node-server/test/lib/helpers.js @@ -0,0 +1,83 @@ +const { Note, Profile, AR, AO, Collection, Notebook } = require("aonote") +const { expect } = require("chai") +const { resolve } = require("path") +const { mkdirSync, existsSync, writeFileSync, readFileSync } = require("fs") + +class Src { + constructor({ ar, base = "../../lua", readFileSync, dir, resolve }) { + this.ar = ar + this.base = base + this.dir = dir + } + data(file, ext = "lua") { + return readFileSync( + resolve(this.dir, this.base, `${file}.${ext}`), + ext === "wasm" ? null : "utf8", + ) + } + async upload(file, ext = "lua") { + const res = await this.ar.post({ data: this.data(file, ext) }) + return res.err ? null : res.id + } +} + +const setup = async ({ + aoconnect, + arweave, + cache = false, + cacheDir = ".cache", +} = {}) => { + let opt = null + console.error = () => {} + console.warn = () => {} + const dir = resolve(__dirname) + const _cacheDir = resolve(__dirname, cacheDir) + const optPath = `${_cacheDir}/opt.json` + if (cache) { + if (!existsSync(_cacheDir)) mkdirSync(_cacheDir) + if (existsSync(optPath)) opt = JSON.parse(readFileSync(optPath, "utf8")) + } + if (opt) { + const ar = await new AR(opt.ar).init(opt.jwk) + const ao = new AO({ ...opt.ar, ar }) + const profile = new Profile({ ...opt.profile, ao }) + return { opt, ar, ao, profile } + } + arweave ??= { port: 4000 } + aoconnect ??= { + MU_URL: "http://localhost:4002", + CU_URL: "http://localhost:4004", + GATEWAY_URL: "http://localhost:4000", + } + const ar = new AR(arweave) + await ar.gen("10") + const src = new Src({ ar, readFileSync, dir }) + const wasm = await src.upload("aos", "wasm") + const ao = new AO({ aoconnect, ar }) + const { scheduler } = await ao.postScheduler({ + url: "http://su", + overwrite: true, + }) + const { id: module } = await ao.postModule({ + data: await ar.data(wasm), + overwrite: true, + }) + opt = { ar: { ...arweave }, jwk: ar.jwk } + opt.ao = { module: module, scheduler, aoconnect, ar: opt.ar } + if (cache) writeFileSync(optPath, JSON.stringify(opt)) + return { opt, ao, ar, src } +} + +const ok = obj => { + if (obj.err) console.log(obj.err) + expect(obj.err).to.eql(null) + return obj +} + +const fail = obj => { + if (!obj.err) console.log(obj.res) + expect(obj.err).to.not.eql(null) + return obj +} + +module.exports = { Src, setup, ok, fail } diff --git a/node/node-server/test/lib/utils.js b/node/node-server/test/lib/utils.js index df04ba3..6553ac0 100644 --- a/node/node-server/test/lib/utils.js +++ b/node/node-server/test/lib/utils.js @@ -1,64 +1,13 @@ const EthCrypto = require("eth-crypto") const { readFileSync } = require("fs") const { join, resolve } = require("path") -const { LoggerFactory, WarpFactory } = require("warp-contracts") const { VM } = require("../../vm") const { Server } = require("../../server") const Arweave = require("arweave") -const ArLocal = require("arlocal").default -const { DeployPlugin } = require("warp-contracts-plugin-deploy") const { rmSync } = require("fs") const { CU, MU, SU } = require("cwao-units") const CUWDB = require("cwao-units/cu-weavedb") -class Deploy { - constructor({ warp, wallet }) { - this.warp = warp - this.wallet = wallet - } - async deploy({ tar, ver = "0.0.1", init = {} }) { - const dir = join(__dirname, "../../contracts", tar) - const src = readFileSync(join(dir, `${ver}.js`), "utf8") - const state = JSON.parse( - readFileSync(join(dir, "initial-state.json"), "utf8"), - ) - const initState = JSON.stringify({ - ...state, - ...{ owner: this.wallet.address, bridges: ["ethereum"] }, - }) - return await this.warp.createContract.deploy({ - wallet: this.wallet, - initState, - src, - }) - } - async weavedb({ ver }) { - this.dfinity = await this.deploy({ tar: "dfinity" }) - this.ethereum = await this.deploy({ tar: "ethereum" }) - this.bundler = await this.deploy({ tar: "bundler" }) - this.nostr = await this.deploy({ tar: "nostr" }) - this.weavedb = await this.deploy({ - tar: "weavedb", - ver, - init: { - dfinity: this.dfinity.contractTxId, - ethereum: this.ethereum.contractTxId, - bundler: this.bundler.contractTxId, - nostr: this.nostr.contractTxId, - }, - }) - return this.weavedb - } - get contracts() { - return { - dfinity: this.dfinity.contractTxId, - ethereum: this.ethereum.contractTxId, - bundler: this.bundler.contractTxId, - nostr: this.nostr.contractTxId, - } - } -} - const wait = ms => { console.log("waiting for...", String(ms), "ms") return new Promise(res => setTimeout(() => res(), ms)) @@ -66,6 +15,7 @@ const wait = ms => { class Test { constructor({ + aos, snapshot, sequencerUrl, apiKey, @@ -80,8 +30,7 @@ class Test { ao = false, cosmwasm = false, }) { - this.ao = ao - this.cosmwasm = cosmwasm + this.aos = aos this.snapshot = snapshot this.sequencerUrl = sequencerUrl this.apiKey = apiKey @@ -91,10 +40,9 @@ class Test { this.secure = secure this.weavedb_srcTxId = weavedb_srcTxId this.weavedb_version = weavedb_version ?? "0.42.1" - this.arLocal_started = false this.network = network ?? { host: "localhost", - port: 1984, + port: 4000, protocol: "http", } @@ -104,19 +52,8 @@ class Test { const addr = await this.arweave.wallets.getAddress(wallet) await this.arweave.api.get(`/mint/${addr}/${amount}`) } - async startArLocal() { - if (!this.arLocal_started) { - LoggerFactory.INST.logLevel("error") - this.arweave = Arweave.init(this.network) - this.arLocal = new ArLocal(1984, false) - await this.arLocal.start() - this.arLocal_started = true - await wait(1000) - } else { - console.log("arLocal already started") - } - } async genBunder() { + this.arweave = Arweave.init(this.network) if (!this.bundler) { this.bundler = await this.arweave.wallets.generate() await this.addFunds(this.bundler) @@ -142,20 +79,9 @@ class Test { console.log("L2 admin already exists") } } - async deployWeaveDB() { - if (!this.weavedb_srcTxId) { - const warp = WarpFactory.forLocal() - warp.use(new DeployPlugin()) - const deploy = new Deploy({ warp, wallet: this.bundler }) - const weavedb = await deploy.weavedb({ ver: this.weavedb_version }) - this.contracts = deploy.contracts - this.weavedb_srcTxId = weavedb.srcTxId - } else { - console.log("weavedb src contract already deployed") - } - } async startVM() { this.conf = { + aos: this.aos, ao: this.base, snapshot: this.snapshot, sequencerUrl: this.sequencerUrl, @@ -176,53 +102,10 @@ class Test { async startServer() { this.server = new Server({ query: this.vm.query.bind(this.vm) }) } - async startAO() { - const base = { - mu: "http://localhost:1995", - su: "http://localhost:1996", - cu: "http://localhost:1997", - arweave: this.network, - graphql: "http://localhost:1984/graphql", - } - this.base = base - this.mu = new MU({ wallet: this.bundler, port: 1995, ...base }) - this.su = new SU({ wallet: this.bundler, port: 1996, ...base }) - this.cu = new CUWDB({ - wallet: this.bundler, - port: 1997, - ...base, - wasmRU: resolve(__dirname, "../../cirtuits/rollup/index_js/index.wasm"), - zkeyRU: resolve(__dirname, "../../circuits/rollup/index_0001.zkey"), - wasm: resolve(__dirname, "../../circuits/db/index_js/index.wasm"), - zkey: resolve(__dirname, "../../circuits/db/index_0001.zkey"), - }) - } - - async startCW() { - const base = { - mu: "http://localhost:1975", - su: "http://localhost:1976", - cu: "http://localhost:1977", - arweave: this.network, - graphql: "http://localhost:1984/graphql", - } - this.base_cw = base - this.mu_cw = new MU({ wallet: this.bundler2, port: 1975, ...base }) - this.su_cw = new SU({ wallet: this.bundler2, port: 1976, ...base }) - this.cu_cw = new CU({ - wallet: this.bundler2, - port: 1977, - ...base, - }) - } async start() { - await this.startArLocal() await this.genBunder() await this.genAdmin() - await this.deployWeaveDB() - if (this.ao) await this.startAO() - if (this.cosmwasm) await this.startCW() await this.startVM() await this.startServer() await wait(1000) @@ -242,7 +125,6 @@ class Test { bundler2: this.bundler2, admin: this.admin, admin_l1: this.admin_l1, - arLocal: this.arLocal, contracts: this.contracts, weavedb_srcTxId: this.weavedb_srcTxId, conf: this.conf, @@ -274,26 +156,11 @@ class Test { console.log(e) } } - async stopArLocal() { - await this.arLocal.stop() - this.arLocal_started = false - } async stop() { this.stopServer() await this.stopVM() - await this.stopArLocal() this.deleteCache() - if (this.ao) { - this.mu.stop() - this.su.stop() - this.cu.stop() - } - if (this.cosmwasm) { - this.mu_cw.stop() - this.su_cw.stop() - this.cu_cw.stop() - } } } -module.exports = { Test, Deploy, wait } +module.exports = { Test, wait } diff --git a/node/node-server/vm.js b/node/node-server/vm.js index d7404c3..582f790 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -3,7 +3,9 @@ const SDK = require("weavedb-node-client") const { Wallet, isAddress } = require("ethers") const { validate } = require("./lib/validate") const Snapshot = require("./lib/snapshot") -const { AO } = require("./ao") +const { readFileSync } = require("fs") +const { resolve } = require("path") +const { AO } = require("aonote") const { all, @@ -20,11 +22,6 @@ const { const { privateToAddress } = require("ethereumjs-util") const path = require("path") const { fork } = require("child_process") -const { - DeployPlugin, - ArweaveSigner, -} = require("weavedb-warp-contracts-plugin-deploy") -const { WarpFactory } = require("warp-contracts") class Rollup { constructor({ @@ -47,6 +44,7 @@ class Rollup { apiKey, snapshot, ao, + aos, }) { this.cb = {} this.txid = txid @@ -63,7 +61,7 @@ class Rollup { this.db.send({ op: "new", params: { - ao, + aos, type, snapshot, srcTxId, @@ -144,7 +142,7 @@ class VM { } getRollup(v, txid) { return new Rollup({ - ao: this.conf.ao, + aos: this.conf.aos, type: v.type, snapshot: this.conf.snapshot, sequencerUrl: this.conf.sequencerUrl, @@ -347,8 +345,16 @@ class VM { polygonID: "polygon-id", jsonschema: "jsonschema", } - const ao = await new AO(this.conf.ao).init(this.conf.bundler) - const { pid } = await ao.deploy({}) + + const ao = await new AO(this.conf.aos).init(this.conf.bundler) + const data = readFileSync( + resolve(__dirname, "./lua/weavedb.lua"), + "utf8", + ) + + const { pid } = await ao.spwn({}) + await ao.wait({ pid }) + const { mid } = await ao.load({ pid, data }) const tx = await this.admin_db.update( { contractTxId: pid, type: "ao", srcTxId: module }, "dbs", @@ -433,7 +439,7 @@ class VM { } if (tx.success) { this.rollups[key] = new Rollup({ - ao: this.conf.ao, + aos: this.conf.aos, type: db.type, snapshot: this.conf.snapshot, sequencerUrl: this.conf.sequencerUrl, diff --git a/node/node-server/yarn.lock b/node/node-server/yarn.lock index ded1784..a7442b1 100644 --- a/node/node-server/yarn.lock +++ b/node/node-server/yarn.lock @@ -4,12 +4,20 @@ "@adraffy/ens-normalize@1.10.0": version "1.10.0" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" + resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz" integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + "@apollo/protobufjs@1.2.6": version "1.2.6" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.6.tgz#d601e65211e06ae1432bf5993a1a0105f2862f27" + resolved "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz" integrity sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw== dependencies: "@protobufjs/aspromise" "^1.1.2" @@ -28,7 +36,7 @@ "@apollo/protobufjs@1.2.7": version "1.2.7" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.7.tgz#3a8675512817e4a046a897e5f4f16415f16a7d8a" + resolved "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz" integrity sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg== dependencies: "@protobufjs/aspromise" "^1.1.2" @@ -46,19 +54,19 @@ "@apollo/usage-reporting-protobuf@^4.0.0": version "4.1.1" - resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz#407c3d18c7fbed7a264f3b9a3812620b93499de1" + resolved "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz" integrity sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA== dependencies: "@apollo/protobufjs" "1.2.7" "@apollo/utils.dropunuseddefinitions@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929" + resolved "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz" integrity sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg== "@apollo/utils.keyvaluecache@^1.0.1": version "1.0.2" - resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz#2bfe358c4d82f3a0950518451996758c52613f57" + resolved "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz" integrity sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg== dependencies: "@apollo/utils.logger" "^1.0.0" @@ -66,34 +74,34 @@ "@apollo/utils.logger@^1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.1.tgz#aea0d1bb7ceb237f506c6bbf38f10a555b99a695" + resolved "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz" integrity sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA== "@apollo/utils.printwithreducedwhitespace@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz#c466299a4766eef8577a2a64c8f27712e8bd7e30" + resolved "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz" integrity sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q== "@apollo/utils.removealiases@1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz#75f6d83098af1fcae2d3beb4f515ad4a8452a8c1" + resolved "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz" integrity sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A== "@apollo/utils.sortast@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz#93218c7008daf3e2a0725196085a33f5aab5ad07" + resolved "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz" integrity sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA== dependencies: lodash.sortby "^4.7.0" "@apollo/utils.stripsensitiveliterals@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz#4920651f36beee8e260e12031a0c5863ad0c7b28" + resolved "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz" integrity sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w== "@apollo/utils.usagereporting@^1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz#3c70b49e554771659576fe35381c7a4b321d27fd" + resolved "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz" integrity sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ== dependencies: "@apollo/usage-reporting-protobuf" "^4.0.0" @@ -105,32 +113,24 @@ "@apollographql/apollo-tools@^0.5.3": version "0.5.4" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c" + resolved "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz" integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw== "@apollographql/graphql-playground-html@1.6.29": version "1.6.29" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" + resolved "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz" integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== dependencies: xss "^1.0.8" -"@aptos-labs/aptos-client@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-client/-/aptos-client-0.1.0.tgz#911fb27e436e5731290de0e0cfce6e0d3feeabaa" - integrity sha512-q3s6pPq8H2buGp+tPuIRInWsYOuhSEwuNJPwd2YnsiID3YSLihn2ug39ktDJAcSOprUcp7Nid8WK7hKqnUmSdA== - dependencies: - axios "1.6.2" - got "^11.8.6" - "@assemblyscript/loader@^0.19.23": version "0.19.23" - resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.19.23.tgz#7fccae28d0a2692869f1d1219d36093bc24d5e72" + resolved "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.19.23.tgz" integrity sha512-ulkCYfFbYj01ie1MDOyxv2F6SpRN1TOj7fQxbP07D6HmeR+gr2JLSmINKjga2emB+b1L2KGrFKBTc+e00p54nw== "@aws-amplify/api-graphql@3.4.11": version "3.4.11" - resolved "https://registry.yarnpkg.com/@aws-amplify/api-graphql/-/api-graphql-3.4.11.tgz#da999cee2d33c52521ba2c7f5ca445c6e4f519ed" + resolved "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-3.4.11.tgz" integrity sha512-brvExeD2IRnQZbcWqFeDP5xfM1ANgtsZMGGzW75Tmw4gKCQPlYcBb/mQXTVsa7AJfIgxLrSYmhlu7drTTtyBnQ== dependencies: "@aws-amplify/api-rest" "3.5.5" @@ -145,7 +145,7 @@ "@aws-amplify/api-rest@3.5.5": version "3.5.5" - resolved "https://registry.yarnpkg.com/@aws-amplify/api-rest/-/api-rest-3.5.5.tgz#2cce71c82b0925f5ea859ba0769a0405130cc5c6" + resolved "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-3.5.5.tgz" integrity sha512-tGR5yLoIC0gPcI8VyAbd7dZ8GdFMz/EEU7aG0HsAsg46Oig5VTtKa8xWV8w+dWXjzr9I2/jkpZtDfRD57PqiBg== dependencies: "@aws-amplify/core" "5.8.5" @@ -155,7 +155,7 @@ "@aws-amplify/api@^5.0.14", "@aws-amplify/api@^5.0.19": version "5.4.5" - resolved "https://registry.yarnpkg.com/@aws-amplify/api/-/api-5.4.5.tgz#c6d51597d4f1923e8add17af37dc45802da0e0bd" + resolved "https://registry.npmjs.org/@aws-amplify/api/-/api-5.4.5.tgz" integrity sha512-mZMIR3w1PiUP5S41Z1j5SL5h/aY1dConndLwC7eOE4GHoGSlFUjZdrsTTRFEH8uFAg6CJ0nj/Ww8pEL+MU5FlQ== dependencies: "@aws-amplify/api-graphql" "3.4.11" @@ -164,7 +164,7 @@ "@aws-amplify/auth@5.6.5": version "5.6.5" - resolved "https://registry.yarnpkg.com/@aws-amplify/auth/-/auth-5.6.5.tgz#9280bf36f5aacc9b0af55fdb9ad8629fe4425e81" + resolved "https://registry.npmjs.org/@aws-amplify/auth/-/auth-5.6.5.tgz" integrity sha512-NkBbYe3kV4LXj/VBeh0/HTZCNjhs8gB1frfJ2r1ZG3j+Q3taeKV4jhZcM1SyRbFh5ZGHiVSJPVefgBPi7UXBrw== dependencies: "@aws-amplify/core" "5.8.5" @@ -175,15 +175,15 @@ "@aws-amplify/cache@5.1.11": version "5.1.11" - resolved "https://registry.yarnpkg.com/@aws-amplify/cache/-/cache-5.1.11.tgz#b85a621042dc9c9eb43d812d2c07e4b927520bdf" + resolved "https://registry.npmjs.org/@aws-amplify/cache/-/cache-5.1.11.tgz" integrity sha512-o8ju6RAbGOv8MXDJuLM2Fc5yl23pLfp1jdijlMjxBn+uXonV3B7YCtpJtjj3MW6RUY0xEZrz7fEfTp9Pa1Y7+Q== dependencies: "@aws-amplify/core" "5.8.5" tslib "^1.8.0" -"@aws-amplify/core@5.8.5", "@aws-amplify/core@^5.1.2": +"@aws-amplify/core@^5.1.2", "@aws-amplify/core@5.8.5": version "5.8.5" - resolved "https://registry.yarnpkg.com/@aws-amplify/core/-/core-5.8.5.tgz#b9d55ddecd477636b0a0a2ea015280dfdb5a54e3" + resolved "https://registry.npmjs.org/@aws-amplify/core/-/core-5.8.5.tgz" integrity sha512-R7zB+VUyNRT/7GCfBfWOIz2vy70VbHNfhotbdyo02ZVcc4vyXt+tsdZvvMSm1SB5uQ411jiAfDmTvOzLOIaJsA== dependencies: "@aws-crypto/sha256-js" "1.2.2" @@ -199,7 +199,7 @@ "@aws-amplify/pubsub@5.5.5": version "5.5.5" - resolved "https://registry.yarnpkg.com/@aws-amplify/pubsub/-/pubsub-5.5.5.tgz#e07f545c536b54f872484331343f0e55154e6f2e" + resolved "https://registry.npmjs.org/@aws-amplify/pubsub/-/pubsub-5.5.5.tgz" integrity sha512-hRKMDxZrYA7srdTAhLbgluqKsm8zyoP6vOcXpx75Lut9OUfEEP5AixR4D4cyqX0B/0Ji1lRl9T7aUBcMFfFvCw== dependencies: "@aws-amplify/auth" "5.6.5" @@ -214,14 +214,14 @@ "@aws-crypto/ie11-detection@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-1.0.0.tgz#d3a6af29ba7f15458f79c41d1cd8cac3925e726a" + resolved "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-1.0.0.tgz" integrity sha512-kCKVhCF1oDxFYgQrxXmIrS5oaWulkvRcPz+QBDMsUr2crbF4VGgGT6+uQhSwJFdUAQ2A//Vq+uT83eJrkzFgXA== dependencies: tslib "^1.11.1" "@aws-crypto/sha256-browser@^1.0.0": version "1.2.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-1.2.2.tgz#004d806e3bbae130046c259ec3279a02d4a0b576" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-1.2.2.tgz" integrity sha512-0tNR4kBtJp+9S0kis4+JLab3eg6QWuIeuPhzaYoYwNUXGBgsWIkktA2mnilet+EGWzf3n1zknJXC4X4DVyyXbg== dependencies: "@aws-crypto/ie11-detection" "^1.0.0" @@ -232,9 +232,9 @@ "@aws-sdk/util-locate-window" "^3.0.0" tslib "^1.11.1" -"@aws-crypto/sha256-js@1.2.2", "@aws-crypto/sha256-js@^1.0.0", "@aws-crypto/sha256-js@^1.2.2": +"@aws-crypto/sha256-js@^1.0.0", "@aws-crypto/sha256-js@^1.2.2", "@aws-crypto/sha256-js@1.2.2": version "1.2.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz" integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== dependencies: "@aws-crypto/util" "^1.2.2" @@ -243,14 +243,14 @@ "@aws-crypto/supports-web-crypto@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-1.0.0.tgz#c40901bc17ac1e875e248df16a2b47ad8bfd9a93" + resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-1.0.0.tgz" integrity sha512-IHLfv+WmVH89EW4n6a5eE8/hUlz6qkWGMn/v4r5ZgzcXdTC5nolii2z3k46y01hWRiC2PPhOdeSLzMUCUMco7g== dependencies: tslib "^1.11.1" "@aws-crypto/util@^1.2.2": version "1.2.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-1.2.2.tgz#b28f7897730eb6538b21c18bd4de22d0ea09003c" + resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-1.2.2.tgz" integrity sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg== dependencies: "@aws-sdk/types" "^3.1.0" @@ -259,7 +259,7 @@ "@aws-sdk/abort-controller@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.6.1.tgz#75812875bbef6ad17e0e3a6d96aab9df636376f9" + resolved "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.6.1.tgz" integrity sha512-X81XkxX/2Tvv9YNcEto/rcQzPIdKJHFSnl9hBl/qkSdCFV/GaQ2XNWfKm5qFXMLlZNFS0Fn5CnBJ83qnBm47vg== dependencies: "@aws-sdk/types" "3.6.1" @@ -267,7 +267,7 @@ "@aws-sdk/client-cloudwatch-logs@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.6.1.tgz#5e8dba495a2ba9a901b0a1a2d53edef8bd452398" + resolved "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.6.1.tgz" integrity sha512-QOxIDnlVTpnwJ26Gap6RGz61cDLH6TKrIp30VqwdMeT1pCGy8mn9rWln6XA+ymkofHy/08RfpGp+VN4axwd4Lw== dependencies: "@aws-crypto/sha256-browser" "^1.0.0" @@ -304,7 +304,7 @@ "@aws-sdk/config-resolver@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.6.1.tgz#3bcc5e6a0ebeedf0981b0540e1f18a72b4dafebf" + resolved "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.6.1.tgz" integrity sha512-qjP1g3jLIm+XvOIJ4J7VmZRi87vsDmTRzIFePVeG+EFWwYQLxQjTGMdIj3yKTh1WuZ0HByf47mGcpiS4HZLm1Q== dependencies: "@aws-sdk/signature-v4" "3.6.1" @@ -313,7 +313,7 @@ "@aws-sdk/credential-provider-env@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.6.1.tgz#d8b2dd36836432a9b8ec05a5cf9fe428b04c9964" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.6.1.tgz" integrity sha512-coeFf/HnhpGidcAN1i1NuFgyFB2M6DeN1zNVy4f6s4mAh96ftr9DgWM1CcE3C+cLHEdpNqleVgC/2VQpyzOBLQ== dependencies: "@aws-sdk/property-provider" "3.6.1" @@ -322,7 +322,7 @@ "@aws-sdk/credential-provider-imds@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.6.1.tgz#b5a8b8ef15eac26c58e469451a6c7c34ab3ca875" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.6.1.tgz" integrity sha512-bf4LMI418OYcQbyLZRAW8Q5AYM2IKrNqOnIcfrFn2f17ulG7TzoWW3WN/kMOw4TC9+y+vIlCWOv87GxU1yP0Bg== dependencies: "@aws-sdk/property-provider" "3.6.1" @@ -331,7 +331,7 @@ "@aws-sdk/credential-provider-ini@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.6.1.tgz#0da6d9341e621f8e0815814ed017b88e268fbc3d" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.6.1.tgz" integrity sha512-3jguW6+ttRNddRZvbrs1yb3F1jrUbqyv0UfRoHuOGthjTt+L9sDpJaJGugYnT3bS9WBu1NydLVE2kDV++mJGVw== dependencies: "@aws-sdk/property-provider" "3.6.1" @@ -341,7 +341,7 @@ "@aws-sdk/credential-provider-node@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.6.1.tgz#0055292a4f0f49d053e8dfcc9174d8d2cf6862bb" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.6.1.tgz" integrity sha512-VAHOcsqkPrF1k/fA62pv9c75lUWe5bHpcbFX83C3EUPd2FXV10Lfkv6bdWhyZPQy0k8T+9/yikHH3c7ZQeFE5A== dependencies: "@aws-sdk/credential-provider-env" "3.6.1" @@ -355,7 +355,7 @@ "@aws-sdk/credential-provider-process@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.6.1.tgz#5bf851f3ee232c565b8c82608926df0ad28c1958" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.6.1.tgz" integrity sha512-d0/TpMoEV4qMYkdpyyjU2Otse9X2jC1DuxWajHOWZYEw8oejMvXYTZ10hNaXZvAcNM9q214rp+k4mkt6gIcI6g== dependencies: "@aws-sdk/credential-provider-ini" "3.6.1" @@ -366,7 +366,7 @@ "@aws-sdk/fetch-http-handler@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.6.1.tgz#c5fb4a4ee158161fca52b220d2c11dddcda9b092" + resolved "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.6.1.tgz" integrity sha512-N8l6ZbwhINuWG5hsl625lmIQmVjzsqRPmlgh061jm5D90IhsM5/3A3wUxpB/k0av1dmuMRw/m0YtBU5w4LOwvw== dependencies: "@aws-sdk/protocol-http" "3.6.1" @@ -377,7 +377,7 @@ "@aws-sdk/hash-node@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.6.1.tgz#72d75ec3b9c7e7f9b0c498805364f1f897165ce9" + resolved "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.6.1.tgz" integrity sha512-iKEpzpyaG9PYCnaOGwTIf0lffsF/TpsXrzAfnBlfeOU/3FbgniW2z/yq5xBbtMDtLobtOYC09kUFwDnDvuveSA== dependencies: "@aws-sdk/types" "3.6.1" @@ -386,7 +386,7 @@ "@aws-sdk/invalid-dependency@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.6.1.tgz#fd2519f5482c6d6113d38a73b7143fd8d5b5b670" + resolved "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.6.1.tgz" integrity sha512-d0RLqK7yeDCZJKopnGmGXo2rYkQNE7sGKVmBHQD1j1kKZ9lWwRoJeWqo834JNPZzY5XRvZG5SuIjJ1kFy8LpyQ== dependencies: "@aws-sdk/types" "3.6.1" @@ -394,14 +394,14 @@ "@aws-sdk/is-array-buffer@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.6.1.tgz#96df5d64b2d599947f81b164d5d92623f85c659c" + resolved "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.6.1.tgz" integrity sha512-qm2iDJmCrxlQE2dsFG+TujPe7jw4DF+4RTrsFMhk/e3lOl3MAzQ6Fc2kXtgeUcVrZVFTL8fQvXE1ByYyI6WbCw== dependencies: tslib "^1.8.0" "@aws-sdk/middleware-content-length@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.6.1.tgz#f9c00a4045b2b56c1ff8bcbb3dec9c3d42332992" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.6.1.tgz" integrity sha512-QRcocG9f5YjYzbjs2HjKla6ZIjvx8Y8tm1ZSFOPey81m18CLif1O7M3AtJXvxn+0zeSck9StFdhz5gfjVNYtDg== dependencies: "@aws-sdk/protocol-http" "3.6.1" @@ -410,7 +410,7 @@ "@aws-sdk/middleware-host-header@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.6.1.tgz#6e1b4b95c5bfea5a4416fa32f11d8fa2e6edaeff" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.6.1.tgz" integrity sha512-nwq8R2fGBRZQE0Fr/jiOgqfppfiTQCUoD8hyX3qSS7Qc2uqpsDOt2TnnoZl56mpQYkF/344IvMAkp+ew6wR73w== dependencies: "@aws-sdk/protocol-http" "3.6.1" @@ -419,7 +419,7 @@ "@aws-sdk/middleware-logger@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.6.1.tgz#78b3732cf188d5e4df13488db6418f7f98a77d6d" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.6.1.tgz" integrity sha512-zxaSLpwKlja7JvK20UsDTxPqBZUo3rbDA1uv3VWwpxzOrEWSlVZYx/KLuyGWGkx9V71ZEkf6oOWWJIstS0wyQQ== dependencies: "@aws-sdk/types" "3.6.1" @@ -427,7 +427,7 @@ "@aws-sdk/middleware-retry@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.6.1.tgz#202aadb1a3bf0e1ceabcd8319a5fa308b32db247" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.6.1.tgz" integrity sha512-WHeo4d2jsXxBP+cec2SeLb0btYXwYXuE56WLmNt0RvJYmiBzytUeGJeRa9HuwV574kgigAuHGCeHlPO36G4Y0Q== dependencies: "@aws-sdk/protocol-http" "3.6.1" @@ -439,7 +439,7 @@ "@aws-sdk/middleware-serde@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.6.1.tgz#734c7d16c2aa9ccc01f6cca5e2f6aa2993b6739d" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.6.1.tgz" integrity sha512-EdQCFZRERfP3uDuWcPNuaa2WUR3qL1WFDXafhcx+7ywQxagdYqBUWKFJlLYi6njbkOKXFM+eHBzoXGF0OV3MJA== dependencies: "@aws-sdk/types" "3.6.1" @@ -447,7 +447,7 @@ "@aws-sdk/middleware-signing@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.6.1.tgz#e70a2f35d85d70e33c9fddfb54b9520f6382db16" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.6.1.tgz" integrity sha512-1woKq+1sU3eausdl8BNdAMRZMkSYuy4mxhLsF0/qAUuLwo1eJLLUCOQp477tICawgu4O4q2OAyUHk7wMqYnQCg== dependencies: "@aws-sdk/protocol-http" "3.6.1" @@ -457,14 +457,14 @@ "@aws-sdk/middleware-stack@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.6.1.tgz#d7483201706bb5935a62884e9b60f425f1c6434f" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.6.1.tgz" integrity sha512-EPsIxMi8LtCt7YwTFpWGlVGYJc0q4kwFbOssY02qfqdCnyqi2y5wo089dH7OdxUooQ0D7CPsXM1zTTuzvm+9Fw== dependencies: tslib "^1.8.0" "@aws-sdk/middleware-user-agent@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.6.1.tgz#6845dfb3bc6187897f348c2c87dec833e6a65c99" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.6.1.tgz" integrity sha512-YvXvwllNDVvxQ30vIqLsx+P6jjnfFEQUmhlv64n98gOme6h2BqoyQDcC3yHRGctuxRZEsR7W/H1ASTKC+iabbQ== dependencies: "@aws-sdk/protocol-http" "3.6.1" @@ -473,7 +473,7 @@ "@aws-sdk/node-config-provider@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.6.1.tgz#cb85d06329347fde566f08426f8714b1f65d2fb7" + resolved "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.6.1.tgz" integrity sha512-x2Z7lm0ZhHYqMybvkaI5hDKfBkaLaXhTDfgrLl9TmBZ3QHO4fIHgeL82VZ90Paol+OS+jdq2AheLmzbSxv3HrA== dependencies: "@aws-sdk/property-provider" "3.6.1" @@ -483,7 +483,7 @@ "@aws-sdk/node-http-handler@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.6.1.tgz#4b65c4dcc0cf46ba44cb6c3bf29c5f817bb8d9a7" + resolved "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.6.1.tgz" integrity sha512-6XSaoqbm9ZF6T4UdBCcs/Gn2XclwBotkdjj46AxO+9vRAgZDP+lH/8WwZsvfqJhhRhS0qxWrks98WGJwmaTG8g== dependencies: "@aws-sdk/abort-controller" "3.6.1" @@ -494,7 +494,7 @@ "@aws-sdk/property-provider@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.6.1.tgz#d973fc87d199d32c44d947e17f2ee2dd140a9593" + resolved "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.6.1.tgz" integrity sha512-2gR2DzDySXKFoj9iXLm1TZBVSvFIikEPJsbRmAZx5RBY+tp1IXWqZM6PESjaLdLg/ZtR0QhW2ZcRn0fyq2JfnQ== dependencies: "@aws-sdk/types" "3.6.1" @@ -502,7 +502,7 @@ "@aws-sdk/protocol-http@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.6.1.tgz#d3d276846bec19ddb339d06bbc48116d17bbc656" + resolved "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.6.1.tgz" integrity sha512-WkQz7ncVYTLvCidDfXWouDzqxgSNPZDz3Bql+7VhZeITnzAEcr4hNMyEqMAVYBVugGmkG2W6YiUqNNs1goOcDA== dependencies: "@aws-sdk/types" "3.6.1" @@ -510,7 +510,7 @@ "@aws-sdk/querystring-builder@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.6.1.tgz#4c769829a3760ef065d0d3801f297a7f0cd324d4" + resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.6.1.tgz" integrity sha512-ESe255Yl6vB1AMNqaGSQow3TBYYnpw0AFjE40q2VyiNrkbaqKmW2EzjeCy3wEmB1IfJDHy3O12ZOMUMOnjFT8g== dependencies: "@aws-sdk/types" "3.6.1" @@ -519,7 +519,7 @@ "@aws-sdk/querystring-parser@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.6.1.tgz#e3fa5a710429c7dd411e802a0b82beb48012cce2" + resolved "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.6.1.tgz" integrity sha512-hh6dhqamKrWWaDSuO2YULci0RGwJWygoy8hpCRxs/FpzzHIcbm6Cl6Jhrn5eKBzOBv+PhCcYwbfad0kIZZovcQ== dependencies: "@aws-sdk/types" "3.6.1" @@ -527,19 +527,19 @@ "@aws-sdk/service-error-classification@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.6.1.tgz#296fe62ac61338341e8a009c9a2dab013a791903" + resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.6.1.tgz" integrity sha512-kZ7ZhbrN1f+vrSRkTJvXsu7BlOyZgym058nPA745+1RZ1Rtv4Ax8oknf2RvJyj/1qRUi8LBaAREjzQ3C8tmLBA== "@aws-sdk/shared-ini-file-loader@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.6.1.tgz#2b7182cbb0d632ad7c9712bebffdeee24a6f7eb6" + resolved "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.6.1.tgz" integrity sha512-BnLHtsNLOoow6rPV+QVi6jnovU5g1m0YzoUG0BQYZ1ALyVlWVr0VvlUX30gMDfdYoPMp+DHvF8GXdMuGINq6kQ== dependencies: tslib "^1.8.0" "@aws-sdk/signature-v4@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.6.1.tgz#b20a3cf3e891131f83b012651f7d4af2bf240611" + resolved "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.6.1.tgz" integrity sha512-EAR0qGVL4AgzodZv4t+BSuBfyOXhTNxDxom50IFI1MqidR9vI6avNZKcPHhgXbm7XVcsDGThZKbzQ2q7MZ2NTA== dependencies: "@aws-sdk/is-array-buffer" "3.6.1" @@ -550,29 +550,29 @@ "@aws-sdk/smithy-client@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.6.1.tgz#683fef89802e318922f8529a5433592d71a7ce9d" + resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.6.1.tgz" integrity sha512-AVpRK4/iUxNeDdAm8UqP0ZgtgJMQeWcagTylijwelhWXyXzHUReY1sgILsWcdWnoy6gq845W7K2VBhBleni8+w== dependencies: "@aws-sdk/middleware-stack" "3.6.1" "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/types@3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.6.1.tgz#00686db69e998b521fcd4a5f81ef0960980f80c4" - integrity sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g== - "@aws-sdk/types@^3.1.0": version "3.428.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.428.0.tgz#fcb62a5fc38c4e579dc2b251194483aaad393df0" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.428.0.tgz" integrity sha512-4T0Ps2spjg3qbWE6ZK13Vd3FnzpfliaiotqjxUK5YhjDrKXeT36HJp46JhDupElQuHtTkpdiJOSYk2lvY2H4IA== dependencies: "@smithy/types" "^2.3.5" tslib "^2.5.0" +"@aws-sdk/types@3.6.1": + version "3.6.1" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz" + integrity sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g== + "@aws-sdk/url-parser-native@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser-native/-/url-parser-native-3.6.1.tgz#a5e787f98aafa777e73007f9490df334ef3389a2" + resolved "https://registry.npmjs.org/@aws-sdk/url-parser-native/-/url-parser-native-3.6.1.tgz" integrity sha512-3O+ktsrJoE8YQCho9L41YXO8EWILXrSeES7amUaV3mgIV5w4S3SB/r4RkmylpqRpQF7Ry8LFiAnMqH1wa4WBPA== dependencies: "@aws-sdk/querystring-parser" "3.6.1" @@ -582,7 +582,7 @@ "@aws-sdk/url-parser@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.6.1.tgz#f5d89fb21680469a61cb9fe08a7da3ef887884dd" + resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.6.1.tgz" integrity sha512-pWFIePDx0PMCleQRsQDWoDl17YiijOLj0ZobN39rQt+wv5PhLSZDz9PgJsqS48nZ6hqsKgipRcjiBMhn5NtFcQ== dependencies: "@aws-sdk/querystring-parser" "3.6.1" @@ -591,14 +591,14 @@ "@aws-sdk/util-base64-browser@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-browser/-/util-base64-browser-3.6.1.tgz#eddea1311b41037fc3fddd889d3e0a9882363215" + resolved "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.6.1.tgz" integrity sha512-+DHAIgt0AFARDVC7J0Z9FkSmJhBMlkYdOPeAAgO0WaQoKj7rtsLQJ7P3v3aS1paKN5/sk5xNY7ziVB6uHtOvHA== dependencies: tslib "^1.8.0" "@aws-sdk/util-base64-node@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-node/-/util-base64-node-3.6.1.tgz#a79c233861e50d3a30728c72b736afdee07d4009" + resolved "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.6.1.tgz" integrity sha512-oiqzpsvtTSS92+cL3ykhGd7t3qBJKeHvrgOwUyEf1wFWHQ2DPJR+dIMy5rMFRXWLKCl3w7IddY2rJCkLYMjaqQ== dependencies: "@aws-sdk/util-buffer-from" "3.6.1" @@ -606,21 +606,21 @@ "@aws-sdk/util-body-length-browser@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.6.1.tgz#2e8088f2d9a5a8258b4f56079a8890f538c2797e" + resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.6.1.tgz" integrity sha512-IdWwE3rm/CFDk2F+IwTZOFTnnNW5SB8y1lWiQ54cfc7y03hO6jmXNnpZGZ5goHhT+vf1oheNQt1J47m0pM/Irw== dependencies: tslib "^1.8.0" "@aws-sdk/util-body-length-node@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.6.1.tgz#6e4f2eae46c5a7b0417a12ca7f4b54c390d4cacd" + resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.6.1.tgz" integrity sha512-CUG3gc18bSOsqViQhB3M4AlLpAWV47RE6yWJ6rLD0J6/rSuzbwbjzxM39q0YTAVuSo/ivdbij+G9c3QCirC+QQ== dependencies: tslib "^1.8.0" "@aws-sdk/util-buffer-from@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.6.1.tgz#24184ce74512f764d84002201b7f5101565e26f9" + resolved "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.6.1.tgz" integrity sha512-OGUh2B5NY4h7iRabqeZ+EgsrzE1LUmNFzMyhoZv0tO4NExyfQjxIYXLQQvydeOq9DJUbCw+yrRZrj8vXNDQG+g== dependencies: "@aws-sdk/is-array-buffer" "3.6.1" @@ -628,28 +628,28 @@ "@aws-sdk/util-hex-encoding@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.6.1.tgz#84954fcc47b74ffbd2911ba5113e93bd9b1c6510" + resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.6.1.tgz" integrity sha512-pzsGOHtU2eGca4NJgFg94lLaeXDOg8pcS9sVt4f9LmtUGbrqRveeyBv0XlkHeZW2n0IZBssPHipVYQFlk7iaRA== dependencies: tslib "^1.8.0" "@aws-sdk/util-locate-window@^3.0.0": version "3.310.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz#b071baf050301adee89051032bd4139bba32cc40" + resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz" integrity sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w== dependencies: tslib "^2.5.0" "@aws-sdk/util-uri-escape@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.6.1.tgz#433e87458bb510d0e457a86c0acf12b046a5068c" + resolved "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.6.1.tgz" integrity sha512-tgABiT71r0ScRJZ1pMX0xO0QPMMiISCtumph50IU5VDyZWYgeIxqkMhIcrL1lX0QbNCMgX0n6rZxGrrbjDNavA== dependencies: tslib "^1.8.0" "@aws-sdk/util-user-agent-browser@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.6.1.tgz#11b9cc8743392761adb304460f4b54ec8acc2ee6" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.6.1.tgz" integrity sha512-KhJ4VED4QpuBVPXoTjb5LqspX1xHWJTuL8hbPrKfxj+cAaRRW2CNEe7PPy2CfuHtPzP3dU3urtGTachbwNb0jg== dependencies: "@aws-sdk/types" "3.6.1" @@ -658,82 +658,1031 @@ "@aws-sdk/util-user-agent-node@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.6.1.tgz#98384095fa67d098ae7dd26f3ccaad028e8aebb6" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.6.1.tgz" integrity sha512-PWwL5EDRwhkXX40m5jjgttlBmLA7vDhHBen1Jcle0RPIDFRVPSE7GgvLF3y4r3SNH0WD6hxqadT50bHQynXW6w== dependencies: "@aws-sdk/node-config-provider" "3.6.1" "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/util-utf8-browser@3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.6.1.tgz#97a8770cae9d29218adc0f32c7798350261377c7" - integrity sha512-gZPySY6JU5gswnw3nGOEHl3tYE7vPKvtXGYoS2NRabfDKRejFvu+4/nNW6SSpoOxk6LSXsrWB39NO51k+G4PVA== - dependencies: - tslib "^1.8.0" - "@aws-sdk/util-utf8-browser@^3.0.0": version "3.259.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz" integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== dependencies: tslib "^2.3.1" +"@aws-sdk/util-utf8-browser@3.6.1": + version "3.6.1" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.6.1.tgz" + integrity sha512-gZPySY6JU5gswnw3nGOEHl3tYE7vPKvtXGYoS2NRabfDKRejFvu+4/nNW6SSpoOxk6LSXsrWB39NO51k+G4PVA== + dependencies: + tslib "^1.8.0" + "@aws-sdk/util-utf8-node@3.6.1": version "3.6.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.6.1.tgz#18534c2069b61f5739ee4cdc70060c9f4b4c4c4f" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.6.1.tgz" integrity sha512-4s0vYfMUn74XLn13rUUhNsmuPMh0j1d4rF58wXtjlVUU78THxonnN8mbCLC48fI3fKDHTmDDkeEqy7+IWP9VyA== dependencies: "@aws-sdk/util-buffer-from" "3.6.1" tslib "^1.8.0" -"@babel/runtime@7.20.13": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz" + integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== + dependencies: + "@babel/highlight" "^7.25.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.7", "@babel/compat-data@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz" + integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA== + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.20.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz" + integrity sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.25.7" + "@babel/generator" "^7.25.7" + "@babel/helper-compilation-targets" "^7.25.7" + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helpers" "^7.25.7" + "@babel/parser" "^7.25.8" + "@babel/template" "^7.25.7" + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.8" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.20.0", "@babel/generator@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz" + integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA== + dependencies: + "@babel/types" "^7.25.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz" + integrity sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA== + dependencies: + "@babel/types" "^7.25.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz" + integrity sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz" + integrity sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A== + dependencies: + "@babel/compat-data" "^7.25.7" + "@babel/helper-validator-option" "^7.25.7" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz" + integrity sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.7" + "@babel/helper-member-expression-to-functions" "^7.25.7" + "@babel/helper-optimise-call-expression" "^7.25.7" + "@babel/helper-replace-supers" "^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" + "@babel/traverse" "^7.25.7" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz" + integrity sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.7" + regexpu-core "^6.1.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz" + integrity sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz" + integrity sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-module-transforms@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz" + integrity sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ== + dependencies: + "@babel/helper-module-imports" "^7.25.7" + "@babel/helper-simple-access" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/helper-optimise-call-expression@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz" + integrity sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng== + dependencies: + "@babel/types" "^7.25.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.8.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz" + integrity sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw== + +"@babel/helper-remap-async-to-generator@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz" + integrity sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.7" + "@babel/helper-wrap-function" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/helper-replace-supers@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz" + integrity sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.25.7" + "@babel/helper-optimise-call-expression" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/helper-simple-access@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz" + integrity sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz" + integrity sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA== + dependencies: + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helper-string-parser@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz" + integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g== + +"@babel/helper-validator-identifier@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz" + integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== + +"@babel/helper-validator-option@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz" + integrity sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ== + +"@babel/helper-wrap-function@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz" + integrity sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg== + dependencies: + "@babel/template" "^7.25.7" + "@babel/traverse" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/helpers@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz" + integrity sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA== + dependencies: + "@babel/template" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/highlight@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz" + integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw== + dependencies: + "@babel/helper-validator-identifier" "^7.25.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.13.16", "@babel/parser@^7.20.0", "@babel/parser@^7.25.7", "@babel/parser@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz" + integrity sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ== dependencies: - regenerator-runtime "^0.13.11" + "@babel/types" "^7.25.8" -"@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" - integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz" + integrity sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ== dependencies: - regenerator-runtime "^0.14.0" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/traverse" "^7.25.7" -"@cbor-extract/cbor-extract-darwin-arm64@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.1.1.tgz#5721f6dd3feae0b96d23122853ce977e0671b7a6" - integrity sha512-blVBy5MXz6m36Vx0DfLd7PChOQKEs8lK2bD1WJn/vVgG4FXZiZmZb2GECHFvVPA5T7OnODd9xZiL3nMCv6QUhA== +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz" + integrity sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" -"@cbor-extract/cbor-extract-darwin-x64@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.1.1.tgz#c25e7d0133950d87d101d7b3afafea8d50d83f5f" - integrity sha512-h6KFOzqk8jXTvkOftyRIWGrd7sKQzQv2jVdTL9nKSf3D2drCvQB/LHUxAOpPXo3pv2clDtKs3xnHalpEh3rDsw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz" + integrity sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" -"@cbor-extract/cbor-extract-linux-arm64@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.1.1.tgz#48f78e7d8f0fcc84ed074b6bfa6d15dd83187c63" - integrity sha512-SxAaRcYf8S0QHaMc7gvRSiTSr7nUYMqbUdErBEu+HYA4Q6UNydx1VwFE68hGcp1qvxcy9yT5U7gA+a5XikfwSQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz" + integrity sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" + "@babel/plugin-transform-optional-chaining" "^7.25.7" -"@cbor-extract/cbor-extract-linux-arm@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.1.1.tgz#7507d346389cb682e44fab8fae9534edd52e2e41" - integrity sha512-ds0uikdcIGUjPyraV4oJqyVE5gl/qYBpa/Wnh6l6xLE2lj/hwnjT2XcZCChdXwW/YFZ1LUHs6waoYN8PmK0nKQ== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz" + integrity sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/plugin-proposal-class-properties@^7.13.0": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-export-default-from@^7.0.0": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.8.tgz" + integrity sha512-5SLPHA/Gk7lNdaymtSVS9jH77Cs7yuHTR3dYj+9q+M7R7tNLXhNuvnmOfafRIzpWL+dtMibuu1I4ofrc768Gkw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.21.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-default-from@^7.0.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.7.tgz" + integrity sha512-LRUCsC0YucSjabsmxx6yly8+Q/5mxKdp9gemlpR9ro3bfpcOQOXx/CHivs7QCbjgygd6uQ2GcRfHu1FVax/hgg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz" + integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-flow@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.25.7.tgz" + integrity sha512-fyoj6/YdVtlv2ROig/J0fP7hh/wNO1MJGm1NR70Pg7jbkF+jOUL9joorqaCOQh06Y+LfgTagHzC8KqZ3MF782w== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-syntax-import-assertions@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz" + integrity sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-syntax-import-attributes@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz" + integrity sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-jsx@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz" + integrity sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-typescript@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz" + integrity sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz" + integrity sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-async-generator-functions@^7.24.3", "@babel/plugin-transform-async-generator-functions@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz" + integrity sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-remap-async-to-generator" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz" + integrity sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg== + dependencies: + "@babel/helper-module-imports" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-remap-async-to-generator" "^7.25.7" + +"@babel/plugin-transform-block-scoped-functions@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz" + integrity sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz" + integrity sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-class-properties@^7.24.1", "@babel/plugin-transform-class-properties@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz" + integrity sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-class-static-block@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz" + integrity sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz" + integrity sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.7" + "@babel/helper-compilation-targets" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-replace-supers" "^7.25.7" + "@babel/traverse" "^7.25.7" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz" + integrity sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/template" "^7.25.7" + +"@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz" + integrity sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-dotall-regex@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz" + integrity sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-duplicate-keys@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz" + integrity sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz" + integrity sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-dynamic-import@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz" + integrity sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-exponentiation-operator@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz" + integrity sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-export-namespace-from@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz" + integrity sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.7.tgz" + integrity sha512-q8Td2PPc6/6I73g96SreSUCKEcwMXCwcXSIAVTyTTN6CpJe0dMj8coxu1fg1T9vfBLi6Rsi6a4ECcFBbKabS5w== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/plugin-syntax-flow" "^7.25.7" + +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz" + integrity sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" + +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz" + integrity sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ== + dependencies: + "@babel/helper-compilation-targets" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/plugin-transform-json-strings@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz" + integrity sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz" + integrity sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.1", "@babel/plugin-transform-logical-assignment-operators@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz" + integrity sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-member-expression-literals@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz" + integrity sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-modules-amd@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz" + integrity sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA== + dependencies: + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.8", "@babel/plugin-transform-modules-commonjs@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz" + integrity sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg== + dependencies: + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-simple-access" "^7.25.7" + +"@babel/plugin-transform-modules-systemjs@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz" + integrity sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g== + dependencies: + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" + "@babel/traverse" "^7.25.7" + +"@babel/plugin-transform-modules-umd@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz" + integrity sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw== + dependencies: + "@babel/helper-module-transforms" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz" + integrity sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-new-target@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz" + integrity sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz" + integrity sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-numeric-separator@^7.24.1", "@babel/plugin-transform-numeric-separator@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz" + integrity sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-object-rest-spread@^7.24.5", "@babel/plugin-transform-object-rest-spread@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz" + integrity sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g== + dependencies: + "@babel/helper-compilation-targets" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/plugin-transform-parameters" "^7.25.7" + +"@babel/plugin-transform-object-super@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz" + integrity sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-replace-supers" "^7.25.7" + +"@babel/plugin-transform-optional-catch-binding@^7.24.1", "@babel/plugin-transform-optional-catch-binding@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz" + integrity sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-optional-chaining@^7.24.5", "@babel/plugin-transform-optional-chaining@^7.25.7", "@babel/plugin-transform-optional-chaining@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz" + integrity sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz" + integrity sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz" + integrity sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.25.8": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz" + integrity sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.7" + "@babel/helper-create-class-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-property-literals@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz" + integrity sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.7.tgz" + integrity sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz" + integrity sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz" + integrity sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz" + integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.19.0" + +"@babel/plugin-transform-regenerator@^7.20.0", "@babel/plugin-transform-regenerator@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz" + integrity sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz" + integrity sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-runtime@^7.0.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz" + integrity sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg== + dependencies: + "@babel/helper-module-imports" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz" + integrity sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz" + integrity sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" + +"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz" + integrity sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-template-literals@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz" + integrity sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-typeof-symbol@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz" + integrity sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-typescript@^7.25.7", "@babel/plugin-transform-typescript@^7.5.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.7.tgz" + integrity sha512-VKlgy2vBzj8AmEzunocMun2fF06bsSWV+FvVXohtL6FGve/+L217qhHxRTVGHEDO/YR8IANcjzgJsd04J8ge5Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.7" + "@babel/helper-create-class-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" + "@babel/plugin-syntax-typescript" "^7.25.7" + +"@babel/plugin-transform-unicode-escapes@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz" + integrity sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-unicode-property-regex@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz" + integrity sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz" + integrity sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz" + integrity sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + +"@babel/preset-env@^7.1.6": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz" + integrity sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg== + dependencies: + "@babel/compat-data" "^7.25.8" + "@babel/helper-compilation-targets" "^7.25.7" + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-validator-option" "^7.25.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.7" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.25.7" + "@babel/plugin-syntax-import-attributes" "^7.25.7" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.25.7" + "@babel/plugin-transform-async-generator-functions" "^7.25.8" + "@babel/plugin-transform-async-to-generator" "^7.25.7" + "@babel/plugin-transform-block-scoped-functions" "^7.25.7" + "@babel/plugin-transform-block-scoping" "^7.25.7" + "@babel/plugin-transform-class-properties" "^7.25.7" + "@babel/plugin-transform-class-static-block" "^7.25.8" + "@babel/plugin-transform-classes" "^7.25.7" + "@babel/plugin-transform-computed-properties" "^7.25.7" + "@babel/plugin-transform-destructuring" "^7.25.7" + "@babel/plugin-transform-dotall-regex" "^7.25.7" + "@babel/plugin-transform-duplicate-keys" "^7.25.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.7" + "@babel/plugin-transform-dynamic-import" "^7.25.8" + "@babel/plugin-transform-exponentiation-operator" "^7.25.7" + "@babel/plugin-transform-export-namespace-from" "^7.25.8" + "@babel/plugin-transform-for-of" "^7.25.7" + "@babel/plugin-transform-function-name" "^7.25.7" + "@babel/plugin-transform-json-strings" "^7.25.8" + "@babel/plugin-transform-literals" "^7.25.7" + "@babel/plugin-transform-logical-assignment-operators" "^7.25.8" + "@babel/plugin-transform-member-expression-literals" "^7.25.7" + "@babel/plugin-transform-modules-amd" "^7.25.7" + "@babel/plugin-transform-modules-commonjs" "^7.25.7" + "@babel/plugin-transform-modules-systemjs" "^7.25.7" + "@babel/plugin-transform-modules-umd" "^7.25.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.7" + "@babel/plugin-transform-new-target" "^7.25.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.8" + "@babel/plugin-transform-numeric-separator" "^7.25.8" + "@babel/plugin-transform-object-rest-spread" "^7.25.8" + "@babel/plugin-transform-object-super" "^7.25.7" + "@babel/plugin-transform-optional-catch-binding" "^7.25.8" + "@babel/plugin-transform-optional-chaining" "^7.25.8" + "@babel/plugin-transform-parameters" "^7.25.7" + "@babel/plugin-transform-private-methods" "^7.25.7" + "@babel/plugin-transform-private-property-in-object" "^7.25.8" + "@babel/plugin-transform-property-literals" "^7.25.7" + "@babel/plugin-transform-regenerator" "^7.25.7" + "@babel/plugin-transform-reserved-words" "^7.25.7" + "@babel/plugin-transform-shorthand-properties" "^7.25.7" + "@babel/plugin-transform-spread" "^7.25.7" + "@babel/plugin-transform-sticky-regex" "^7.25.7" + "@babel/plugin-transform-template-literals" "^7.25.7" + "@babel/plugin-transform-typeof-symbol" "^7.25.7" + "@babel/plugin-transform-unicode-escapes" "^7.25.7" + "@babel/plugin-transform-unicode-property-regex" "^7.25.7" + "@babel/plugin-transform-unicode-regex" "^7.25.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.25.7" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.38.1" + semver "^6.3.1" + +"@babel/preset-flow@^7.13.13": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.25.7.tgz" + integrity sha512-q2x3g0YHzo/Ohsr51KOYS/BtZMsvkzVd8qEyhZAyTatYdobfgXCuyppTqTuIhdq5kR/P3nyyVvZ6H5dMc4PnCQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-validator-option" "^7.25.7" + "@babel/plugin-transform-flow-strip-types" "^7.25.7" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-typescript@^7.13.0": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz" + integrity sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.7" + "@babel/helper-validator-option" "^7.25.7" + "@babel/plugin-syntax-jsx" "^7.25.7" + "@babel/plugin-transform-modules-commonjs" "^7.25.7" + "@babel/plugin-transform-typescript" "^7.25.7" + +"@babel/register@^7.13.16": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.25.7.tgz" + integrity sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q== + dependencies: + clone-deep "^4.0.1" + find-cache-dir "^2.0.0" + make-dir "^2.1.0" + pirates "^4.0.6" + source-map-support "^0.5.16" + +"@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.25.0", "@babel/runtime@^7.8.4": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz" + integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@7.20.13": + version "7.20.13" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/template@^7.0.0", "@babel/template@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz" + integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA== + dependencies: + "@babel/code-frame" "^7.25.7" + "@babel/parser" "^7.25.7" + "@babel/types" "^7.25.7" + +"@babel/traverse@^7.20.0", "@babel/traverse@^7.25.7": + version "7.25.7" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz" + integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== + dependencies: + "@babel/code-frame" "^7.25.7" + "@babel/generator" "^7.25.7" + "@babel/parser" "^7.25.7" + "@babel/template" "^7.25.7" + "@babel/types" "^7.25.7" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.25.7", "@babel/types@^7.25.8", "@babel/types@^7.4.4": + version "7.25.8" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz" + integrity sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg== + dependencies: + "@babel/helper-string-parser" "^7.25.7" + "@babel/helper-validator-identifier" "^7.25.7" + to-fast-properties "^2.0.0" "@cbor-extract/cbor-extract-linux-x64@2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.1.1.tgz#b7c1d2be61c58ec18d58afbad52411ded63cd4cd" + resolved "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.1.1.tgz" integrity sha512-GVK+8fNIE9lJQHAlhOROYiI0Yd4bAZ4u++C2ZjlkS3YmO6hi+FUxe6Dqm+OKWTcMpL/l71N6CQAmaRcb4zyJuA== -"@cbor-extract/cbor-extract-win32-x64@2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.1.1.tgz#21b11a1a3f18c3e7d62fd5f87438b7ed2c64c1f7" - integrity sha512-2Niq1C41dCRIDeD8LddiH+mxGlO7HJ612Ll3D/E73ZWBmycued+8ghTr/Ho3CMOWPUEr08XtyBMVXAjqF+TcKw== - "@cosmjs/crypto@^0.28.4": version "0.28.13" - resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.28.13.tgz#541b6a36f616b2da5a568ead46d4e83841ceb412" + resolved "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.13.tgz" integrity sha512-ynKfM0q/tMBQMHJby6ad8lR3gkgBKaelQhIsCZTjClsnuC7oYT9y3ThSZCUWr7Pa9h0J8ahU2YV2oFWFVWJQzQ== dependencies: "@cosmjs/encoding" "0.28.13" @@ -744,9 +1693,9 @@ elliptic "^6.5.3" libsodium-wrappers "^0.7.6" -"@cosmjs/encoding@0.28.13", "@cosmjs/encoding@^0.28.4": +"@cosmjs/encoding@^0.28.4", "@cosmjs/encoding@0.28.13": version "0.28.13" - resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.28.13.tgz#7994e8e2c435beaf0690296ffb0f7f3eaec8150b" + resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.13.tgz" integrity sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA== dependencies: base64-js "^1.3.0" @@ -755,19 +1704,19 @@ "@cosmjs/math@0.28.13": version "0.28.13" - resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.28.13.tgz#50c05bc67007a04216f7f5e0c93f57270f8cc077" + resolved "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.13.tgz" integrity sha512-PDpL8W/kbyeWi0mQ2OruyqE8ZUAdxPs1xCbDX3WXJwy2oU+X2UTbkuweJHVpS9CIqmZulBoWQAmlf6t6zr1N/g== dependencies: bn.js "^5.2.0" "@cosmjs/utils@0.28.13": version "0.28.13" - resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.28.13.tgz#2fd2844ec832d7833811e2ae1691305d09791a08" + resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.13.tgz" integrity sha512-dVeMBiyg+46x7XBZEfJK8yTihphbCFpjVYmLJVqmTsHfJwymQ65cpyW/C+V/LgWARGK8hWQ/aX9HM5Ao8QmMSg== "@ethereumjs/common@^2.6.4": version "2.6.5" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== dependencies: crc-32 "^1.2.0" @@ -775,12 +1724,12 @@ "@ethereumjs/rlp@^4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + resolved "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz" integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== "@ethereumjs/tx@3.5.2": version "3.5.2" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== dependencies: "@ethereumjs/common" "^2.6.4" @@ -788,16 +1737,16 @@ "@ethereumjs/util@^8.0.6": version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + resolved "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz" integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== dependencies: "@ethereumjs/rlp" "^4.0.1" ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@^5.7.0", "@ethersproject/abi@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== dependencies: "@ethersproject/address" "^5.7.0" @@ -810,9 +1759,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -823,9 +1772,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -834,9 +1783,9 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": +"@ethersproject/address@^5.7.0", "@ethersproject/address@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -845,47 +1794,47 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@^5.7.0", "@ethersproject/basex@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@5.7.0", "@ethersproject/contracts@^5.2.0": +"@ethersproject/contracts@^5.2.0", "@ethersproject/contracts@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== dependencies: "@ethersproject/abi" "^5.7.0" @@ -899,9 +1848,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.7.0", "@ethersproject/hash@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -914,9 +1863,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": +"@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -932,9 +1881,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": +"@ethersproject/json-wallets@^5.7.0", "@ethersproject/json-wallets@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== dependencies: "@ethersproject/abstract-signer" "^5.7.0" @@ -951,44 +1900,44 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": +"@ethersproject/pbkdf2@^5.7.0", "@ethersproject/pbkdf2@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.2.0", "@ethersproject/providers@^5.7.2": +"@ethersproject/providers@^5.2.0", "@ethersproject/providers@^5.7.2", "@ethersproject/providers@5.7.2": version "5.7.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -1012,34 +1961,34 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": +"@ethersproject/random@^5.7.0", "@ethersproject/random@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@^5.7.0", "@ethersproject/sha2@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": +"@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -1051,7 +2000,7 @@ "@ethersproject/solidity@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== dependencies: "@ethersproject/bignumber" "^5.7.0" @@ -1061,18 +2010,18 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== dependencies: "@ethersproject/address" "^5.7.0" @@ -1085,18 +2034,18 @@ "@ethersproject/rlp" "^5.7.0" "@ethersproject/signing-key" "^5.7.0" -"@ethersproject/units@5.7.0", "@ethersproject/units@^5.4.0": +"@ethersproject/units@^5.4.0", "@ethersproject/units@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== dependencies: "@ethersproject/bignumber" "^5.7.0" "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/wallet@5.7.0", "@ethersproject/wallet@^5.2.0", "@ethersproject/wallet@^5.7.0": +"@ethersproject/wallet@^5.2.0", "@ethersproject/wallet@^5.7.0", "@ethersproject/wallet@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== dependencies: "@ethersproject/abstract-provider" "^5.7.0" @@ -1115,9 +2064,9 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": version "5.7.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== dependencies: "@ethersproject/base64" "^5.7.0" @@ -1126,9 +2075,9 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": +"@ethersproject/wordlists@^5.7.0", "@ethersproject/wordlists@5.7.0": version "5.7.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== dependencies: "@ethersproject/bytes" "^5.7.0" @@ -1139,17 +2088,17 @@ "@fastify/busboy@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" + resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz" integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== "@gar/promisify@^1.0.1": version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@google-cloud/paginator@^3.0.7": version "3.0.7" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-3.0.7.tgz#fb6f8e24ec841f99defaebf62c75c2e744dd419b" + resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz" integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== dependencies: arrify "^2.0.0" @@ -1157,17 +2106,17 @@ "@google-cloud/projectify@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-3.0.0.tgz#302b25f55f674854dce65c2532d98919b118a408" + resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-3.0.0.tgz" integrity sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA== "@google-cloud/promisify@^3.0.0": version "3.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-3.0.1.tgz#8d724fb280f47d1ff99953aee0c1669b25238c2e" + resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-3.0.1.tgz" integrity sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA== "@google-cloud/storage@^6.9.1": version "6.12.0" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-6.12.0.tgz#a5d3093cc075252dca5bd19a3cfda406ad3a9de1" + resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.12.0.tgz" integrity sha512-78nNAY7iiZ4O/BouWMWTD/oSF2YtYgYB3GZirn0To6eBOugjXVoK+GXgUXOl+HlqbAOyHxAVXOlsj3snfbQ1dw== dependencies: "@google-cloud/paginator" "^3.0.7" @@ -1189,25 +2138,25 @@ teeny-request "^8.0.0" uuid "^8.0.0" -"@graphql-tools/merge@8.3.1": - version "8.3.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722" - integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== - dependencies: - "@graphql-tools/utils" "8.9.0" - tslib "^2.4.0" - "@graphql-tools/merge@^8.4.1": version "8.4.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz" integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== dependencies: "@graphql-tools/utils" "^9.2.1" tslib "^2.4.0" +"@graphql-tools/merge@8.3.1": + version "8.3.1" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz" + integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== + dependencies: + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + "@graphql-tools/mock@^8.1.2": version "8.7.20" - resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20" + resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz" integrity sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ== dependencies: "@graphql-tools/schema" "^9.0.18" @@ -1217,7 +2166,7 @@ "@graphql-tools/schema@^8.0.0": version "8.5.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz" integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== dependencies: "@graphql-tools/merge" "8.3.1" @@ -1227,7 +2176,7 @@ "@graphql-tools/schema@^9.0.18": version "9.0.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz" integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== dependencies: "@graphql-tools/merge" "^8.4.1" @@ -1235,29 +2184,29 @@ tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/utils@8.9.0": - version "8.9.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" - integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== - dependencies: - tslib "^2.4.0" - "@graphql-tools/utils@^9.2.1": version "9.2.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz" integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== dependencies: "@graphql-typed-document-node/core" "^3.1.1" tslib "^2.4.0" +"@graphql-tools/utils@8.9.0": + version "8.9.0" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz" + integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== + dependencies: + tslib "^2.4.0" + "@graphql-typed-document-node/core@^3.1.1": version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== "@grpc/grpc-js@^1.1.0": version "1.9.5" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.5.tgz#22e283754b7b10d1ad26c3fb21849028dcaabc53" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.5.tgz" integrity sha512-iouYNlPxRAwZ2XboDT+OfRKHuaKHiqjB5VFYZ0NFrHkbEF+AV3muIUY9olQsp8uxU4VvRCMiRk9ftzFDGb61aw== dependencies: "@grpc/proto-loader" "^0.7.8" @@ -1265,7 +2214,7 @@ "@grpc/grpc-js@~1.1.8": version "1.1.8" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.1.8.tgz#2845f0fc3d1bfbb150ed7a78a76bdf41b126d367" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.8.tgz" integrity sha512-64hg5rmEm6F/NvlWERhHmmgxbWU8nD2TMWE+9TvG7/WcOrFT3fzg/Uu631pXRFwmJ4aWO/kp9vVSlr8FUjBDLA== dependencies: "@grpc/proto-loader" "^0.6.0-pre14" @@ -1275,7 +2224,7 @@ "@grpc/proto-loader@^0.5.0", "@grpc/proto-loader@~0.5.0": version "0.5.6" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.6.tgz" integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ== dependencies: lodash.camelcase "^4.3.0" @@ -1283,7 +2232,7 @@ "@grpc/proto-loader@^0.6.0-pre14": version "0.6.13" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.13.tgz#008f989b72a40c60c96cd4088522f09b05ac66bc" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz" integrity sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g== dependencies: "@types/long" "^4.0.1" @@ -1294,7 +2243,7 @@ "@grpc/proto-loader@^0.7.8": version "0.7.10" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz" integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== dependencies: lodash.camelcase "^4.3.0" @@ -1302,19 +2251,31 @@ protobufjs "^7.2.4" yargs "^17.7.2" +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hexagon/base64@^1.1.25": version "1.1.28" - resolved "https://registry.yarnpkg.com/@hexagon/base64/-/base64-1.1.28.tgz#7d306a97f1423829be5b27c9d388fe50e3099d48" + resolved "https://registry.npmjs.org/@hexagon/base64/-/base64-1.1.28.tgz" integrity sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw== "@iden3/bigarray@0.0.2": version "0.0.2" - resolved "https://registry.yarnpkg.com/@iden3/bigarray/-/bigarray-0.0.2.tgz#6fc4ba5be18daf8a26ee393f2fb62b80d98c05e9" + resolved "https://registry.npmjs.org/@iden3/bigarray/-/bigarray-0.0.2.tgz" integrity sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g== "@iden3/binfileutils@0.0.12": version "0.0.12" - resolved "https://registry.yarnpkg.com/@iden3/binfileutils/-/binfileutils-0.0.12.tgz#3772552f57551814ff606fa68ea1e0ef52795ce3" + resolved "https://registry.npmjs.org/@iden3/binfileutils/-/binfileutils-0.0.12.tgz" integrity sha512-naAmzuDufRIcoNfQ1d99d7hGHufLA3wZSibtr4dMe6ZeiOPV1KwOZWTJ1YVz4HbaWlpDuzVU72dS4ATQS4PXBQ== dependencies: fastfile "0.0.20" @@ -1322,7 +2283,7 @@ "@idena/vrf-js@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@idena/vrf-js/-/vrf-js-1.0.1.tgz#ae893dd7590a8650044b936b921ff426091fe871" + resolved "https://registry.npmjs.org/@idena/vrf-js/-/vrf-js-1.0.1.tgz" integrity sha512-XYC/6j3PKZ9O9eqNqjVQrpdD0oRN+eScnicK7o6Q9scRfWQOsZNIewRUJ1rNEOUr0uqlOrs8Nm/kBhmrjp+2tg== dependencies: bn.js "^5.1.3" @@ -1333,7 +2294,7 @@ "@irys/arweave@^0.0.2": version "0.0.2" - resolved "https://registry.yarnpkg.com/@irys/arweave/-/arweave-0.0.2.tgz#c0e73eb8c15e323342d33ea92701d4036fd22ae3" + resolved "https://registry.npmjs.org/@irys/arweave/-/arweave-0.0.2.tgz" integrity sha512-ddE5h4qXbl0xfGlxrtBIwzflaxZUDlDs43TuT0u1OMfyobHul4AA1VEX72Rpzw2bOh4vzoytSqA1jCM7x9YtHg== dependencies: asn1.js "^5.4.1" @@ -1342,14 +2303,118 @@ base64-js "^1.5.1" bignumber.js "^9.1.1" +"@isaacs/ttlcache@^1.4.1": + version "1.4.1" + resolved "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz" + integrity sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA== + +"@jest/create-cache-key-function@^29.6.3": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz" + integrity sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA== + dependencies: + "@jest/types" "^29.6.3" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@josephg/resolvable@^1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" + resolved "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@json-rpc-tools/provider@^1.5.5": version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/provider/-/provider-1.7.6.tgz#8a17c34c493fa892632e278fd9331104e8491ec6" + resolved "https://registry.npmjs.org/@json-rpc-tools/provider/-/provider-1.7.6.tgz" integrity sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA== dependencies: "@json-rpc-tools/utils" "^1.7.6" @@ -1359,14 +2424,14 @@ "@json-rpc-tools/types@^1.7.6": version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/types/-/types-1.7.6.tgz#5abd5fde01364a130c46093b501715bcce5bdc0e" + resolved "https://registry.npmjs.org/@json-rpc-tools/types/-/types-1.7.6.tgz" integrity sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ== dependencies: keyvaluestorage-interface "^1.0.0" "@json-rpc-tools/utils@^1.7.6": version "1.7.6" - resolved "https://registry.yarnpkg.com/@json-rpc-tools/utils/-/utils-1.7.6.tgz#67f04987dbaa2e7adb6adff1575367b75a9a9ba1" + resolved "https://registry.npmjs.org/@json-rpc-tools/utils/-/utils-1.7.6.tgz" integrity sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw== dependencies: "@json-rpc-tools/types" "^1.7.6" @@ -1374,14 +2439,14 @@ "@koa/cors@^3.1.0": version "3.4.3" - resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.4.3.tgz#d669ee6e8d6e4f0ec4a7a7b0a17e7a3ed3752ebb" + resolved "https://registry.npmjs.org/@koa/cors/-/cors-3.4.3.tgz" integrity sha512-WPXQUaAeAMVaLTEFpoq3T2O1C+FstkjJnDQqy95Ck1UdILajsRhu6mhJ8H2f4NFPRBoCNN+qywTJfq/gGki5mw== dependencies: vary "^1.1.2" "@lit-protocol/sdk-browser@^1.3.3": version "1.3.4" - resolved "https://registry.yarnpkg.com/@lit-protocol/sdk-browser/-/sdk-browser-1.3.4.tgz#312c527f4c22e4fcefbd3445da743e08ea7fb561" + resolved "https://registry.npmjs.org/@lit-protocol/sdk-browser/-/sdk-browser-1.3.4.tgz" integrity sha512-ex+gn8Gq1za3OVm/6PpRfcUuM1nX1Qh9cFoEgl7Z8Vu4k01lJwOdUSMJk0bSwAWLbDQP5mn33foG0cs1uOU8Nw== dependencies: "@ethersproject/bytes" "^5.5.0" @@ -1407,39 +2472,14 @@ tweetnacl-util "^0.15.1" utf-8-validate "^5.0.8" -"@lmdb/lmdb-darwin-arm64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e" - integrity sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw== - -"@lmdb/lmdb-darwin-x64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz#ca243534c8b37d5516c557e4624256d18dd63184" - integrity sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug== - -"@lmdb/lmdb-linux-arm64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz#b44a8023057e21512eefb9f6120096843b531c1e" - integrity sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww== - -"@lmdb/lmdb-linux-arm@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz#17bd54740779c3e4324e78e8f747c21416a84b3d" - integrity sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg== - "@lmdb/lmdb-linux-x64@2.8.5": version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz#6c61835b6cc58efdf79dbd5e8c72a38300a90302" + resolved "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz" integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ== -"@lmdb/lmdb-win32-x64@2.8.5": - version "2.8.5" - resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz#8233e8762440b0f4632c47a09b1b6f23de8b934c" - integrity sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ== - "@metamask/eth-sig-util@^4.0.1": version "4.0.1" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== dependencies: ethereumjs-abi "^0.6.8" @@ -1450,7 +2490,7 @@ "@metamask/eth-sig-util@^5.0.2": version "5.1.0" - resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-5.1.0.tgz#a47f62800ee1917fef976ba67544a0ccd7d1bd6b" + resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-5.1.0.tgz" integrity sha512-mlgziIHYlA9pi/XZerChqg4NocdOgBPB9NmxgXWQO2U2hH8RGOJQrz6j/AIKkYxgCMIE2PY000+joOwXfzeTDQ== dependencies: "@ethereumjs/util" "^8.0.6" @@ -1462,108 +2502,111 @@ "@metamask/legacy-web3@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@metamask/legacy-web3/-/legacy-web3-2.0.0.tgz#10c506791ef248d79909ff6321a6b25a3f3d2549" + resolved "https://registry.npmjs.org/@metamask/legacy-web3/-/legacy-web3-2.0.0.tgz" integrity sha512-hR5sbVR0wU3sXMXx2btRBKYzzTkBNTYoZbPHqqB7UARwxm9yEe9C/Y79YyciyzC9cnKetNV6s6VAwNQp5LNpLw== -"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": +"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" - integrity sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ== - -"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz#f954f34355712212a8e06c465bc06c40852c6bb3" - integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw== - -"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz#45c63037f045c2b15c44f80f0393fa24f9655367" - integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg== - -"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz#35707efeafe6d22b3f373caf9e8775e8920d1399" - integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA== - -"@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz#091b1218b66c341f532611477ef89e83f25fae4f" + resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz" integrity sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA== -"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" - integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== - "@noble/ciphers@^0.2.0": version "0.2.0" - resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-0.2.0.tgz#a12cda60f3cf1ab5d7c77068c3711d2366649ed7" + resolved "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.2.0.tgz" integrity sha512-6YBxJDAapHSdd3bLDv6x2wRPwq4QFMUaB3HvljNBUTThDd12eSm7/3F+2lnfzx2jvM+S6Nsy0jEt9QbPqSwqRw== -"@noble/curves@1.1.0", "@noble/curves@~1.1.0": +"@noble/curves@^0.9.0": + version "0.9.1" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz" + integrity sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ== + dependencies: + "@noble/hashes" "1.3.0" + +"@noble/curves@^1.4.2": + version "1.6.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz" + integrity sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ== + dependencies: + "@noble/hashes" "1.5.0" + +"@noble/curves@~1.1.0", "@noble/curves@1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz" integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== dependencies: "@noble/hashes" "1.3.1" "@noble/curves@1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== dependencies: "@noble/hashes" "1.3.2" -"@noble/curves@^0.9.0": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-0.9.1.tgz#0ad33ebee0fdc870e1afcd74daa06f188e89b8fe" - integrity sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ== - dependencies: - "@noble/hashes" "1.3.0" - "@noble/ed25519@^1.6.1": version "1.7.3" - resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" + resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz" integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== +"@noble/hashes@^1": + version "1.4.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@noble/hashes@^1.1.5", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1", "@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/hashes@^1.4.0", "@noble/hashes@1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz" + integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA== + "@noble/hashes@1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== "@noble/hashes@1.3.0": version "1.3.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz" integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== "@noble/hashes@1.3.1": version "1.3.1" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== -"@noble/hashes@1.3.2", "@noble/hashes@^1.1.5", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@noble/hashes@1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" - integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== - -"@noble/hashes@^1": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" - integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== - "@noble/secp256k1@1.7.1": version "1.7.1" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@npmcli/fs@^1.0.0": version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz" integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" @@ -1571,16 +2614,16 @@ "@npmcli/move-file@^1.0.1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" rimraf "^3.0.2" -"@opencensus/core@0.0.9": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@opencensus/core/-/core-0.0.9.tgz#b16f775435ee309433e4126af194d37313fc93b3" - integrity sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q== +"@opencensus/core@^0.0.8": + version "0.0.8" + resolved "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz" + integrity sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ== dependencies: continuation-local-storage "^3.2.1" log-driver "^1.2.7" @@ -1588,10 +2631,10 @@ shimmer "^1.2.0" uuid "^3.2.1" -"@opencensus/core@^0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@opencensus/core/-/core-0.0.8.tgz#df01f200c2d2fbfe14dae129a1a86fb87286db92" - integrity sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ== +"@opencensus/core@0.0.9": + version "0.0.9" + resolved "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz" + integrity sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q== dependencies: continuation-local-storage "^3.2.1" log-driver "^1.2.7" @@ -1601,7 +2644,7 @@ "@opencensus/propagation-b3@0.0.8": version "0.0.8" - resolved "https://registry.yarnpkg.com/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz#0751e6fd75f09400d9d3c419001e9e15a0df68e9" + resolved "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz" integrity sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A== dependencies: "@opencensus/core" "^0.0.8" @@ -1609,14 +2652,14 @@ "@paralleldrive/cuid2@^2.2.0": version "2.2.2" - resolved "https://registry.yarnpkg.com/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz#7f91364d53b89e2c9cb9e02e8dd0f129e834455f" + resolved "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz" integrity sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA== dependencies: "@noble/hashes" "^1.1.5" "@peculiar/asn1-android@^2.3.3": version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-android/-/asn1-android-2.3.6.tgz#20363c23bc5b9a91f7ffd80d7c3842dccff8c20b" + resolved "https://registry.npmjs.org/@peculiar/asn1-android/-/asn1-android-2.3.6.tgz" integrity sha512-zkYh4DsiRhiNfg6tWaUuRc+huwlb9XJbmeZLrjTz9v76UK1Ehq3EnfJFED6P3sdznW/nqWe46LoM9JrqxcD58g== dependencies: "@peculiar/asn1-schema" "^2.3.6" @@ -1625,7 +2668,7 @@ "@peculiar/asn1-ecc@^2.3.4": version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.3.6.tgz#f155f33f5c61df463d9b33b911d25578a19694b7" + resolved "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.6.tgz" integrity sha512-Hu1xzMJQWv8/GvzOiinaE6XiD1/kEhq2C/V89UEoWeZ2fLUcGNIvMxOr/pMyL0OmpRWj/mhCTXOZp4PP+a0aTg== dependencies: "@peculiar/asn1-schema" "^2.3.6" @@ -1635,7 +2678,7 @@ "@peculiar/asn1-rsa@^2.3.4": version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.3.6.tgz#e2af2c52a914c60f33853a86a48905ec555b29c2" + resolved "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.6.tgz" integrity sha512-DswjJyAXZnvESuImGNTvbNKvh1XApBVqU+r3UmrFFTAI23gv62byl0f5OFKWTNhCf66WQrd3sklpsCZc/4+jwA== dependencies: "@peculiar/asn1-schema" "^2.3.6" @@ -1645,7 +2688,7 @@ "@peculiar/asn1-schema@^2.3.3", "@peculiar/asn1-schema@^2.3.6": version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" + resolved "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz" integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== dependencies: asn1js "^3.0.5" @@ -1654,7 +2697,7 @@ "@peculiar/asn1-x509@^2.3.4", "@peculiar/asn1-x509@^2.3.6": version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.3.6.tgz#e50154a460cdf43da8a41b23ee807a53e0036af0" + resolved "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.6.tgz" integrity sha512-dRwX31R1lcbIdzbztiMvLNTDoGptxdV7HocNx87LfKU0fEWh7fTWJjx4oV+glETSy6heF/hJHB2J4RGB3vVSYg== dependencies: "@peculiar/asn1-schema" "^2.3.6" @@ -1665,14 +2708,14 @@ "@peculiar/json-schema@^1.1.12": version "1.1.12" - resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + resolved "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz" integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== dependencies: tslib "^2.0.0" "@peculiar/webcrypto@^1.4.3": version "1.4.3" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + resolved "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz" integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== dependencies: "@peculiar/asn1-schema" "^2.3.6" @@ -1683,12 +2726,35 @@ "@pedrouid/environment@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" + resolved "https://registry.npmjs.org/@pedrouid/environment/-/environment-1.0.1.tgz" integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== +"@permaweb/ao-scheduler-utils@~0.0.23": + version "0.0.24" + resolved "https://registry.npmjs.org/@permaweb/ao-scheduler-utils/-/ao-scheduler-utils-0.0.24.tgz" + integrity sha512-G6109Nz8+dQFPuG7mV8mz66kLVA+gl2uTSqU7qpaRwfujrWi6obM94CpmvyvAnrLo3dB29EYiuv7+KOKcns8ig== + dependencies: + lru-cache "^10.2.2" + ramda "^0.30.0" + zod "^3.23.5" + +"@permaweb/aoconnect@^0.0.59": + version "0.0.59" + resolved "https://registry.npmjs.org/@permaweb/aoconnect/-/aoconnect-0.0.59.tgz" + integrity sha512-AgnUv50hp3BVvqWk2IOw3p9ksF2GblFwQHCIWqwTYjvdViCPlsL4gx/BefxFqbMABXQ5q2QJItMJLlPelqC2CQ== + dependencies: + "@permaweb/ao-scheduler-utils" "~0.0.23" + buffer "^6.0.3" + debug "^4.3.6" + hyper-async "^1.1.2" + mnemonist "^0.39.8" + ramda "^0.30.1" + warp-arbundles "^1.0.4" + zod "^3.23.8" + "@pm2/agent@~2.0.0": version "2.0.3" - resolved "https://registry.yarnpkg.com/@pm2/agent/-/agent-2.0.3.tgz#6b47fda837f185864767fe1e048f61d1de31fc45" + resolved "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.3.tgz" integrity sha512-xkqqCoTf5VsciMqN0vb9jthW7olVAi4KRFNddCc7ZkeJZ3i8QwZANr4NSH2H5DvseRFHq7MiPspRY/EWAFWWTg== dependencies: async "~3.2.0" @@ -1707,7 +2773,7 @@ "@pm2/io@~5.0.0": version "5.0.2" - resolved "https://registry.yarnpkg.com/@pm2/io/-/io-5.0.2.tgz#5e4177281280082d7c490bb776fad7f8448c6bca" + resolved "https://registry.npmjs.org/@pm2/io/-/io-5.0.2.tgz" integrity sha512-XAvrNoQPKOyO/jJyCu8jPhLzlyp35MEf7w/carHXmWKddPzeNOFSEpSEqMzPDawsvpxbE+i918cNN+MwgVsStA== dependencies: "@opencensus/core" "0.0.9" @@ -1723,7 +2789,7 @@ "@pm2/js-api@~0.6.7": version "0.6.7" - resolved "https://registry.yarnpkg.com/@pm2/js-api/-/js-api-0.6.7.tgz#ed28c3b7b6d26f03f826318754fdc5468afa589f" + resolved "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz" integrity sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw== dependencies: async "^2.6.3" @@ -1734,14 +2800,14 @@ "@pm2/pm2-version-check@latest": version "1.0.4" - resolved "https://registry.yarnpkg.com/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz#cf97fbb14b0eca95430ca05eedccbd2683806e43" + resolved "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz" integrity sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA== dependencies: debug "^4.3.1" "@polkadot/networks@10.4.2": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-10.4.2.tgz#d7878c6aad8173c800a21140bfe5459261724456" + resolved "https://registry.npmjs.org/@polkadot/networks/-/networks-10.4.2.tgz" integrity sha512-FAh/znrEvWBiA/LbcT5GXHsCFUl//y9KqxLghSr/CreAmAergiJNT0MVUezC7Y36nkATgmsr4ylFwIxhVtuuCw== dependencies: "@babel/runtime" "^7.20.13" @@ -1750,7 +2816,7 @@ "@polkadot/util-crypto@^10.1.11": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-10.4.2.tgz#871fb69c65768bd48c57bb5c1f76a85d979fb8b5" + resolved "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.4.2.tgz" integrity sha512-RxZvF7C4+EF3fzQv8hZOLrYCBq5+wA+2LWv98nECkroChY3C2ZZvyWDqn8+aonNULt4dCVTWDZM0QIY6y4LUAQ== dependencies: "@babel/runtime" "^7.20.13" @@ -1765,9 +2831,9 @@ ed2curve "^0.3.0" tweetnacl "^1.0.3" -"@polkadot/util@10.4.2", "@polkadot/util@^10.1.11": +"@polkadot/util@*", "@polkadot/util@^10.1.11", "@polkadot/util@10.4.2": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-10.4.2.tgz#df41805cb27f46b2b4dad24c371fa2a68761baa1" + resolved "https://registry.npmjs.org/@polkadot/util/-/util-10.4.2.tgz" integrity sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA== dependencies: "@babel/runtime" "^7.20.13" @@ -1780,21 +2846,21 @@ "@polkadot/wasm-bridge@6.4.1": version "6.4.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz#e97915dd67ba543ec3381299c2a5b9330686e27e" + resolved "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz" integrity sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ== dependencies: "@babel/runtime" "^7.20.6" "@polkadot/wasm-crypto-asmjs@6.4.1": version "6.4.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz#3cc76bbda5ea4a7a860982c64f9565907b312253" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz" integrity sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA== dependencies: "@babel/runtime" "^7.20.6" "@polkadot/wasm-crypto-init@6.4.1": version "6.4.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz#4d9ab0030db52cf177bf707ef8e77aa4ca721668" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz" integrity sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw== dependencies: "@babel/runtime" "^7.20.6" @@ -1804,7 +2870,7 @@ "@polkadot/wasm-crypto-wasm@6.4.1": version "6.4.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz#97180f80583b18f6a13c1054fa5f7e8da40b1028" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz" integrity sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA== dependencies: "@babel/runtime" "^7.20.6" @@ -1812,7 +2878,7 @@ "@polkadot/wasm-crypto@^6.4.1": version "6.4.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz#79310e23ad1ca62362ba893db6a8567154c2536a" + resolved "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz" integrity sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag== dependencies: "@babel/runtime" "^7.20.6" @@ -1824,14 +2890,14 @@ "@polkadot/wasm-util@6.4.1": version "6.4.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz#74aecc85bec427a9225d9874685944ea3dc3ab76" + resolved "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz" integrity sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw== dependencies: "@babel/runtime" "^7.20.6" "@polkadot/x-bigint@10.4.2": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz#7eb2ec732259df48b5a00f07879a1331e05606ec" + resolved "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz" integrity sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg== dependencies: "@babel/runtime" "^7.20.13" @@ -1839,14 +2905,14 @@ "@polkadot/x-global@10.4.2": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-10.4.2.tgz#5662366e3deda0b4c8f024b2d902fa838f9e60a4" + resolved "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.4.2.tgz" integrity sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA== dependencies: "@babel/runtime" "^7.20.13" -"@polkadot/x-randomvalues@10.4.2": +"@polkadot/x-randomvalues@*", "@polkadot/x-randomvalues@10.4.2": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-10.4.2.tgz#895f1220d5a4522a83d8d5014e3c1e03b129893e" + resolved "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.4.2.tgz" integrity sha512-mf1Wbpe7pRZHO0V3V89isPLqZOy5XGX2bCqsfUWHgb1NvV1MMx5TjVjdaYyNlGTiOkAmJKlOHshcfPU2sYWpNg== dependencies: "@babel/runtime" "^7.20.13" @@ -1854,7 +2920,7 @@ "@polkadot/x-textdecoder@10.4.2": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz#93202f3e5ad0e7f75a3fa02d2b8a3343091b341b" + resolved "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz" integrity sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA== dependencies: "@babel/runtime" "^7.20.13" @@ -1862,7 +2928,7 @@ "@polkadot/x-textencoder@10.4.2": version "10.4.2" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz#cd2e6c8a66b0b400a73f0164e99c510fb5c83501" + resolved "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz" integrity sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA== dependencies: "@babel/runtime" "^7.20.13" @@ -1870,27 +2936,27 @@ "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== "@protobufjs/base64@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== "@protobufjs/codegen@^2.0.4": version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== "@protobufjs/eventemitter@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== "@protobufjs/fetch@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== dependencies: "@protobufjs/aspromise" "^1.1.1" @@ -1898,49 +2964,341 @@ "@protobufjs/float@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== "@protobufjs/inquire@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== "@protobufjs/path@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== "@protobufjs/pool@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== "@protobufjs/utf8@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== "@randlabs/communication-bridge@1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@randlabs/communication-bridge/-/communication-bridge-1.0.1.tgz#d1ecfc29157afcbb0ca2d73122d67905eecb5bf3" + resolved "https://registry.npmjs.org/@randlabs/communication-bridge/-/communication-bridge-1.0.1.tgz" integrity sha512-CzS0U8IFfXNK7QaJFE4pjbxDGfPjbXBEsEaCn9FN15F+ouSAEUQkva3Gl66hrkBZOGexKFEWMwUHIDKpZ2hfVg== "@randlabs/myalgo-connect@^1.1.2": version "1.4.2" - resolved "https://registry.yarnpkg.com/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz#ce3ad97b3889ea21da75852187511d3f6be0fa05" + resolved "https://registry.npmjs.org/@randlabs/myalgo-connect/-/myalgo-connect-1.4.2.tgz" integrity sha512-K9hEyUi7G8tqOp7kWIALJLVbGCByhilcy6123WfcorxWwiE1sbQupPyIU5f3YdQK6wMjBsyTWiLW52ZBMp7sXA== dependencies: "@randlabs/communication-bridge" "1.0.1" +"@react-native-community/cli-clean@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-14.1.0.tgz" + integrity sha512-/C4j1yntLo6faztNgZnsDtgpGqa6j0+GYrxOY8LqaKAN03OCnoeUUKO6w78dycbYSGglc1xjJg2RZI/M2oF2AA== + dependencies: + "@react-native-community/cli-tools" "14.1.0" + chalk "^4.1.2" + execa "^5.0.0" + fast-glob "^3.3.2" + +"@react-native-community/cli-config@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-14.1.0.tgz" + integrity sha512-P3FK2rPUJBD1fmQHLgTqpHxsc111pnMdEEFR7KeqprCNz+Qr2QpPxfNy0V7s15tGL5rAv+wpbOGcioIV50EbxA== + dependencies: + "@react-native-community/cli-tools" "14.1.0" + chalk "^4.1.2" + cosmiconfig "^9.0.0" + deepmerge "^4.3.0" + fast-glob "^3.3.2" + joi "^17.2.1" + +"@react-native-community/cli-debugger-ui@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.1.0.tgz" + integrity sha512-+YbeCL0wLcBcqDwraJFGsqzcXu9S+bwTVrfImne/4mT6itfe3Oa93yrOVJgNbstrt5pJHuwpU76ZXfXoiuncsg== + dependencies: + serve-static "^1.13.1" + +"@react-native-community/cli-doctor@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-14.1.0.tgz" + integrity sha512-xIf0oQDRKt7lufUenRwcLYdINGc0x1FSXHaHjd7lQDGT5FJnCEYlIkYEDDgAl5tnVJSvM/IL2c6O+mffkNEPzQ== + dependencies: + "@react-native-community/cli-config" "14.1.0" + "@react-native-community/cli-platform-android" "14.1.0" + "@react-native-community/cli-platform-apple" "14.1.0" + "@react-native-community/cli-platform-ios" "14.1.0" + "@react-native-community/cli-tools" "14.1.0" + chalk "^4.1.2" + command-exists "^1.2.8" + deepmerge "^4.3.0" + envinfo "^7.13.0" + execa "^5.0.0" + node-stream-zip "^1.9.1" + ora "^5.4.1" + semver "^7.5.2" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + yaml "^2.2.1" + +"@react-native-community/cli-platform-android@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-14.1.0.tgz" + integrity sha512-4JnXkAV+ca8XdUhZ7xjgDhXAMwTVjQs8JqiwP7FTYVrayShXy2cBXm/C3HNDoe+oQOF5tPT2SqsDAF2vYTnKiQ== + dependencies: + "@react-native-community/cli-tools" "14.1.0" + chalk "^4.1.2" + execa "^5.0.0" + fast-glob "^3.3.2" + fast-xml-parser "^4.4.1" + logkitty "^0.7.1" + +"@react-native-community/cli-platform-apple@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.1.0.tgz" + integrity sha512-DExd+pZ7hHxXt8I6BBmckeYUxxq7PQ+o4YSmGIeQx0xUpi+f82obBct2WNC3VWU72Jw6obwfoN6Fwe6F7Wxp5Q== + dependencies: + "@react-native-community/cli-tools" "14.1.0" + chalk "^4.1.2" + execa "^5.0.0" + fast-glob "^3.3.2" + fast-xml-parser "^4.4.1" + ora "^5.4.1" + +"@react-native-community/cli-platform-ios@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.1.0.tgz" + integrity sha512-ah/ZTiJXUdCVHujyRJ4OmCL5nTq8OWcURcE3UXa1z0sIIiA8io06n+v5n299T9rtPKMwRtVJlQjtO/nbODABPQ== + dependencies: + "@react-native-community/cli-platform-apple" "14.1.0" + +"@react-native-community/cli-server-api@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-14.1.0.tgz" + integrity sha512-1k2LBQaYsy9RDWFIfKVne3frOye73O33MV6eYMoRPff7wqxHCrsX1CYJQkmwpgVigZHxYwalHj+Axtu3gpomCA== + dependencies: + "@react-native-community/cli-debugger-ui" "14.1.0" + "@react-native-community/cli-tools" "14.1.0" + compression "^1.7.1" + connect "^3.6.5" + errorhandler "^1.5.1" + nocache "^3.0.1" + pretty-format "^26.6.2" + serve-static "^1.13.1" + ws "^6.2.3" + +"@react-native-community/cli-tools@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.1.0.tgz" + integrity sha512-r1KxSu2+OSuhWFoE//1UR7aSTXMLww/UYWQprEw4bSo/kvutGX//4r9ywgXSWp+39udpNN4jQpNTHuWhGZd/Bg== + dependencies: + appdirsjs "^1.2.4" + chalk "^4.1.2" + execa "^5.0.0" + find-up "^5.0.0" + mime "^2.4.1" + open "^6.2.0" + ora "^5.4.1" + semver "^7.5.2" + shell-quote "^1.7.3" + sudo-prompt "^9.0.0" + +"@react-native-community/cli-types@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-14.1.0.tgz" + integrity sha512-aJwZI9mGRx3HdP8U4CGhqjt3S4r8GmeOqv4kRagC1UHDk4QNMC+bZ8JgPA4W7FrGiPey+lJQHMDPAXOo51SOUw== + dependencies: + joi "^17.2.1" + +"@react-native-community/cli@14.1.0": + version "14.1.0" + resolved "https://registry.npmjs.org/@react-native-community/cli/-/cli-14.1.0.tgz" + integrity sha512-k7aTdKNZIec7WMSqMJn9bDVLWPPOaYmshXcnjWy6t5ItsJnREju9p2azMTR5tXY5uIeynose3cxettbhk2Tbnw== + dependencies: + "@react-native-community/cli-clean" "14.1.0" + "@react-native-community/cli-config" "14.1.0" + "@react-native-community/cli-debugger-ui" "14.1.0" + "@react-native-community/cli-doctor" "14.1.0" + "@react-native-community/cli-server-api" "14.1.0" + "@react-native-community/cli-tools" "14.1.0" + "@react-native-community/cli-types" "14.1.0" + chalk "^4.1.2" + commander "^9.4.1" + deepmerge "^4.3.0" + execa "^5.0.0" + find-up "^5.0.0" + fs-extra "^8.1.0" + graceful-fs "^4.1.3" + prompts "^2.4.2" + semver "^7.5.2" + +"@react-native/assets-registry@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.75.4.tgz" + integrity sha512-WX6/LNHwyjislSFM+h3qQjBiPaXXPJW5ZV4TdgNKb6QOPO0g1KGYRQj44cI2xSpZ3fcWrvQFZfQgSMbVK9Sg7A== + +"@react-native/babel-plugin-codegen@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.4.tgz" + integrity sha512-gu5ZRIdr7+ufi09DJROhfDtbF4biTnCDJqtqcmtsku4cXOXPHE36QbC/vAmKEZ0PMPURBI8lwF2wfaeHLn7gig== + dependencies: + "@react-native/codegen" "0.75.4" + +"@react-native/babel-preset@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.75.4.tgz" + integrity sha512-UtyYCDJ3rZIeggyFEfh/q5t/FZ5a1h9F8EI37Nbrwyk/OKPH+1XS4PbHROHJzBARlJwOAfmT75+ovYUO0eakJA== + dependencies: + "@babel/core" "^7.20.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.18.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" + "@babel/plugin-transform-async-to-generator" "^7.20.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-class-properties" "^7.24.1" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.20.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.5" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.5" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-regenerator" "^7.20.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + "@react-native/babel-plugin-codegen" "0.75.4" + babel-plugin-transform-flow-enums "^0.0.2" + react-refresh "^0.14.0" + +"@react-native/codegen@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.75.4.tgz" + integrity sha512-0FplNAD/S5FUvm8YIn6uyarOcP4jdJPqWz17K4a/Gp2KSsG/JJKEskX3aj5wpePzVfNQl3WyvBJ0whODdCocIA== + dependencies: + "@babel/parser" "^7.20.0" + glob "^7.1.1" + hermes-parser "0.22.0" + invariant "^2.2.4" + jscodeshift "^0.14.0" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + yargs "^17.6.2" + +"@react-native/community-cli-plugin@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.4.tgz" + integrity sha512-k/hevYPjEpW0MNVVyb3v9PJosOP+FzenS7+oqYNLXdEmgTnGHrAtYX9ABrJJgzeJt7I6g8g+RDvm8PSE+tnM5w== + dependencies: + "@react-native-community/cli-server-api" "14.1.0" + "@react-native-community/cli-tools" "14.1.0" + "@react-native/dev-middleware" "0.75.4" + "@react-native/metro-babel-transformer" "0.75.4" + chalk "^4.0.0" + execa "^5.1.1" + metro "^0.80.3" + metro-config "^0.80.3" + metro-core "^0.80.3" + node-fetch "^2.2.0" + readline "^1.3.0" + +"@react-native/debugger-frontend@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.75.4.tgz" + integrity sha512-QfGurR5hV6bhMPn/6VxS2RomYrPRFGwA03jJr+zKyWHnxDAu5jOqYVyKAktIIbhYe5sPp78QVl1ZYuhcnsRbEw== + +"@react-native/dev-middleware@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.75.4.tgz" + integrity sha512-UhyBeQOG2wNcvrUGw3+IBrHBk/lIu7hHGmWt4j8W9Aqv9BwktHKkPyko+5A1yoUeO1O/VDnHWYqWeOejcA9wpQ== + dependencies: + "@isaacs/ttlcache" "^1.4.1" + "@react-native/debugger-frontend" "0.75.4" + chrome-launcher "^0.15.2" + chromium-edge-launcher "^0.2.0" + connect "^3.6.5" + debug "^2.2.0" + node-fetch "^2.2.0" + nullthrows "^1.1.1" + open "^7.0.3" + selfsigned "^2.4.1" + serve-static "^1.13.1" + ws "^6.2.2" + +"@react-native/gradle-plugin@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.75.4.tgz" + integrity sha512-kKTmw7cF7p1raT30DC0L6N+xiVXN7dlRy0J+hYPiCRRVHplwgvyS7pszjxfzwXmHFqOxwpxQVI3du8opsma1Mg== + +"@react-native/js-polyfills@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.75.4.tgz" + integrity sha512-NF5ID5FjcVHBYk1LQ4JMRjPmxBWEo4yoqW1m6vGOQZPT8D5Qs9afgx3f7gQatxbn3ivMh0FVbLW0zBx6LyxEzA== + +"@react-native/metro-babel-transformer@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.4.tgz" + integrity sha512-O0WMW/K8Ny/MAAeRebqGEQhrbzcioxcPHZtos+EH2hWeBTEKHQV8fMYYxfYDabpr392qdhSBwg3LlXUD4U3PXQ== + dependencies: + "@babel/core" "^7.20.0" + "@react-native/babel-preset" "0.75.4" + hermes-parser "0.22.0" + nullthrows "^1.1.1" + +"@react-native/normalize-colors@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.75.4.tgz" + integrity sha512-90QrQDLg0/k9xqYesaKuIkayOSjD+FKa0hsHollbwT5h3kuGMY+lU7UZxnb8tU55Y1PKdvjYxqQsYWI/ql79zA== + +"@react-native/virtualized-lists@0.75.4": + version "0.75.4" + resolved "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.75.4.tgz" + integrity sha512-iEauRiXjvWG/iOH8bV+9MfepCS+72cuL5rhkrenYZS0NUnDcNjF+wtaoS9+Gx5z1UJOfEXxSmyXRtQJZne8SnA== + dependencies: + invariant "^2.2.4" + nullthrows "^1.1.1" + "@redis/bloom@1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@redis/bloom/-/bloom-1.2.0.tgz#d3fd6d3c0af3ef92f26767b56414a370c7b63b71" + resolved "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz" integrity sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg== -"@redis/client@1.5.11": +"@redis/client@^1.0.0", "@redis/client@1.5.11": version "1.5.11" - resolved "https://registry.yarnpkg.com/@redis/client/-/client-1.5.11.tgz#5ee8620fea56c67cb427228c35d8403518efe622" + resolved "https://registry.npmjs.org/@redis/client/-/client-1.5.11.tgz" integrity sha512-cV7yHcOAtNQ5x/yQl7Yw1xf53kO0FNDTdDU6bFIMbW6ljB7U7ns0YRM+QIkpoqTAt6zK5k9Fq0QWlUbLcq9AvA== dependencies: cluster-key-slot "1.1.2" @@ -1949,37 +3307,37 @@ "@redis/graph@1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@redis/graph/-/graph-1.1.0.tgz#cc2b82e5141a29ada2cce7d267a6b74baa6dd519" + resolved "https://registry.npmjs.org/@redis/graph/-/graph-1.1.0.tgz" integrity sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg== "@redis/json@1.0.6": version "1.0.6" - resolved "https://registry.yarnpkg.com/@redis/json/-/json-1.0.6.tgz#b7a7725bbb907765d84c99d55eac3fcf772e180e" + resolved "https://registry.npmjs.org/@redis/json/-/json-1.0.6.tgz" integrity sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw== "@redis/search@1.1.5": version "1.1.5" - resolved "https://registry.yarnpkg.com/@redis/search/-/search-1.1.5.tgz#682b68114049ff28fdf2d82c580044dfb74199fe" + resolved "https://registry.npmjs.org/@redis/search/-/search-1.1.5.tgz" integrity sha512-hPP8w7GfGsbtYEJdn4n7nXa6xt6hVZnnDktKW4ArMaFQ/m/aR7eFvsLQmG/mn1Upq99btPJk+F27IQ2dYpCoUg== "@redis/time-series@1.0.5": version "1.0.5" - resolved "https://registry.yarnpkg.com/@redis/time-series/-/time-series-1.0.5.tgz#a6d70ef7a0e71e083ea09b967df0a0ed742bc6ad" + resolved "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.5.tgz" integrity sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg== -"@scure/base@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" - integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== - "@scure/base@~1.1.0": version "1.1.3" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz" integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== +"@scure/base@1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz" + integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + "@scure/bip32@1.3.1": version "1.3.1" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz" integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A== dependencies: "@noble/curves" "~1.1.0" @@ -1988,15 +3346,32 @@ "@scure/bip39@1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz" integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== dependencies: "@noble/hashes" "~1.3.0" "@scure/base" "~1.1.0" +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@simplewebauthn/iso-webcrypto@^7.4.0": version "7.4.0" - resolved "https://registry.yarnpkg.com/@simplewebauthn/iso-webcrypto/-/iso-webcrypto-7.4.0.tgz#f994132bd7bbcb762fc08021566971aad9005500" + resolved "https://registry.npmjs.org/@simplewebauthn/iso-webcrypto/-/iso-webcrypto-7.4.0.tgz" integrity sha512-LSx8zghjH+z9IFOhBdDv2AyhqnzDUCYFxFiwJbToowOigCgf4Y8fyZle9Y+0NS232bIoU6j/lgv5iT32m3eGyA== dependencies: "@simplewebauthn/typescript-types" "^7.4.0" @@ -2004,7 +3379,7 @@ "@simplewebauthn/server@^7.2.0": version "7.4.0" - resolved "https://registry.yarnpkg.com/@simplewebauthn/server/-/server-7.4.0.tgz#eb76e30f0c6d9e7fb323b8598c1b2d132e5873e0" + resolved "https://registry.npmjs.org/@simplewebauthn/server/-/server-7.4.0.tgz" integrity sha512-Y6jj2WsE3zBDagSdOg3b7+SMw7zHku0Od45Q1ZpA19Wd5aUbV2mH281SbdhFN4UuKcGQSeeAgUObAWHvgxNOVA== dependencies: "@hexagon/base64" "^1.1.25" @@ -2023,24 +3398,45 @@ "@simplewebauthn/typescript-types@^7.4.0": version "7.4.0" - resolved "https://registry.yarnpkg.com/@simplewebauthn/typescript-types/-/typescript-types-7.4.0.tgz#1f5d55e187cbd30727a75543caf1bade747625ce" + resolved "https://registry.npmjs.org/@simplewebauthn/typescript-types/-/typescript-types-7.4.0.tgz" integrity sha512-8/ZjHeUPe210Bt5oyaOIGx4h8lHdsQs19BiOT44gi/jBEgK7uBGA0Fy7NRsyh777al3m6WM0mBf0UR7xd4R7WQ== -"@sindresorhus/is@^4.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" "@smithy/types@^2.3.5": version "2.3.5" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.3.5.tgz#7684a74d4368f323b478bd9e99e7dc3a6156b5e5" + resolved "https://registry.npmjs.org/@smithy/types/-/types-2.3.5.tgz" integrity sha512-ehyDt8M9hehyxrLQGoA1BGPou8Js1Ocoh5M0ngDhJMqbFmNK5N6Xhr9/ZExWkyIW8XcGkiMPq3ZUEE0ScrhbuQ== dependencies: tslib "^2.5.0" +"@solana/buffer-layout@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz" + integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== + dependencies: + buffer "~6.0.3" + "@solana/wallet-adapter-base@^0.9.2": version "0.9.23" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.23.tgz#3b17c28afd44e173f44f658bf9700fd637e12a11" + resolved "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.23.tgz" integrity sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw== dependencies: "@solana/wallet-standard-features" "^1.1.0" @@ -2050,34 +3446,55 @@ "@solana/wallet-standard-features@^1.1.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-features/-/wallet-standard-features-1.2.0.tgz#be8b3824abf5ebcfeaa7298445bf53f76a27c935" + resolved "https://registry.npmjs.org/@solana/wallet-standard-features/-/wallet-standard-features-1.2.0.tgz" integrity sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ== dependencies: "@wallet-standard/base" "^1.0.1" "@wallet-standard/features" "^1.0.3" +"@solana/web3.js@^1.77.3": + version "1.95.3" + resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.3.tgz" + integrity sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og== + dependencies: + "@babel/runtime" "^7.25.0" + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana/buffer-layout" "^4.0.1" + agentkeepalive "^4.5.0" + bigint-buffer "^1.1.5" + bn.js "^5.2.1" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.1.1" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@spruceid/siwe-parser@1.1.3": version "1.1.3" - resolved "https://registry.yarnpkg.com/@spruceid/siwe-parser/-/siwe-parser-1.1.3.tgz#0eebe8bbd63c6de89cb44c06b6329b00b305df65" + resolved "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-1.1.3.tgz" integrity sha512-oQ8PcwDqjGWJvLmvAF2yzd6iniiWxK0Qtz+Dw+gLD/W5zOQJiKIUXwslHOm8VB8OOOKW9vfR3dnPBhHaZDvRsw== dependencies: apg-js "^4.1.1" "@stablelib/binary@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + resolved "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz" integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== dependencies: "@stablelib/int" "^1.0.1" "@stablelib/int@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + resolved "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz" integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== "@stablelib/random@^1.0.1": version "1.0.2" - resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + resolved "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz" integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== dependencies: "@stablelib/binary" "^1.0.1" @@ -2085,24 +3502,24 @@ "@stablelib/wipe@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + resolved "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz" integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== "@substrate/ss58-registry@^1.38.0": version "1.47.0" - resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.47.0.tgz#99b11fd3c16657f5eae483b3df7c545ca756d1fc" + resolved "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.47.0.tgz" integrity sha512-6kuIJedRcisUJS2pgksEH2jZf3hfSIVzqtFzs/AyjTW3ETbMg5q1Bb7VWa0WYaT6dTrEXp/6UoXM5B9pSIUmcw== -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== +"@swc/helpers@^0.5.11": + version "0.5.13" + resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz" + integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== dependencies: - defer-to-connect "^2.0.0" + tslib "^2.4.0" "@terran-one/cosmwasm-vm-js@^0.2.16": version "0.2.16" - resolved "https://registry.yarnpkg.com/@terran-one/cosmwasm-vm-js/-/cosmwasm-vm-js-0.2.16.tgz#6d163bd12347b7148e2783811a723fffe68dd948" + resolved "https://registry.npmjs.org/@terran-one/cosmwasm-vm-js/-/cosmwasm-vm-js-0.2.16.tgz" integrity sha512-z+3EV7qPEiC7SrImYws0bGanh/hRjW3SozcnkIWlnMdhX1SvdmhkIWevJsyxBCM/p1VhQAMYIvBvWkWy0vHlYg== dependencies: "@cosmjs/crypto" "^0.28.4" @@ -2121,104 +3538,87 @@ "@tootallnate/once@1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@tootallnate/once@2": version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== "@tootallnate/quickjs-emscripten@^0.23.0": version "0.23.0" - resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" + resolved "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz" integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== "@types/accepts@*", "@types/accepts@^1.3.5": version "1.3.7" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.7.tgz#3b98b1889d2b2386604c2bbbe62e4fb51e95b265" + resolved "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz" integrity sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ== dependencies: "@types/node" "*" -"@types/bn.js@*", "@types/bn.js@^5.1.1": +"@types/bn.js@*", "@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1": version "5.1.5" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz" integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== dependencies: "@types/node" "*" -"@types/bn.js@5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" - integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== - dependencies: - "@types/node" "*" - "@types/bn.js@^4.11.3": version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== dependencies: "@types/node" "*" -"@types/bn.js@^5.1.0": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.2.tgz#162f5238c46f4bcbac07a98561724eca1fcf0c5e" - integrity sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg== +"@types/bn.js@5.1.1": + version "5.1.1" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== dependencies: "@types/node" "*" "@types/body-parser@*": version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz" integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: "@types/connect" "*" "@types/node" "*" -"@types/cacheable-request@^6.0.1": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" - integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - "@types/cli-color@*": version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/cli-color/-/cli-color-2.0.6.tgz#becc4b0c8509bbc938e7c3b2b7a0a8dd64691d08" + resolved "https://registry.npmjs.org/@types/cli-color/-/cli-color-2.0.6.tgz" integrity sha512-uLK0/0dOYdkX8hNsezpYh1gc8eerbhf9bOKZ3e24sP67703mw9S14/yW6mSTatiaKO9v+mU/a1EVy4rOXXeZTA== "@types/clui@^0.3.1": version "0.3.4" - resolved "https://registry.yarnpkg.com/@types/clui/-/clui-0.3.4.tgz#55be5da89ddf9d7b0b847119a588bb8488af99b2" + resolved "https://registry.npmjs.org/@types/clui/-/clui-0.3.4.tgz" integrity sha512-546l5CCaNQyg8OgFG84WINSW6J37/x2a+7uX650peQ7VscBKD6x4IlNn1syeK4EdixVzBpOG7H08XjmYs2MwQA== dependencies: "@types/cli-color" "*" -"@types/connect@*": +"@types/connect@*", "@types/connect@^3.4.33": version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz" integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" "@types/content-disposition@*": version "0.5.8" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.8.tgz#6742a5971f490dc41e59d277eee71361fea0b537" + resolved "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz" integrity sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg== "@types/cookie@^0.3.3": version "0.3.3" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803" + resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz" integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow== "@types/cookies@*": version "0.9.0" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.9.0.tgz#a2290cfb325f75f0f28720939bee854d4142aee2" + resolved "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz" integrity sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q== dependencies: "@types/connect" "*" @@ -2228,21 +3628,21 @@ "@types/debug@^4.1.7": version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.9.tgz#906996938bc672aaf2fb8c0d3733ae1dda05b005" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz" integrity sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow== dependencies: "@types/ms" "*" "@types/elliptic@^6.4.14": version "6.4.18" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.18.tgz#bc96e26e1ccccbabe8b6f0e409c85898635482e1" + resolved "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.18.tgz" integrity sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw== dependencies: "@types/bn.js" "*" "@types/express-serve-static-core@^4.17.33": version "4.17.43" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz" integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== dependencies: "@types/node" "*" @@ -2252,7 +3652,7 @@ "@types/express@*": version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" @@ -2262,63 +3662,77 @@ "@types/formidable@^1.0.31": version "1.2.8" - resolved "https://registry.yarnpkg.com/@types/formidable/-/formidable-1.2.8.tgz#78a95c12606920aeb1165ab2670943d726a79325" + resolved "https://registry.npmjs.org/@types/formidable/-/formidable-1.2.8.tgz" integrity sha512-6psvrUy5VDYb+yaPJReF1WrRsz+FBwyJutK9Twz1Efa27tm07bARNIkK2B8ZPWq80dXqpKfrxTO96xrtPp+AuA== dependencies: "@types/node" "*" "@types/http-assert@*": version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.5.tgz#dfb1063eb7c240ee3d3fe213dac5671cfb6a8dbf" + resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz" integrity sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g== -"@types/http-cache-semantics@*": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" - integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== - "@types/http-errors@*": version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz" integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== "@types/inquirer@^8.2.1": version "8.2.10" - resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.2.10.tgz#9444dce2d764c35bc5bb4d742598aaa4acb6561b" + resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.10.tgz" integrity sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA== dependencies: "@types/through" "*" rxjs "^7.2.0" +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + "@types/keygrip@*": version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.6.tgz#1749535181a2a9b02ac04a797550a8787345b740" + resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz" integrity sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ== -"@types/keyv@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== +"@types/koa__cors@^3.0.1": + version "3.3.1" + resolved "https://registry.npmjs.org/@types/koa__cors/-/koa__cors-3.3.1.tgz" + integrity sha512-aFGYhTFW7651KhmZZ05VG0QZJre7QxBxDj2LF1lf6GA/wSXEfKVAJxiQQWzRV4ZoMzQIO8vJBXKsUcRuvYK9qw== dependencies: - "@types/node" "*" + "@types/koa" "*" "@types/koa-bodyparser@^4.3.0": version "4.3.12" - resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.12.tgz#c19355e504422fd2a8fdb3496a32da48cd29133c" + resolved "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.12.tgz" integrity sha512-hKMmRMVP889gPIdLZmmtou/BijaU1tHPyMNmcK7FAHAdATnRcGQQy78EqTTxLH1D4FTsrxIzklAQCso9oGoebQ== dependencies: "@types/koa" "*" "@types/koa-compose@*", "@types/koa-compose@^3.2.5": version "3.2.8" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.8.tgz#dec48de1f6b3d87f87320097686a915f1e954b57" + resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz" integrity sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA== dependencies: "@types/koa" "*" "@types/koa@*", "@types/koa@^2.11.6": version "2.15.0" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.15.0.tgz#eca43d76f527c803b491731f95df575636e7b6f2" + resolved "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz" integrity sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g== dependencies: "@types/accepts" "*" @@ -2330,109 +3744,107 @@ "@types/koa-compose" "*" "@types/node" "*" -"@types/koa__cors@^3.0.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/koa__cors/-/koa__cors-3.3.1.tgz#0ec7543c4c620fd23451bfdd3e21b9a6aadedccd" - integrity sha512-aFGYhTFW7651KhmZZ05VG0QZJre7QxBxDj2LF1lf6GA/wSXEfKVAJxiQQWzRV4ZoMzQIO8vJBXKsUcRuvYK9qw== - dependencies: - "@types/koa" "*" - "@types/long@^4.0.0", "@types/long@^4.0.1": version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + resolved "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== "@types/mime@*": version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + resolved "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz" integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== "@types/mime@^1": version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/ms@*": version "0.7.32" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.32.tgz#f6cd08939ae3ad886fcc92ef7f0109dacddf61ab" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz" integrity sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g== "@types/node-fetch@2.6.4": version "2.6.4" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz" integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== dependencies: "@types/node" "*" form-data "^3.0.0" +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "20.8.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.5.tgz#13352ae1f80032171616910e8aba2e3e52e57d96" + resolved "https://registry.npmjs.org/@types/node/-/node-20.8.5.tgz" integrity sha512-SPlobFgbidfIeOYlzXiEjSYeIJiOCthv+9tSQVpvk4PAdIIc+2SmjNVzWXk9t0Y7dl73Zdf+OgXKHX9XtkqUpw== dependencies: undici-types "~5.25.1" -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - "@types/node@^10.1.0": version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.47": version "12.20.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/node@^12.12.54": + version "12.20.55" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^18.11.9": version "18.18.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.5.tgz#afc0fd975df946d6e1add5bbf98264225b212244" + resolved "https://registry.npmjs.org/@types/node/-/node-18.18.5.tgz" integrity sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A== +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + "@types/pbkdf2@^3.0.0": version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== dependencies: "@types/node" "*" "@types/qs@*": version "6.9.13" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.13.tgz#c7e2406bdc6bd512f8a3651632568c72d43eb1e7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.13.tgz" integrity sha512-iLR+1vTTJ3p0QaOUq6ACbY1mzKTODFDT/XedZI8BksOotFmL4ForwDfRQ/DZeuTHR7/2i4lI1D203gdfxuqTlA== "@types/range-parser@*": version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/responselike@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" - integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== - dependencies: - "@types/node" "*" - "@types/secp256k1@^4.0.1": version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.4.tgz#33c760de627fce1f449c2d4270da07e4da54c830" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz" integrity sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A== dependencies: "@types/node" "*" "@types/secp256k1@^4.0.3": version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" + resolved "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz" integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== dependencies: "@types/node" "*" "@types/send@*": version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + resolved "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz" integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== dependencies: "@types/mime" "^1" @@ -2440,47 +3852,90 @@ "@types/serve-static@*": version "1.15.5" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz" integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== dependencies: "@types/http-errors" "*" "@types/mime" "*" "@types/node" "*" +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + "@types/through@*": version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.33.tgz#14ebf599320e1c7851e7d598149af183c6b9ea56" + resolved "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz" integrity sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ== dependencies: "@types/node" "*" +"@types/uuid@^8.3.4": + version "8.3.4" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== + +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@types/ws@^8.2.2": + version "8.5.12" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^15.0.0": + version "15.0.19" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz" + integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + "@types/yauzl@^2.9.1": version "2.10.1" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.1.tgz#4e8f299f0934d60f36c74f59cb5a8483fd786691" + resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz" integrity sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw== dependencies: "@types/node" "*" "@ungap/promise-all-settled@1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== "@wallet-standard/base@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@wallet-standard/base/-/base-1.0.1.tgz#860dd94d47c9e3c5c43b79d91c6afdbd7a36264e" + resolved "https://registry.npmjs.org/@wallet-standard/base/-/base-1.0.1.tgz" integrity sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w== "@wallet-standard/features@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@wallet-standard/features/-/features-1.0.3.tgz#c992876c5e4f7a0672f8869c4146c87e0dfe48c8" + resolved "https://registry.npmjs.org/@wallet-standard/features/-/features-1.0.3.tgz" integrity sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA== dependencies: "@wallet-standard/base" "^1.0.1" "@walletconnect/browser-utils@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" + resolved "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz" integrity sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A== dependencies: "@walletconnect/safe-json" "1.0.0" @@ -2491,7 +3946,7 @@ "@walletconnect/client@^1.7.8", "@walletconnect/client@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.8.0.tgz#6f46b5499c7c861c651ff1ebe5da5b66225ca696" + resolved "https://registry.npmjs.org/@walletconnect/client/-/client-1.8.0.tgz" integrity sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ== dependencies: "@walletconnect/core" "^1.8.0" @@ -2501,7 +3956,7 @@ "@walletconnect/core@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.8.0.tgz#6b2748b90c999d9d6a70e52e26a8d5e8bfeaa81e" + resolved "https://registry.npmjs.org/@walletconnect/core/-/core-1.8.0.tgz" integrity sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw== dependencies: "@walletconnect/socket-transport" "^1.8.0" @@ -2510,7 +3965,7 @@ "@walletconnect/crypto@^1.0.2": version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.3.tgz#7b8dd4d7e2884fe3543c7c07aea425eef5ef9dd4" + resolved "https://registry.npmjs.org/@walletconnect/crypto/-/crypto-1.0.3.tgz" integrity sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g== dependencies: "@walletconnect/encoding" "^1.0.2" @@ -2522,7 +3977,7 @@ "@walletconnect/encoding@^1.0.1", "@walletconnect/encoding@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.2.tgz#cb3942ad038d6a6bf01158f66773062dd25724da" + resolved "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.2.tgz" integrity sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag== dependencies: is-typedarray "1.0.0" @@ -2531,14 +3986,14 @@ "@walletconnect/environment@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" + resolved "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz" integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== dependencies: tslib "1.14.1" "@walletconnect/ethereum-provider@1.7.8": version "1.7.8" - resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-1.7.8.tgz#8b969b394e14c68855b6ae2660f2e39dec857f5f" + resolved "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-1.7.8.tgz" integrity sha512-dnl560zFMdK/LD4MD2XwHbWj7RXOaeXWPc9jzDaosLQLAXfA5mKe4XbCFFUPbVMYuyBdRI9NZv3Ci/qDb5wncQ== dependencies: "@walletconnect/client" "^1.7.8" @@ -2552,7 +4007,7 @@ "@walletconnect/iso-crypto@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" + resolved "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz" integrity sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ== dependencies: "@walletconnect/crypto" "^1.0.2" @@ -2561,7 +4016,7 @@ "@walletconnect/jsonrpc-http-connection@^1.0.0": version "1.0.7" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz#a6973569b8854c22da707a759d241e4f5c2d5a98" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz" integrity sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.6" @@ -2571,7 +4026,7 @@ "@walletconnect/jsonrpc-provider@^1.0.3": version "1.0.13" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz#9a74da648d015e1fffc745f0c7d629457f53648b" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz" integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.8" @@ -2580,7 +4035,7 @@ "@walletconnect/jsonrpc-types@^1.0.1", "@walletconnect/jsonrpc-types@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz" integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== dependencies: keyvaluestorage-interface "^1.0.0" @@ -2588,7 +4043,7 @@ "@walletconnect/jsonrpc-utils@^1.0.3", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.8": version "1.0.8" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz" integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== dependencies: "@walletconnect/environment" "^1.0.1" @@ -2597,12 +4052,12 @@ "@walletconnect/mobile-registry@^1.4.0": version "1.4.0" - resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5" + resolved "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz" integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw== "@walletconnect/qrcode-modal@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz#ddd6f5c9b7ee52c16adf9aacec2a3eac4994caea" + resolved "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz" integrity sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg== dependencies: "@walletconnect/browser-utils" "^1.8.0" @@ -2614,7 +4069,7 @@ "@walletconnect/randombytes@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.3.tgz#e795e4918367fd1e6a2215e075e64ab93e23985b" + resolved "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.3.tgz" integrity sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw== dependencies: "@walletconnect/encoding" "^1.0.2" @@ -2622,21 +4077,21 @@ randombytes "^2.1.0" tslib "1.14.1" -"@walletconnect/safe-json@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" - integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== - "@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" + resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz" integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== dependencies: tslib "1.14.1" +"@walletconnect/safe-json@1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz" + integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== + "@walletconnect/signer-connection@^1.7.8": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz#6cdf490df770e504cc1a550bdb5bac7696b130bc" + resolved "https://registry.npmjs.org/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz" integrity sha512-+YAaTAP52MWZJ2wWnqKClKCPlPHBo6reURFe0cWidLADh9mi/kPWGALZ5AENK22zpem1bbKV466rF5Rzvu0ehA== dependencies: "@walletconnect/client" "^1.8.0" @@ -2648,7 +4103,7 @@ "@walletconnect/socket-transport@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz#9a1128a249628a0be11a0979b522fe82b44afa1b" + resolved "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz" integrity sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ== dependencies: "@walletconnect/types" "^1.8.0" @@ -2657,12 +4112,12 @@ "@walletconnect/types@^1.7.8", "@walletconnect/types@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" + resolved "https://registry.npmjs.org/@walletconnect/types/-/types-1.8.0.tgz" integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== "@walletconnect/utils@^1.7.8", "@walletconnect/utils@^1.8.0": version "1.8.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.8.0.tgz#2591a197c1fa7429941fe428876088fda6632060" + resolved "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.8.0.tgz" integrity sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA== dependencies: "@walletconnect/browser-utils" "^1.8.0" @@ -2673,45 +4128,45 @@ js-sha3 "0.8.0" query-string "6.13.5" -"@walletconnect/window-getters@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" - integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== - "@walletconnect/window-getters@^1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" + resolved "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz" integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== dependencies: tslib "1.14.1" +"@walletconnect/window-getters@1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz" + integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== + "@walletconnect/window-metadata@1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" + resolved "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz" integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA== dependencies: "@walletconnect/window-getters" "^1.0.0" "@weavery/clarity@^0.1.5": version "0.1.5" - resolved "https://registry.yarnpkg.com/@weavery/clarity/-/clarity-0.1.5.tgz#f06bbb0dac7c63c6e2ccd76cda3e8b32b57f82c2" + resolved "https://registry.npmjs.org/@weavery/clarity/-/clarity-0.1.5.tgz" integrity sha512-0ms2/sBx+uyW3EmXte5otIzNVAXpfJ3lBl6FS8JuLdWmPU6SxiAoGTMUT0N0SL3Ogiz2PZt6NV+mfApbSvYBaQ== abbrev@1: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abort-controller@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: event-target-shim "^5.0.0" abstract-level@^1.0.0, abstract-level@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" + resolved "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz" integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== dependencies: buffer "^6.0.3" @@ -2722,9 +4177,9 @@ abstract-level@^1.0.0, abstract-level@^1.0.2: module-error "^1.0.1" queue-microtask "^1.2.3" -accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.8: +accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -2732,58 +4187,63 @@ accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.8: acorn-walk@^8.2.0: version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn@^8.7.0: + version "8.10.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +acorn@^8.8.2: + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + acorn@7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== -acorn@^8.7.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== +aes-js@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz" + integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== aes-js@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== aes-js@4.0.0-beta.5: version "4.0.0-beta.5" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz" integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== -aes-js@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - -agent-base@6, agent-base@^6.0.2: +agent-base@^6.0.2, agent-base@6: version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" agent-base@^7.0.2, agent-base@^7.1.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz" integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== dependencies: debug "^4.3.4" -agentkeepalive@^4.1.3: +agentkeepalive@^4.1.3, agentkeepalive@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz" integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: humanize-ms "^1.2.1" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2791,12 +4251,12 @@ aggregate-error@^3.0.0: algo-msgpack-with-bigint@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz#38bb717220525b3ff42232eefdcd9efb9ad405d6" + resolved "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz" integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== algosdk@^1.13.1: version "1.24.1" - resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.24.1.tgz#afc4102457ae0c38a32de6b84f4d713aedfc9e89" + resolved "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz" integrity sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww== dependencies: algo-msgpack-with-bigint "^2.1.1" @@ -2812,7 +4272,7 @@ algosdk@^1.13.1: amazon-cognito-identity-js@6.3.6: version "6.3.6" - resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.6.tgz#a5baa3615dc5771d9f9edeedf13d6e6df5e202d6" + resolved "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.6.tgz" integrity sha512-kBq+GE6OkLrxtFj3ZduIOlKBFYeOqZK3EhxbDBkv476UTvy+uwfR0tlriTq2QzNdnvlQAjBIXnXuOM7DwR1UEQ== dependencies: "@aws-crypto/sha256-js" "1.2.2" @@ -2823,78 +4283,116 @@ amazon-cognito-identity-js@6.3.6: amp-message@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/amp-message/-/amp-message-0.1.2.tgz#a78f1c98995087ad36192a41298e4db49e3dfc45" + resolved "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz" integrity sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg== dependencies: amp "0.3.1" -amp@0.3.1, amp@~0.3.1: +amp@~0.3.1, amp@0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/amp/-/amp-0.3.1.tgz#6adf8d58a74f361e82c1fa8d389c079e139fc47d" + resolved "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz" integrity sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw== -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +anser@^1.4.9: + version "1.4.10" + resolved "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz" + integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== ansi-colors@^4.1.1: version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-escapes@^4.2.1: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" +ansi-fragments@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz" + integrity sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w== + dependencies: + colorette "^1.0.7" + slice-ansi "^2.0.0" + strip-ansi "^5.0.0" + ansi-regex@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== -ansi-regex@^5.0.1: +ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -anymatch@~3.1.1, anymatch@~3.1.2: +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" +aonote@^0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/aonote/-/aonote-0.8.2.tgz" + integrity sha512-CZNXHm4ApPCIHWbAkMHulobxN3aaRxoB36mAQfc5ekOSQ5qI1tUIAVSzAUmmYd/eQZxnZY9rtexhI6KFKy7arA== + dependencies: + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@permaweb/aoconnect" "^0.0.59" + arbundles "^0.11.1" + arweave "^1.15.1" + ramda "^0.30.1" + test "^3.3.0" + apg-js@^4.1.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.2.1.tgz#cae595e8300fa4c5bc7ef755da9ac4289b70a62c" + resolved "https://registry.npmjs.org/apg-js/-/apg-js-4.2.1.tgz" integrity sha512-S3unf9jb9XrhmZYC27L5yits1p/+HqN6lksrkqKEv1U0Ytu+ENkIkOMV5+iutFjBaY9JTUCDQFS1svHsy3uNZA== apollo-datasource@^3.3.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8" + resolved "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz" integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" @@ -2902,14 +4400,14 @@ apollo-datasource@^3.3.2: apollo-reporting-protobuf@^3.4.0: version "3.4.0" - resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz#6edd31f09d4a3704d9e808d1db30eca2229ded26" + resolved "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz" integrity sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog== dependencies: "@apollo/protobufjs" "1.2.6" apollo-server-core@^3.13.0: version "3.13.0" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.13.0.tgz#ad6601fbb34cc97eedca27a9fb0b5738d11cd27d" + resolved "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz" integrity sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" @@ -2938,27 +4436,27 @@ apollo-server-core@^3.13.0: apollo-server-env@^4.2.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" + resolved "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz" integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== dependencies: node-fetch "^2.6.7" apollo-server-errors@^3.3.1: version "3.3.1" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" + resolved "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz" integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== apollo-server-koa@^3.6.2: version "3.13.0" - resolved "https://registry.yarnpkg.com/apollo-server-koa/-/apollo-server-koa-3.13.0.tgz#bb0932ae81a46d422ba18f71e68efe1e3f86bcb2" + resolved "https://registry.npmjs.org/apollo-server-koa/-/apollo-server-koa-3.13.0.tgz" integrity sha512-CM6ZDQX84X3Iwj82x2eqvIWvym97H+SYL9rzdSHCMXvCmJUxrhfeQP0ApvU4UFTA6ccjNT0N+MQkLbf+H1imrA== dependencies: "@koa/cors" "^3.1.0" "@types/accepts" "^1.3.5" "@types/koa" "^2.11.6" + "@types/koa__cors" "^3.0.1" "@types/koa-bodyparser" "^4.3.0" "@types/koa-compose" "^3.2.5" - "@types/koa__cors" "^3.0.1" accepts "^1.3.7" apollo-server-core "^3.13.0" apollo-server-types "^3.8.0" @@ -2967,14 +4465,14 @@ apollo-server-koa@^3.6.2: apollo-server-plugin-base@^3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz#c19cd137bc4c993ba2490ba2b571b0f3ce60a0cd" + resolved "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz" integrity sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw== dependencies: apollo-server-types "^3.8.0" apollo-server-types@^3.8.0: version "3.8.0" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.8.0.tgz#d976b6967878681f715fe2b9e4dad9ba86b1346f" + resolved "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz" integrity sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A== dependencies: "@apollo/utils.keyvaluecache" "^1.0.1" @@ -2984,56 +4482,25 @@ apollo-server-types@^3.8.0: "apparatus@>= 0.0.6": version "0.0.10" - resolved "https://registry.yarnpkg.com/apparatus/-/apparatus-0.0.10.tgz#81ea756772ada77863db54ceee8202c109bdca3e" + resolved "https://registry.npmjs.org/apparatus/-/apparatus-0.0.10.tgz" integrity sha512-KLy/ugo33KZA7nugtQ7O0E1c8kQ52N3IvD/XgIh4w/Nr28ypfkwDfA67F1ev4N1m5D+BOk1+b2dEJDfpj/VvZg== dependencies: sylvester ">= 0.0.8" +appdirsjs@^1.2.4: + version "1.2.7" + resolved "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz" + integrity sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw== + "aproba@^1.0.3 || ^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -aptos@^1.3.13: - version "1.21.0" - resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.21.0.tgz#346623967a6d038a85f02d71ed6ec62c4cd2ae5e" - integrity sha512-PRKjoFgL8tVEc9+oS7eJUv8GNxx8n3+0byH2+m7CP3raYOD6yFKOecuwjVMIJmgfpjp6xH0P0HDMGZAXmSyU0Q== - dependencies: - "@aptos-labs/aptos-client" "^0.1.0" - "@noble/hashes" "1.3.3" - "@scure/bip39" "1.2.1" - eventemitter3 "^5.0.1" - form-data "4.0.0" - tweetnacl "1.0.3" - -arbundles@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.10.0.tgz#b3b0b86a3618bf5b967d2961647c3a4259cb6014" - integrity sha512-Prbkjb0RSR6ToXPaBFhsBiMYSq78vHWbG/Zzy1tALRGvnKYlNLq93cqtmCNHqaYP6YCBZZV05ZpbO5C6269saw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/providers" "^5.7.2" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wallet" "^5.7.0" - "@irys/arweave" "^0.0.2" - "@noble/ed25519" "^1.6.1" - base64url "^3.0.1" - bs58 "^4.0.1" - keccak "^3.0.2" - secp256k1 "^5.0.0" - optionalDependencies: - "@randlabs/myalgo-connect" "^1.1.2" - algosdk "^1.13.1" - arweave-stream-tx "^1.1.0" - multistream "^4.1.0" - tmp-promise "^3.0.2" - -arbundles@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.11.0.tgz#2a8bbc142aae6c56588dffd8cd4b20b931a4e578" - integrity sha512-8U4u5TjbD14mBO9bJkUfynVrHztBGtvYcMx2E5Yuyu/iiSRByJDFHfCINAY3+zvllkTipbPjTP5XlACJQIuRcw== +arbundles@^0.11.0, arbundles@^0.11.1: + version "0.11.2" + resolved "https://registry.npmjs.org/arbundles/-/arbundles-0.11.2.tgz" + integrity sha512-vyX7vY6S8B4RFhGSoCixbnR/Z7ckpJjK+b/H7zcgRWJqqXjZqQ+3DQIJ19vKl5AvzNSsj5ja9kQDoZhMiGpBFw== dependencies: "@ethersproject/bytes" "^5.7.0" "@ethersproject/hash" "^5.7.0" @@ -3056,7 +4523,7 @@ arbundles@^0.11.0: arbundles@^0.6.19: version "0.6.23" - resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.6.23.tgz#c00cda953df67fa65d4297486237cc8e0c072c47" + resolved "https://registry.npmjs.org/arbundles/-/arbundles-0.6.23.tgz" integrity sha512-+gr93F3fivN+6dhiImT6BQNaXz4oECPn2GYjCZjS2yEoq7hM78FRvVp6kQyjEdhnuBFQr/q4oS/nkjnQlHdj9Q== dependencies: "@noble/ed25519" "^1.6.1" @@ -3076,31 +4543,9 @@ arbundles@^0.6.19: secp256k1 "^4.0.2" tmp-promise "^3.0.2" -arbundles@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.7.3.tgz#30eed011847c24b88a2971fae3bd8e5ff847ca8b" - integrity sha512-tgRYNOGlI8INBXv/aC6LVMXmu/UAa7X/ch5/LdpDQhCp+aX1UzyCuaLkzUNLSwvv65+EZxy0MKIlcgQQAhKl+Q== - dependencies: - "@noble/ed25519" "^1.6.1" - "@randlabs/myalgo-connect" "^1.1.2" - "@solana/wallet-adapter-base" "^0.9.2" - algosdk "^1.13.1" - aptos "^1.3.13" - arweave "^1.11.4" - arweave-stream-tx "^1.1.0" - avsc "https://github.com/Bundlr-Network/avsc#csp-fixes" - base64url "^3.0.1" - bs58 "^4.0.1" - ethers "^5.5.1" - keccak "^3.0.2" - multistream "^4.1.0" - process "^0.11.10" - secp256k1 "^4.0.2" - tmp-promise "^3.0.2" - archiver-utils@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + resolved "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz" integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== dependencies: glob "^7.1.4" @@ -3116,7 +4561,7 @@ archiver-utils@^2.1.0: archiver-utils@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7" + resolved "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz" integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== dependencies: glob "^7.2.3" @@ -3132,7 +4577,7 @@ archiver-utils@^3.0.4: archiver@^5.3.0, archiver@^5.3.1: version "5.3.2" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" + resolved "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz" integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== dependencies: archiver-utils "^2.1.0" @@ -3145,14 +4590,14 @@ archiver@^5.3.0, archiver@^5.3.1: arconnect@^0.4.2: version "0.4.2" - resolved "https://registry.yarnpkg.com/arconnect/-/arconnect-0.4.2.tgz#83de7638fb46183e82d7ec7efb5594c5f7cdc806" + resolved "https://registry.npmjs.org/arconnect/-/arconnect-0.4.2.tgz" integrity sha512-Jkpd4QL3TVqnd3U683gzXmZUVqBUy17DdJDuL/3D9rkysLgX6ymJ2e+sR+xyZF5Rh42CBqDXWNMmCjBXeP7Gbw== dependencies: arweave "^1.10.13" are-we-there-yet@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz" integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" @@ -3160,19 +4605,19 @@ are-we-there-yet@^3.0.0: argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -arlocal@^1.1.59, arlocal@^1.1.65: +arlocal@^1.1.65: version "1.1.65" - resolved "https://registry.yarnpkg.com/arlocal/-/arlocal-1.1.65.tgz#3ff3df5aae8ce2f343d7fb4835d26f9cd8976e58" + resolved "https://registry.npmjs.org/arlocal/-/arlocal-1.1.65.tgz" integrity sha512-miD+h5H+Z4cS6dihHdrs9LS6OxvdwdIcZ285v36y7nfrFwSrdTvoC9V52P7FIt1fF78+HNyHSi11BaVi6ZwO+w== dependencies: "@koa/cors" "^3.1.0" @@ -3199,90 +4644,125 @@ arlocal@^1.1.59, arlocal@^1.1.65: sqlite3 "^5.0.3" tsc-watch "^4.6.0" +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + arrify@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== articles@~0.2.1: version "0.2.2" - resolved "https://registry.yarnpkg.com/articles/-/articles-0.2.2.tgz#cc6b429f8cfa811f41e7a08505abbb4e45503197" + resolved "https://registry.npmjs.org/articles/-/articles-0.2.2.tgz" integrity sha512-S3Y4MPp+LD/l0HHm/4yrr6MoXhUkKT98ZdsV2tkTuBNywqUXEtvJT+NBO3KTSQEttc5EOwEJe2Xw8cZ9TI5Hrw== arweave-bundles@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/arweave-bundles/-/arweave-bundles-1.0.3.tgz#568f99c603be2375263341db7fc664ac2bb1846b" + resolved "https://registry.npmjs.org/arweave-bundles/-/arweave-bundles-1.0.3.tgz" integrity sha512-AhHCJ5+vfAv1NtK4saV/D9yzCm/aJS+s5EQMXGPFW7u3Q4TLLYwFCUAp7J11aBph0xYKWN04dLoubBrtvQBX3g== dependencies: arweave "^1.10.5" arweave-stream-tx@^1.1.0: version "1.2.2" - resolved "https://registry.yarnpkg.com/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz#2d5c66554301baacd02586a152fbb198b422112f" + resolved "https://registry.npmjs.org/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz" integrity sha512-bNt9rj0hbAEzoUZEF2s6WJbIz8nasZlZpxIw03Xm8fzb9gRiiZlZGW3lxQLjfc9Z0VRUWDzwtqoYeEoB/JDToQ== dependencies: exponential-backoff "^3.1.0" -arweave@1.11.6: - version "1.11.6" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.11.6.tgz#5afcded201c6f123dd62e5bfae1b72ca793ec7c2" - integrity sha512-D6N6e2z7oZoxFhu/qElLwQ2T8DxZ8xIqDB+Y16KHvZbassIrrS9iALwxLdaFYNInuyElg6i7qotBMcShWbFSTw== +arweave@^1.10.0: + version "1.15.1" dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" - axios "^0.27.2" base64-js "^1.5.1" bignumber.js "^9.0.2" - util "^0.12.4" -arweave@1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.13.1.tgz#acc70c07cb8505ddaa84548332c82fb45aa8f7c5" - integrity sha512-B6+N/5Ngvm0w1XTcboRbHGhyJkLmneqz8F5FaoVtd8KHVrzJ8cGq/dBAToP+QL4QJXlRudjLMxX7Mm9tzJt2xQ== +arweave@^1.10.13, arweave@^1.10.5, arweave@^1.11.4, arweave@^1.12.2, arweave@^1.13.7, arweave@^1.14.4, arweave@1.14.4: + version "1.14.4" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.14.4.tgz" + integrity sha512-tmqU9fug8XAmFETYwgUhLaD3WKav5DaM4p1vgJpEj/Px2ORPPMikwnSySlFymmL2qgRh2ZBcZsg11+RXPPGLsA== dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" base64-js "^1.5.1" bignumber.js "^9.0.2" -arweave@1.14.4, arweave@^1.10.13, arweave@^1.10.5, arweave@^1.11.4, arweave@^1.12.2, arweave@^1.13.7, arweave@^1.14.4: - version "1.14.4" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.14.4.tgz#5ba22136aa0e7fd9495258a3931fb770c9d6bf21" - integrity sha512-tmqU9fug8XAmFETYwgUhLaD3WKav5DaM4p1vgJpEj/Px2ORPPMikwnSySlFymmL2qgRh2ZBcZsg11+RXPPGLsA== +arweave@^1.15.0: + version "1.15.1" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.15.1.tgz" + integrity sha512-rT7FOwqdudd5npqp4xOYdDT2035LtpcqePjwirh4wjRiEtVsz1FZkRiM2Yj+fOAwYzOm/hNG0GDOipDSaiEGGQ== dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" base64-js "^1.5.1" bignumber.js "^9.0.2" -arweave@^1.12.4: - version "1.15.0" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.15.0.tgz#56203c13badf28a0e420ca700d966e89a53c711b" - integrity sha512-sYfq2yJwkJLthRADsfHygNP+L7fTCyprTjOLYnpP8zaqwywddoNO3UpTk6XGjEiyyU3WfxoFLRLpzx+llZx1WA== +arweave@^1.15.1: + version "1.15.5" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.15.5.tgz" + integrity sha512-Zj3b8juz1ZtDaQDPQlzWyk2I4wZPx3RmcGq8pVJeZXl2Tjw0WRy5ueHPelxZtBLqCirGoZxZEAFRs6SZUSCBjg== dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" base64-js "^1.5.1" bignumber.js "^9.0.2" -arweave@^1.15.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.15.1.tgz#c6183136b20980c81a8cb77ce6fd9fb333e1a174" - integrity sha512-rT7FOwqdudd5npqp4xOYdDT2035LtpcqePjwirh4wjRiEtVsz1FZkRiM2Yj+fOAwYzOm/hNG0GDOipDSaiEGGQ== +arweave@1.11.6: + version "1.11.6" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.11.6.tgz" + integrity sha512-D6N6e2z7oZoxFhu/qElLwQ2T8DxZ8xIqDB+Y16KHvZbassIrrS9iALwxLdaFYNInuyElg6i7qotBMcShWbFSTw== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + axios "^0.27.2" + base64-js "^1.5.1" + bignumber.js "^9.0.2" + util "^0.12.4" + +arweave@1.13.1: + version "1.13.1" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.13.1.tgz" + integrity sha512-B6+N/5Ngvm0w1XTcboRbHGhyJkLmneqz8F5FaoVtd8KHVrzJ8cGq/dBAToP+QL4QJXlRudjLMxX7Mm9tzJt2xQ== dependencies: arconnect "^0.4.2" asn1.js "^5.4.1" base64-js "^1.5.1" bignumber.js "^9.0.2" -asn1.js@5.4.1, asn1.js@^5.2.0, asn1.js@^5.4.1: +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1.js@^5.4.1, asn1.js@5.4.1: version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" @@ -3292,39 +4772,45 @@ asn1.js@5.4.1, asn1.js@^5.2.0, asn1.js@^5.4.1: asn1js@^3.0.1, asn1js@^3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + resolved "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz" integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== dependencies: pvtsutils "^1.3.2" pvutils "^1.1.3" tslib "^2.4.0" -assert@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" - integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== - dependencies: - call-bind "^1.0.2" - is-nan "^1.3.2" - object-is "^1.1.5" - object.assign "^4.1.4" - util "^0.12.5" - assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-types@^0.13.4: version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: tslib "^2.0.1" +ast-types@0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz" + integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== + dependencies: + tslib "^2.0.1" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + async-listener@^0.6.0: version "0.6.10" - resolved "https://registry.yarnpkg.com/async-listener/-/async-listener-0.6.10.tgz#a7c97abe570ba602d782273c0de60a51e3e17cbc" + resolved "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz" integrity sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw== dependencies: semver "^5.3.0" @@ -3332,56 +4818,61 @@ async-listener@^0.6.0: async-mutex@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.0.tgz#ae8048cd4d04ace94347507504b3cf15e631c25f" + resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz" integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== dependencies: tslib "^2.4.0" async-retry@^1.2.1, async-retry@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== dependencies: retry "0.13.1" -async@^2.6.3, async@~2.6.1: +async@^2.6.3: version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" async@^3.2.0, async@^3.2.4, async@~3.2.0: version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== async@^3.2.3: version "3.2.5" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz" integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== +async@~2.6.1: + version "2.6.4" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -"avsc@https://github.com/Bundlr-Network/avsc#csp-fixes": - version "5.4.7" - resolved "https://github.com/Bundlr-Network/avsc#a730cc8018b79e114b6a3381bbb57760a24c6cef" +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" "avsc@https://github.com/Irys-xyz/avsc#csp-fixes": version "5.4.7" - resolved "https://github.com/Irys-xyz/avsc#a730cc8018b79e114b6a3381bbb57760a24c6cef" + resolved "git+ssh://git@github.com/Irys-xyz/avsc.git#a730cc8018b79e114b6a3381bbb57760a24c6cef" aws-sdk@^2.1306.0: version "2.1473.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1473.0.tgz#0bd127447055e0457cf2f4e42c57808dfe44a43b" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1473.0.tgz" integrity sha512-fl45qeU/Mjhfdocsh38Uw9hkZIec10gMfYDovtWm9/eK8V6zn3jtHUNKPfM2yXCjebmsk3s0FNR21aSv5suzsQ== dependencies: buffer "4.9.2" @@ -3395,32 +4886,16 @@ aws-sdk@^2.1306.0: uuid "8.0.0" xml2js "0.5.0" -axios@0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928" - integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og== - dependencies: - follow-redirects "^1.14.8" - -axios@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - axios@^0.21.0, axios@^0.21.3: version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: follow-redirects "^1.14.0" axios@^0.27.2: version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== dependencies: follow-redirects "^1.14.9" @@ -3428,58 +4903,101 @@ axios@^0.27.2: axios@^1.4.0: version "1.5.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f" + resolved "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz" integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@0.26.0: + version "0.26.0" + resolved "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz" + integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og== + dependencies: + follow-redirects "^1.14.8" + b4a@^1.0.1: version "1.6.6" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" + resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz" integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== +babel-core@^7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.6: + version "0.10.6" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +babel-plugin-transform-flow-enums@^0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz" + integrity sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ== + dependencies: + "@babel/plugin-syntax-flow" "^7.12.1" + balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== dependencies: safe-buffer "^5.0.1" base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64url@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" + resolved "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz" integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== basic-ftp@^5.0.2: version "5.0.3" - resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" + resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz" integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== -bech32@1.1.4, bech32@^1.1.4: +bech32@^1.1.4, bech32@1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== bech32@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + resolved "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== bfj@^7.0.2: version "7.1.0" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" + resolved "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz" integrity sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw== dependencies: bluebird "^3.7.2" @@ -3488,38 +5006,45 @@ bfj@^7.0.2: jsonpath "^1.1.1" tryer "^1.0.1" -bignumber.js@9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" - integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== +bigint-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz" + integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== + dependencies: + bindings "^1.3.0" bignumber.js@^9.0.0, bignumber.js@^9.0.2, bignumber.js@^9.1.1, bignumber.js@^9.1.2: version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== +bignumber.js@9.1.1: + version "9.1.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== + binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: +bindings@^1.3.0, bindings@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" bip66@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + resolved "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz" integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== dependencies: safe-buffer "^5.0.1" bl@^4.0.3, bl@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" @@ -3528,7 +5053,7 @@ bl@^4.0.3, bl@^4.1.0: blake-hash@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/blake-hash/-/blake-hash-2.0.0.tgz#af184dce641951126d05b7d1c3de3224f538d66e" + resolved "https://registry.npmjs.org/blake-hash/-/blake-hash-2.0.0.tgz" integrity sha512-Igj8YowDu1PRkRsxZA7NVkdFNxH5rKv5cpLxQ0CVXSIA77pVYwCPRQJ2sMew/oneUpfuYRyjG6r8SmmmnbZb1w== dependencies: node-addon-api "^3.0.0" @@ -3537,7 +5062,7 @@ blake-hash@^2.0.0: blake2b-wasm@^2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" + resolved "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz" integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== dependencies: b4a "^1.0.1" @@ -3545,7 +5070,7 @@ blake2b-wasm@^2.4.0: blake2b@^2.1.3: version "2.1.4" - resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" + resolved "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz" integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== dependencies: blake2b-wasm "^2.4.0" @@ -3553,47 +5078,62 @@ blake2b@^2.1.3: blakejs@^1.1.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== blessed@0.1.81: version "0.1.81" - resolved "https://registry.yarnpkg.com/blessed/-/blessed-0.1.81.tgz#f962d687ec2c369570ae71af843256e6d0ca1129" + resolved "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz" integrity sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ== blob-polyfill@^7.0.20220408: version "7.0.20220408" - resolved "https://registry.yarnpkg.com/blob-polyfill/-/blob-polyfill-7.0.20220408.tgz#38bf5e046c41a21bb13654d9d19f303233b8218c" + resolved "https://registry.npmjs.org/blob-polyfill/-/blob-polyfill-7.0.20220408.tgz" integrity sha512-oD8Ydw+5lNoqq+en24iuPt1QixdPpe/nUF8azTHnviCZYu9zUC+TwdzIp5orpblJosNlgNbVmmAb//c6d6ImUQ== bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.12.0: +bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.12.0: version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@^5.1.2: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +bn.js@^5.1.3: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +bn.js@^5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +bn.js@^5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== +bn.js@4.11.8: + version "4.11.8" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + bodec@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/bodec/-/bodec-0.1.0.tgz#bc851555430f23c9f7650a75ef64c6a94c3418cc" + resolved "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz" integrity sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ== body-parser@1.20.2: version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: bytes "3.1.2" @@ -3609,14 +5149,23 @@ body-parser@1.20.2: type-is "~1.6.18" unpipe "1.0.0" +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + bowser@^2.11.0: version "2.11.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -3624,26 +5173,26 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-level@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" + resolved "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz" integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== dependencies: abstract-level "^1.0.2" @@ -3651,21 +5200,14 @@ browser-level@^1.0.1: module-error "^1.0.2" run-parallel-limit "^1.1.0" -browser-resolve@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" - integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== - dependencies: - resolve "^1.17.0" - browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-aes@^1.2.0: +browserify-aes@^1.0.6, browserify-aes@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -3675,79 +5217,47 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify- inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== +browserslist@^4.23.3, browserslist@^4.24.0, "browserslist@>= 4.21.0": + version "4.24.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz" + integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== dependencies: - pako "~1.0.5" + caniuse-lite "^1.0.30001663" + electron-to-chromium "^1.5.28" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" create-hash "^1.1.0" safe-buffer "^5.1.2" +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + buffer-alloc-unsafe@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== buffer-alloc@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + resolved "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== dependencies: buffer-alloc-unsafe "^1.1.0" @@ -3755,88 +5265,96 @@ buffer-alloc@^1.2.0: buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-equal-constant-time@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== buffer-fill@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + resolved "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-from@^1.0.0, buffer-from@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-pipe@0.0.0: version "0.0.0" - resolved "https://registry.yarnpkg.com/buffer-pipe/-/buffer-pipe-0.0.0.tgz#186ec257d696e8e74c3051160a0e9e9a9811a387" + resolved "https://registry.npmjs.org/buffer-pipe/-/buffer-pipe-0.0.0.tgz" integrity sha512-PvKbsvQOH4dcUyUEvQQSs3CIkkuPcOHt3gKnXwf4HsPKFDxSN7bkmICVIWgOmW/jx/fAEGGn4mIayIJPLs7G8g== dependencies: safe-buffer "^5.1.1" buffer-pipe@0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/buffer-pipe/-/buffer-pipe-0.0.3.tgz#242197681d4591e7feda213336af6c07a5ce2409" + resolved "https://registry.npmjs.org/buffer-pipe/-/buffer-pipe-0.0.3.tgz" integrity sha512-GlxfuD/NrKvCNs0Ut+7b1IHjylfdegMBxQIlZHj7bObKVQBxB5S84gtm2yu1mQ8/sSggceWBDPY0cPXgvX2MuA== dependencies: safe-buffer "^5.1.2" buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== +buffer@^5.4.3: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" + base64-js "^1.3.1" + ieee754 "^1.1.13" -buffer@^5.4.3, buffer@^5.5.0, buffer@^5.7.1: +buffer@^5.5.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.2, buffer@^6.0.3: +buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3, buffer@6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" ieee754 "^1.2.1" -bufferutil@^4.0.6: +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +bufferutil@^4.0.1, bufferutil@^4.0.6: version "4.0.7" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz" integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== dependencies: node-gyp-build "^4.3.0" -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -bytes@3.1.2, bytes@^3.1.0, bytes@^3.1.2: +bytes@^3.1.0, bytes@^3.1.2, bytes@3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + cacache@^15.2.0: version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + resolved "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz" integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: "@npmcli/fs" "^1.0.0" @@ -3860,41 +5378,15 @@ cacache@^15.2.0: cache-content-type@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" + resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz" integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== dependencies: mime-types "^2.1.18" ylru "^1.2.0" -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" - integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-bind@^1.0.7: +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: es-define-property "^1.0.0" @@ -3903,24 +5395,53 @@ call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + camelcase@^5.0.0: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +caniuse-lite@^1.0.30001663: + version "1.0.30001668" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz" + integrity sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw== + catering@^2.1.0, catering@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== cbor-extract@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/cbor-extract/-/cbor-extract-2.1.1.tgz#f154b31529fdb6b7c70fb3ca448f44eda96a1b42" + resolved "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.1.1.tgz" integrity sha512-1UX977+L+zOJHsp0mWFG13GLwO6ucKgSmSW6JTl8B9GUvACvHeIVpFqhU92299Z6PfD09aTXDell5p+lp1rUFA== dependencies: node-gyp-build-optional-packages "5.0.3" @@ -3934,14 +5455,14 @@ cbor-extract@^2.1.1: cbor-x@^1.4.1: version "1.5.4" - resolved "https://registry.yarnpkg.com/cbor-x/-/cbor-x-1.5.4.tgz#8f0754fa8589cbd7339b613b2b5717d133508e98" + resolved "https://registry.npmjs.org/cbor-x/-/cbor-x-1.5.4.tgz" integrity sha512-PVKILDn+Rf6MRhhcyzGXi5eizn1i0i3F8Fe6UMMxXBnWkalq9+C5+VTmlIjAYM4iF2IYF2N+zToqAfYOp+3rfw== optionalDependencies: cbor-extract "^2.1.1" chai@^4.3.7: version "4.3.10" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz" integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== dependencies: assertion-error "^1.1.0" @@ -3952,116 +5473,156 @@ chai@^4.3.7: pathval "^1.1.1" type-detect "^4.0.8" -chalk@3.0.0, chalk@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.x: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2, chalk@^4.x: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== charenc@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== charm@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" + resolved "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz" integrity sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ== check-error@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz" integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== dependencies: get-func-name "^2.0.2" check-types@^11.2.3: version "11.2.3" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.3.tgz#1ffdf68faae4e941fce252840b1787b8edc93b71" + resolved "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz" integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== -chokidar@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== +chokidar@^3.5.3, chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.3.2" -chokidar@3.5.3, chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== dependencies: - anymatch "~3.1.2" + anymatch "~3.1.1" braces "~3.0.2" - glob-parent "~5.1.2" + glob-parent "~5.1.0" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.6.0" + readdirp "~3.5.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.1" chownr@^1.1.1: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== +chrome-launcher@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz" + integrity sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + +chromium-edge-launcher@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz" + integrity sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" circom_runtime@0.1.25: version "0.1.25" - resolved "https://registry.yarnpkg.com/circom_runtime/-/circom_runtime-0.1.25.tgz#62a33b371f4633f30238db7a326c43d988e3a170" + resolved "https://registry.npmjs.org/circom_runtime/-/circom_runtime-0.1.25.tgz" integrity sha512-xBGsBFF5Uv6AKvbpgExYqpHfmfawH2HKe+LyjfKSRevqEV8u63i9KGHVIILsbJNW+0c5bm/66f0PUYQ7qZSkJA== dependencies: ffjavascript "0.3.0" classic-level@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" + resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz" integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== dependencies: abstract-level "^1.0.2" @@ -4072,12 +5633,12 @@ classic-level@^1.2.0: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-color@0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-0.3.2.tgz#75fa5f728c308cc4ac594b05e06cc5d80daccd86" + resolved "https://registry.npmjs.org/cli-color/-/cli-color-0.3.2.tgz" integrity sha512-Ys/nDhHNRcxrS4EUI2RS/QCUE+61AMuEOj3sWDX+EIHkJWj+4XkRbOdwdxJteAJKjXYBbeFJMtfaEPd1MBF9pQ== dependencies: d "~0.1.1" @@ -4087,40 +5648,49 @@ cli-color@0.3.2: cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-spinners@^2.5.0: version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-tableau@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/cli-tableau/-/cli-tableau-2.0.1.tgz#baa78d83e08a2d7ab79b7dad9406f0254977053f" + resolved "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz" integrity sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ== dependencies: chalk "3.0.0" cli-width@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== cliui@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -4129,40 +5699,42 @@ cliui@^7.0.2: cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: - mimic-response "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" clone@^1.0.2: version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== clui@^0.3.6: version "0.3.6" - resolved "https://registry.yarnpkg.com/clui/-/clui-0.3.6.tgz#8e1e5cea7332a6e54083f59da0ccbe1d6f2fa787" + resolved "https://registry.npmjs.org/clui/-/clui-0.3.6.tgz" integrity sha512-Z4UbgZILlIAjkEkZiDOa2aoYjohKx7fa6DxIh6cE9A6WNWZ61iXfQc6CmdC9SKdS5nO0P0UyQ+WfoXfB65e3HQ== dependencies: cli-color "0.3.2" cluster-key-slot@1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + resolved "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz" integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== co-body@^5.1.1: version "5.2.0" - resolved "https://registry.yarnpkg.com/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124" + resolved "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz" integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ== dependencies: inflation "^2.0.0" @@ -4172,7 +5744,7 @@ co-body@^5.1.1: co-body@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547" + resolved "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz" integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ== dependencies: inflation "^2.0.0" @@ -4182,73 +5754,98 @@ co-body@^6.0.0: co@^4.6.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + color-support@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +colorette@^1.0.7: + version "1.4.0" + resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + colorette@2.0.16: version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" -commander@2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== +command-exists@^1.2.8: + version "1.2.9" + resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^2.20.3: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^9.4.1: + version "9.5.0" + resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +commander@2.15.1: + version "2.15.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + compare-versions@^6.0.0-rc.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.0.tgz#3f2131e3ae93577df111dba133e6db876ffe127a" + resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz" integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== compress-commons@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df" + resolved "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz" integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== dependencies: buffer-crc32 "^0.2.13" @@ -4256,71 +5853,89 @@ compress-commons@^4.1.2: normalize-path "^3.0.0" readable-stream "^3.6.0" -compressible@^2.0.12: +compressible@^2.0.12, compressible@~2.0.16: version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" +compression@^1.7.1: + version "1.7.4" + resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== +connect@^3.6.5: + version "3.7.0" + resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" console-control-strings@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -content-disposition@0.5.4, content-disposition@~0.5.2: +content-disposition@~0.5.2, content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" content-type@^1.0.4, content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== continuation-local-storage@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#11f613f74e914fe9b34c92ad2d28fe6ae1db7ffb" + resolved "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz" integrity sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA== dependencies: async-listener "^0.6.0" emitter-listener "^1.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== - cookie@^0.4.0: version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + cookies@~0.9.0: version "0.9.1" - resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.9.1.tgz#3ffed6f60bb4fb5f146feeedba50acc418af67e3" + resolved "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz" integrity sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw== dependencies: depd "~2.0.0" @@ -4328,53 +5943,72 @@ cookies@~0.9.0: copy-to-clipboard@^3.3.1: version "3.3.3" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" copy-to@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" + resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz" integrity sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w== +core-js-compat@^3.38.0, core-js-compat@^3.38.1: + version "3.38.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== + dependencies: + browserslist "^4.23.3" + core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cors@^2.8.5: version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: object-assign "^4" vary "^1" +cosmiconfig@^5.0.5: + version "5.2.1" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + crc-32@^1.2.0: version "1.2.2" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== crc32-stream@^4.0.2: version "4.0.3" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33" + resolved "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz" integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== dependencies: crc-32 "^1.2.0" readable-stream "^3.4.0" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -4383,9 +6017,9 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -4395,19 +6029,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - croner@~4.1.92: version "4.1.97" - resolved "https://registry.yarnpkg.com/croner/-/croner-4.1.97.tgz#6e373dc7bb3026fab2deb0d82685feef20796766" + resolved "https://registry.npmjs.org/croner/-/croner-4.1.97.tgz" integrity sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ== cross-blob@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/cross-blob/-/cross-blob-3.0.2.tgz#66b4b7b5757be6cc9c0afa2b45c4782be0497248" + resolved "https://registry.npmjs.org/cross-blob/-/cross-blob-3.0.2.tgz" integrity sha512-u+7xq68MAjIqvoEKrdgIEupKJNBeU8MSl/cpfPmJ3rm9yvxrgbMPr8TkZS9qnwCgiVC8BsEt9kDkeD7He2zmNA== dependencies: blob-polyfill "^7.0.20220408" @@ -4415,14 +6044,14 @@ cross-blob@^3.0.1: cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz" integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== dependencies: node-fetch "^2.6.12" cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -4431,39 +6060,22 @@ cross-spawn@^7.0.3: crypt@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - cssfilter@0.0.10: version "0.0.10" - resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz" integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== culvert@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/culvert/-/culvert-0.1.2.tgz#9502f5f0154a2d5a22a023e79f71cc936fa6ef6f" + resolved "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz" integrity sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg== cwao-units@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/cwao-units/-/cwao-units-0.7.0.tgz#95dd79221a3c9dcf6c00425617de7164ad9bffab" + resolved "https://registry.npmjs.org/cwao-units/-/cwao-units-0.7.0.tgz" integrity sha512-PjS6uOyWzlsH3pEOAJJrqKw1Adm2GKITJqkHisHAINKERoRRhTCAcZohHLCD/z2v+YCROqvFHc9yS5ydfIq1yw== dependencies: "@terran-one/cosmwasm-vm-js" "^0.2.16" @@ -4482,16 +6094,24 @@ cwao-units@^0.7.0: cwao@^0.5.5: version "0.5.5" - resolved "https://registry.yarnpkg.com/cwao/-/cwao-0.5.5.tgz#fabeb337cad0d16f3899b73927fb139969d7e75f" + resolved "https://registry.npmjs.org/cwao/-/cwao-0.5.5.tgz" integrity sha512-CbI2XPN2R2uwKsuJj5oWxm9X7NQJSnslW1rZ5HU2M09NY7R2CmCjWCQSgtTmO2hPs9okuAxn318GoMSh60EVyw== dependencies: arbundles "^0.11.0" arweave "^1.15.0" ramda "^0.29.1" -d@1, d@^1.0.1, d@^1.0.2: +d@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +d@^1.0.2, d@1: + version "1.0.2" + resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== dependencies: es5-ext "^0.10.64" @@ -4499,39 +6119,74 @@ d@1, d@^1.0.1, d@^1.0.2: d@~0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + resolved "https://registry.npmjs.org/d/-/d-0.1.1.tgz" integrity sha512-0SdM9V9pd/OXJHoWmTfNPTAeD+lw6ZqHg+isPyBFuJsZLSE0Ygg1cYZ/0l6DrKQXMOqGOu1oWupMoOfoRfMZrQ== dependencies: es5-ext "~0.10.2" +d@1: + version "1.0.2" + resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + data-uri-to-buffer@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== data-uri-to-buffer@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz#540bd4c8753a25ee129035aebdedf63b078703c7" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz" integrity sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg== +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + dateformat@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -dayjs@~1.11.5: +dayjs@^1.8.15, dayjs@~1.11.5: version "1.11.10" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== dayjs@~1.8.24: version "1.8.36" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.36.tgz#be36e248467afabf8f5a86bae0de0cdceecced50" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz" integrity sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw== deasync@^0.1.15: version "0.1.29" - resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.29.tgz#8bbbf9d0b235c561b36edd440b6272f1de6c572c" + resolved "https://registry.npmjs.org/deasync/-/deasync-0.1.29.tgz" integrity sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw== dependencies: bindings "^1.5.0" @@ -4539,121 +6194,133 @@ deasync@^0.1.15: debounce@^1.0.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@2.6.9: +debug@^2.2.0: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.9: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1: +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@4, debug@4.3.4: version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@^4.3.6: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" debug@4.3.2: version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" -debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decode-uri-component@^0.2.0: version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-eql@^4.1.3: version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-equal@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" integrity sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw== deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@^4.3.0: + version "4.3.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + defaults@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -define-data-property@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-data-property@^1.1.4: +define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: es-define-property "^1.0.0" es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.1.3, define-properties@^1.1.4: +define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -4662,83 +6329,71 @@ define-properties@^1.1.3, define-properties@^1.1.4: degenerator@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" + resolved "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz" integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== dependencies: ast-types "^0.13.4" escodegen "^2.1.0" esprima "^4.0.1" +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@2.0.0, depd@^2.0.0, depd@~2.0.0: +denodeify@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz" + integrity sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg== + +depd@^2.0.0, depd@~2.0.0, depd@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -des.js@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0, destroy@^1.0.4: +destroy@^1.0.4, destroy@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-browser@5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" + resolved "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz" integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== detect-libc@^2.0.0, detect-libc@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz" integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== diff@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dijkstrajs@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" + resolved "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz" integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== -domain-browser@^4.22.0: - version "4.22.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.22.0.tgz#6ddd34220ec281f9a65d3386d267ddd35c491f9f" - integrity sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw== - drbg.js@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + resolved "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz" integrity sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g== dependencies: browserify-aes "^1.0.6" @@ -4747,12 +6402,12 @@ drbg.js@^1.0.1: duplexer@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== duplexify@^4.0.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz" integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== dependencies: end-of-stream "^1.4.1" @@ -4762,14 +6417,14 @@ duplexify@^4.0.0: dynamic-dedupe@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" + resolved "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz" integrity sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ== dependencies: xtend "^4.0.0" eccrypto@1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/eccrypto/-/eccrypto-1.1.6.tgz#846bd1222323036f7a3515613704386399702bd3" + resolved "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz" integrity sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A== dependencies: acorn "7.1.1" @@ -4779,42 +6434,47 @@ eccrypto@1.1.6: optionalDependencies: secp256k1 "3.7.1" -ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: +ecdsa-sig-formatter@^1.0.11, ecdsa-sig-formatter@1.0.11: version "1.0.11" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== dependencies: safe-buffer "^5.0.1" ed2curve@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d" + resolved "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz" integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ== dependencies: tweetnacl "1.x.x" ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== eip1193-provider@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/eip1193-provider/-/eip1193-provider-1.0.1.tgz#420d29cf4f6c443e3f32e718fb16fafb250637c3" + resolved "https://registry.npmjs.org/eip1193-provider/-/eip1193-provider-1.0.1.tgz" integrity sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g== dependencies: "@json-rpc-tools/provider" "^1.5.5" ejs@^3.1.6: version "3.1.10" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz" integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== dependencies: jake "^10.8.5" -elliptic@6.5.4, elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +electron-to-chromium@^1.5.28: + version "1.5.36" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz" + integrity sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw== + +elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4, elliptic@6.5.4: version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -4827,77 +6487,181 @@ elliptic@6.5.4, elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5 emitter-listener@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" + resolved "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz" integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ== dependencies: shimmer "^1.2.0" emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== encodeurl@^1.0.2, encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.12: +encoding@^0.1.0, encoding@^0.1.12: version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enquirer@2.3.6: version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" ent@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== -env-paths@^2.2.0: +env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +envinfo@^7.13.0: + version "7.14.0" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz" + integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== + err-code@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.1.4" + resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +errorhandler@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz" + integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== + dependencies: + accepts "~1.3.7" + escape-html "~1.0.3" + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + es-define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== dependencies: get-intrinsic "^1.2.4" -es-errors@^1.3.0: +es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.11, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46, es5-ext@~0.10.5, es5-ext@~0.10.6: version "0.10.64" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz" integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== dependencies: es6-iterator "^2.0.3" @@ -4907,7 +6671,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.11, es5-ext@ es6-iterator@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" @@ -4916,21 +6680,36 @@ es6-iterator@^2.0.3: es6-iterator@~0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-0.1.3.tgz#d6f58b8c4fc413c249b4baa19768f8e4d7c8944e" + resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz" integrity sha512-6TOmbFM6OPWkTe+bQ3ZuUkvqcWUjAnYjKUCLdbvRsAUz2Pr+fYIibwNXNkLNtIK9PPFbNMZZddaRNkyJhlGJhA== dependencies: d "~0.1.1" es5-ext "~0.10.5" es6-symbol "~2.0.1" -es6-promise@4.2.8: +es6-promise@^4.0.3, es6-promise@4.2.8: version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== -es6-symbol@^3.1.1, es6-symbol@^3.1.3: +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + +es6-symbol@^3.1.1: + version "3.1.4" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +es6-symbol@^3.1.3: version "3.1.4" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz" integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== dependencies: d "^1.0.2" @@ -4938,7 +6717,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: es6-symbol@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-2.0.1.tgz#761b5c67cfd4f1d18afb234f691d678682cb3bf3" + resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" integrity sha512-wjobO4zO8726HVU7mI2OA/B6QszqwHJuKab7gKHVx+uRfVVYGcWJkCIFxV2Madqb9/RUSrhJ/r6hPfG7FsWtow== dependencies: d "~0.1.1" @@ -4946,7 +6725,7 @@ es6-symbol@~2.0.1: es6-weak-map@~0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-0.1.4.tgz#706cef9e99aa236ba7766c239c8b9e286ea7d228" + resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz" integrity sha512-P+N5Cd2TXeb7G59euFiM7snORspgbInS29Nbf3KNO2JQp/DyhvMCDWd58nsVAXwYJ6W3Bx7qDdy6QQ3PCJ7jKQ== dependencies: d "~0.1.1" @@ -4954,29 +6733,34 @@ es6-weak-map@~0.1.4: es6-iterator "~0.1.3" es6-symbol "~2.0.1" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escodegen@^1.8.1: version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" @@ -4988,7 +6772,7 @@ escodegen@^1.8.1: escodegen@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" @@ -4999,12 +6783,12 @@ escodegen@^2.1.0: esm@^3.2.25: version "3.2.25" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + resolved "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== esniff@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + resolved "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz" integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== dependencies: d "^1.0.1" @@ -5012,39 +6796,39 @@ esniff@^2.0.1: event-emitter "^0.3.5" type "^2.7.2" +esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + esprima@1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz" integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== -esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - estraverse@^4.2.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eth-crypto@^2.3.0: version "2.6.0" - resolved "https://registry.yarnpkg.com/eth-crypto/-/eth-crypto-2.6.0.tgz#b777f367ae8c70e5917b3b7d52adab6b34841e29" + resolved "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz" integrity sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug== dependencies: "@babel/runtime" "7.20.13" @@ -5057,7 +6841,7 @@ eth-crypto@^2.3.0: ethereum-cryptography@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== dependencies: "@types/pbkdf2" "^3.0.0" @@ -5078,7 +6862,7 @@ ethereum-cryptography@^0.1.3: ethereum-cryptography@^2.0.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67" + resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz" integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== dependencies: "@noble/curves" "1.1.0" @@ -5088,26 +6872,28 @@ ethereum-cryptography@^2.0.0: ethereumjs-abi@^0.6.8: version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + resolved "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz" integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== dependencies: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-util@7.1.5, ethereumjs-util@^7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== +ethereumjs-util@^6.0.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" create-hash "^1.1.2" + elliptic "^6.5.2" ethereum-cryptography "^0.1.3" - rlp "^2.2.4" + ethjs-util "0.1.6" + rlp "^2.2.3" -ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: +ethereumjs-util@^6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== dependencies: "@types/bn.js" "^4.11.3" @@ -5118,9 +6904,20 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethers@5.7.2, ethers@^5.5.1: +ethereumjs-util@^7.1.5, ethereumjs-util@7.1.5: + version "7.1.5" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethers@^5.5.1: version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: "@ethersproject/abi" "5.7.0" @@ -5156,7 +6953,7 @@ ethers@5.7.2, ethers@^5.5.1: ethers@^6.8.0: version "6.8.0" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.8.0.tgz#0a26f57e96fd697cefcfcef464e0c325689d1daf" + resolved "https://registry.npmjs.org/ethers/-/ethers-6.8.0.tgz" integrity sha512-zrFbmQRlraM+cU5mE4CZTLBurZTs2gdp2ld0nG/f3ecBK+x6lZ69KSxBqZ4NjclxwfTxl5LeNufcBbMsTdY53Q== dependencies: "@adraffy/ens-normalize" "1.10.0" @@ -5167,25 +6964,61 @@ ethers@^6.8.0: tslib "2.4.0" ws "8.5.0" -ethjs-util@0.1.6, ethjs-util@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -event-emitter@^0.3.5, event-emitter@~0.3.4: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== +ethers@5.7.2: + version "5.7.2" + resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: - d "1" - es5-ext "~0.10.14" - + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + +ethjs-util@^0.1.6, ethjs-util@0.1.6: + version "0.1.6" + resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + +event-emitter@^0.3.5, event-emitter@~0.3.4: + version "0.3.5" + resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + event-stream@=3.3.4: version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz" integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== dependencies: duplexer "~0.1.1" @@ -5196,67 +7029,82 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -event-target-shim@^5.0.0: +event-target-shim@^5.0.0, event-target-shim@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter2@5.0.1, eventemitter2@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" - integrity sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg== - eventemitter2@^6.3.1: version "6.4.9" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz" integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg== eventemitter2@~0.4.14: version "0.4.14" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" integrity sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ== -eventemitter3@4.0.7, eventemitter3@^4.0.7: +eventemitter2@~5.0.1, eventemitter2@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz" + integrity sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg== + +eventemitter3@^4.0.7, eventemitter3@4.0.7: version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== eventemitter3@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== +events@^3.3.0, events@3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + events@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== -events@3.3.0, events@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^5.0.0, execa@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + expand-template@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -exponential-backoff@^3.1.0: +exponential-backoff@^3.1.0, exponential-backoff@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== express@^4.18.2: version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" @@ -5293,19 +7141,19 @@ express@^4.18.2: ext@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: type "^2.7.2" extend@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" @@ -5314,7 +7162,7 @@ external-editor@^3.0.3: extract-zip@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" @@ -5323,81 +7171,116 @@ extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + fast-base64-decode@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" + resolved "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz" integrity sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q== fast-copy@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.1.tgz#9e89ef498b8c04c1cd76b33b8e14271658a732aa" + resolved "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz" integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-patch@^3.0.0-1: version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz#85064ea1b1ebf97a3f7ad01e23f9337e72c66947" + resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz" integrity sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ== fast-json-stable-stringify@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" + integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== + fast-text-encoding@^1.0.0: version "1.0.6" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" + resolved "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz" integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== -fast-xml-parser@^4.2.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz#761e641260706d6e13251c4ef8e3f5694d4b0d79" - integrity sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg== +fast-xml-parser@^4.2.2, fast-xml-parser@^4.4.1: + version "4.5.0" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz" + integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== dependencies: strnum "^1.0.5" fastfile@0.0.20: version "0.0.20" - resolved "https://registry.yarnpkg.com/fastfile/-/fastfile-0.0.20.tgz#794a143d58cfda2e24c298e5ef619c748c8a1879" + resolved "https://registry.npmjs.org/fastfile/-/fastfile-0.0.20.tgz" integrity sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA== -fclone@1.0.11, fclone@~1.0.11: +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fclone@~1.0.11, fclone@1.0.11: version "1.0.11" - resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" + resolved "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz" integrity sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw== fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" fetch-blob@^3.1.2, fetch-blob@^3.1.4, fetch-blob@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz" integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== dependencies: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" -ffjavascript@0.3.0, ffjavascript@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.3.0.tgz#442cd8fbb1ee4cbb1be9d26fd7b2951a1ea45d6a" - integrity sha512-l7sR5kmU3gRwDy8g0Z2tYBXy5ttmafRPFOqY7S6af5cq51JqJWt5eQ/lSR/rs2wQNbDYaYlQr5O+OSUf/oMLoQ== +ffjavascript@^0.2.45: + version "0.2.63" + resolved "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.63.tgz" + integrity sha512-dBgdsfGks58b66JnUZeZpGxdMIDQ4QsD3VYlRJyFVrKQHb2kJy4R2gufx5oetrTxXPT+aEjg0dOvOLg1N0on4A== dependencies: wasmbuilder "0.0.16" wasmcurves "0.2.2" web-worker "1.2.0" -ffjavascript@^0.2.45: - version "0.2.63" - resolved "https://registry.yarnpkg.com/ffjavascript/-/ffjavascript-0.2.63.tgz#0c1216a1f123dc9181df69e144473704d2f115eb" - integrity sha512-dBgdsfGks58b66JnUZeZpGxdMIDQ4QsD3VYlRJyFVrKQHb2kJy4R2gufx5oetrTxXPT+aEjg0dOvOLg1N0on4A== +ffjavascript@^0.3.0, ffjavascript@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.3.0.tgz" + integrity sha512-l7sR5kmU3gRwDy8g0Z2tYBXy5ttmafRPFOqY7S6af5cq51JqJWt5eQ/lSR/rs2wQNbDYaYlQr5O+OSUf/oMLoQ== dependencies: wasmbuilder "0.0.16" wasmcurves "0.2.2" @@ -5405,45 +7288,58 @@ ffjavascript@^0.2.45: figlet@^1.5.2: version "1.7.0" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.7.0.tgz#46903a04603fd19c3e380358418bb2703587a72e" + resolved "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz" integrity sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg== figures@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== filelist@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: minimatch "^5.0.1" filewatcher@~3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/filewatcher/-/filewatcher-3.0.1.tgz#f4a1957355ddaf443ccd78a895f3d55e23c8a034" + resolved "https://registry.npmjs.org/filewatcher/-/filewatcher-3.0.1.tgz" integrity sha512-Fro8py2B8EJupSP37Kyd4kjKZLr+5ksFq7Vbw8A392Z15Unq8016SPUDvO/AsDj5V6bbPk98PTAinpc5YhPbJw== dependencies: debounce "^1.0.0" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + finalhandler@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" @@ -5454,51 +7350,78 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0, find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +flow-enums-runtime@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz" + integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== + +flow-parser@0.*: + version "0.248.1" + resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.248.1.tgz" + integrity sha512-fkCfVPelbTzSVp+jVwSvEyc+I4WG8MNhRG/EWSZZTlgHAMEdhXJaFEbfErXxMktboMhVGchvEFhWxkzNGM1m2A== + follow-redirects@^1.14.0, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.0: version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" -form-data@4.0.0, form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -5506,46 +7429,46 @@ form-data@^3.0.0: formdata-polyfill@^4.0.10: version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + resolved "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz" integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== dependencies: fetch-blob "^3.1.2" formidable@^1.1.1: version "1.2.6" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" + resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz" integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== forwarded@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fpjson-lang@^0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/fpjson-lang/-/fpjson-lang-0.1.5.tgz#a05cfc52697711af16bd3315b52eb6912ef34eea" + resolved "https://registry.npmjs.org/fpjson-lang/-/fpjson-lang-0.1.5.tgz" integrity sha512-+YvA1HbmUfJxAsFvkPwCRPQbNYU/0sJ9ffORMCykT5rQAj7YDl0ShA3ZWgGxMSmu4JcHDWXao1c2ddWw3IZupQ== dependencies: ramda "^0.28.0" -fresh@0.5.2, fresh@~0.5.2: +fresh@~0.5.2, fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from@~0: version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz" integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== fs-constants@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -5554,34 +7477,44 @@ fs-extra@^8.1.0: fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.1, fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.1, function-bind@^1.1.2: +function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gauge@^4.0.3: version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz" integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -5595,7 +7528,7 @@ gauge@^4.0.3: gaxios@^4.0.0: version "4.3.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" + resolved "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz" integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== dependencies: abort-controller "^3.0.0" @@ -5606,7 +7539,7 @@ gaxios@^4.0.0: gaxios@^5.0.0, gaxios@^5.0.1: version "5.1.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013" + resolved "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz" integrity sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA== dependencies: extend "^3.0.2" @@ -5616,7 +7549,7 @@ gaxios@^5.0.0, gaxios@^5.0.1: gcp-metadata@^4.2.0: version "4.3.1" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" + resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz" integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== dependencies: gaxios "^4.0.0" @@ -5624,7 +7557,7 @@ gcp-metadata@^4.2.0: gcp-metadata@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408" + resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz" integrity sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w== dependencies: gaxios "^5.0.0" @@ -5632,32 +7565,27 @@ gcp-metadata@^5.3.0: generic-pool@3.9.0: version "3.9.0" - resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.9.0.tgz#36f4a678e963f4fdb8707eab050823abc4e8f5e4" + resolved "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz" integrity sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0, get-func-name@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-intrinsic@^1.2.4: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: es-errors "^1.3.0" @@ -5668,19 +7596,33 @@ get-intrinsic@^1.2.4: get-package-type@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + get-uri@^6.0.1: version "6.0.2" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.2.tgz#e019521646f4a8ff6d291fbaea2c46da204bb75b" + resolved "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz" integrity sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw== dependencies: basic-ftp "^5.0.2" @@ -5690,34 +7632,46 @@ get-uri@^6.0.1: getopts@2.2.5: version "2.2.5" - resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b" + resolved "https://registry.npmjs.org/getopts/-/getopts-2.2.5.tgz" integrity sha512-9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA== git-node-fs@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/git-node-fs/-/git-node-fs-1.0.0.tgz#49b215e242ebe43aa4c7561bbba499521752080f" + resolved "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz" integrity sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ== git-sha1@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/git-sha1/-/git-sha1-0.1.2.tgz#599ac192b71875825e13a445f3a6e05118c2f745" + resolved "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz" integrity sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg== github-from-package@0.0.0: version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob@^7.0.5, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.6: version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" @@ -5729,7 +7683,7 @@ glob@7.1.6: glob@8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" @@ -5738,21 +7692,22 @@ glob@8.1.0: minimatch "^5.0.1" once "^1.3.0" -glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" + define-properties "^1.2.1" + gopd "^1.0.1" google-auth-library@^6.0.0: version "6.1.6" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.6.tgz#deacdcdb883d9ed6bac78bb5d79a078877fdf572" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz" integrity sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ== dependencies: arrify "^2.0.0" @@ -5767,7 +7722,7 @@ google-auth-library@^6.0.0: google-auth-library@^8.0.1: version "8.9.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.9.0.tgz#15a271eb2ec35d43b81deb72211bd61b1ef14dd0" + resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz" integrity sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg== dependencies: arrify "^2.0.0" @@ -5782,94 +7737,77 @@ google-auth-library@^8.0.1: google-p12-pem@^3.1.3: version "3.1.4" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" + resolved "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz" integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== dependencies: node-forge "^1.3.1" google-p12-pem@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a" + resolved "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz" integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ== dependencies: node-forge "^1.3.1" google-protobuf@^3.19.1: version "3.21.2" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + resolved "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz" integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== google-protobuf@~3.14.0: version "3.14.0" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.14.0.tgz#20373d22046e63831a5110e11a84f713cc43651e" + resolved "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.14.0.tgz" integrity sha512-bwa8dBuMpOxg7COyqkW6muQuvNnWgVN8TX/epDRGW5m0jcrmq2QJyCyiV8ZE2/6LaIIqJtiv9bYokFhfpy/o6w== gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" -got@^11.8.6: - version "11.8.6" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" - integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphql-tag@^2.11.0: version "2.12.6" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== dependencies: tslib "^2.1.0" +"graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", "graphql@^14.2.1 || ^15.0.0 || ^16.0.0", "graphql@^15.3.0 || ^16.0.0", graphql@^16.2.0, "graphql@14.x || 15.x || 16.x": + version "16.8.1" + resolved "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== + graphql@15.8.0: version "15.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" + resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== -graphql@^16.2.0: - version "16.8.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== - growl@1.10.5: version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== growly@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== grpc-server-reflection@^0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/grpc-server-reflection/-/grpc-server-reflection-0.1.5.tgz#76ba71649fd71b0ebae7d5254ddc781ba61054d0" + resolved "https://registry.npmjs.org/grpc-server-reflection/-/grpc-server-reflection-0.1.5.tgz" integrity sha512-i69RYu6v65enzknNAPUgerFuVQfo+L3n9g4c1A/Sv5jUHMpxMIjSbBA+YWls9Sr4Flac4oohp4Gx8f389CaHuw== dependencies: google-protobuf "^3.19.1" gtoken@^5.0.4: version "5.3.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" + resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz" integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== dependencies: gaxios "^4.0.0" @@ -5878,101 +7816,123 @@ gtoken@^5.0.4: gtoken@^6.1.0: version "6.1.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc" + resolved "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz" integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ== dependencies: gaxios "^5.0.1" google-p12-pem "^4.0.0" jws "^4.0.0" +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-property-descriptors@^1.0.2: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + resolved "https://registry.npmjs.org/has/-/has-1.0.4.tgz" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7, hash.js@1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hermes-estree@0.22.0: + version "0.22.0" + resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.22.0.tgz" + integrity sha512-FLBt5X9OfA8BERUdc6aZS36Xz3rRuB0Y/mfocSADWEJfomc1xfene33GdyAmtTkKTBXTN/EgAy+rjTKkkZJHlw== + +hermes-estree@0.23.1: + version "0.23.1" + resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz" + integrity sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg== + +hermes-parser@0.22.0: + version "0.22.0" + resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.22.0.tgz" + integrity sha512-gn5RfZiEXCsIWsFGsKiykekktUoh0PdFWYocXsUdZIyWSckT6UIyPcyyUIPSR3kpnELWeK3n3ztAse7Mat6PSA== + dependencies: + hermes-estree "0.22.0" + +hermes-parser@0.23.1: + version "0.23.1" + resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz" + integrity sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA== + dependencies: + hermes-estree "0.23.1" + hi-base32@^0.5.1: version "0.5.1" - resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" + resolved "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz" integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" @@ -5981,36 +7941,47 @@ hmac-drbg@^1.0.1: hoopy@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== http-assert@^1.3.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f" + resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz" integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w== dependencies: deep-equal "~1.0.1" http-errors "~1.8.0" -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: +http-cache-semantics@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== +http-errors@^1.6.3: + version "1.8.1" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== dependencies: - depd "2.0.0" + depd "~1.1.2" inherits "2.0.4" setprototypeof "1.2.0" - statuses "2.0.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-errors@^1.7.3: + version "1.8.1" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0: +http-errors@~1.8.0: version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== dependencies: depd "~1.1.2" @@ -6019,9 +7990,20 @@ http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + http-proxy-agent@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: "@tootallnate/once" "1" @@ -6030,7 +8012,7 @@ http-proxy-agent@^4.0.1: http-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== dependencies: "@tootallnate/once" "2" @@ -6039,28 +8021,15 @@ http-proxy-agent@^5.0.0: http-proxy-agent@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz" integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== dependencies: agent-base "^7.1.0" debug "^4.3.4" -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -6068,99 +8037,132 @@ https-proxy-agent@^5.0.0: https-proxy-agent@^7.0.2: version "7.0.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz" integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== dependencies: agent-base "^7.0.2" debug "4" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + humanize-ms@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" humanize-number@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18" + resolved "https://registry.npmjs.org/humanize-number/-/humanize-number-0.0.2.tgz" integrity sha512-un3ZAcNQGI7RzaWGZzQDH47HETM4Wrj6z6E4TId8Yeq9w5ZKUVB1nrT2jwFheTUjEmqcgTjXDc959jum+ai1kQ== -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +hyper-async@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/hyper-async/-/hyper-async-1.1.2.tgz" + integrity sha512-cnpOgKa+5FZOaccTtjduac1FrZuSc38/ftCp3vYJdUMt+7c+uvGDKLDK4MTNK8D3aFjIeveVrPcSgUPvzZLopg== + +iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ieee754@1.1.13: version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +image-size@^1.0.2: + version "1.1.1" + resolved "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + dependencies: + queue "6.0.2" immediate@~3.0.5: version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== immutable@^4.1.0: version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflation@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.1.0.tgz#9214db11a47e6f756d111c4f9df96971c60f886c" + resolved "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz" integrity sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.5, ini@~1.3.0: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@^8.2.4: version "8.2.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz" integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: ansi-escapes "^4.2.1" @@ -6179,14 +8181,30 @@ inquirer@^8.2.4: through "^2.3.6" wrap-ansi "^6.0.1" +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + interpret@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + ip-address@^9.0.5: version "9.0.5" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + resolved "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz" integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== dependencies: jsbn "1.1.0" @@ -6194,193 +8212,302 @@ ip-address@^9.0.5: ip@^1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz" integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== ip@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - ipaddr.js@^2.0.1: version "2.1.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-buffer@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-buffer@~1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.3: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.13.0: version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + is-docker@^2.0.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-function@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: has-tostringtag "^1.0.0" is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hex-prefixed@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-interactive@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== is-lambda@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== -is-nan@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" + has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-typed-array@^1.1.3: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13, is-typed-array@^1.1.3: + version "1.1.13" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== dependencies: - which-typed-array "^1.1.11" + which-typed-array "^1.1.14" -is-typedarray@1.0.0, is-typedarray@^1.0.0: +is-typedarray@^1.0.0, is-typedarray@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-wsl@^2.2.0: +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isarray@^2.0.1: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isomorphic-timers-promises@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz#e4137c24dbc54892de8abae3a4b5c1ffff381598" - integrity sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ== +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== isomorphic-unfetch@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + resolved "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz" integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== dependencies: node-fetch "^2.6.1" unfetch "^4.2.0" +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + isomorphic-ws@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== jake@^10.8.5: version "10.9.1" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.1.tgz#8dc96b7fcc41cb19aa502af506da4e1d56f5e62b" + resolved "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz" integrity sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w== dependencies: async "^3.2.3" @@ -6388,24 +8515,128 @@ jake@^10.8.5: filelist "^1.0.4" minimatch "^3.1.2" +jayson@^4.1.1: + version "4.1.2" + resolved "https://registry.npmjs.org/jayson/-/jayson-4.1.2.tgz" + integrity sha512-5nzMWDHy6f+koZOuYsArh2AXs73NfWYVlFyJJuCedr93GpY+Ku8qq10ropSXVfHK+H0T6paA88ww+/dV+1fBNA== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + JSONStream "^1.3.5" + uuid "^8.3.2" + ws "^7.5.10" + +jest-environment-node@^29.6.3: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.6.3: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-worker@^29.6.3: + version "29.7.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + jmespath@0.16.0: version "0.16.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" + resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz" integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== +joi@^17.2.1: + version "17.13.3" + resolved "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz" + integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + js-base64@^3.7.2: version "3.7.5" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz" integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== js-cookie@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== js-git@^0.7.8: version "0.7.8" - resolved "https://registry.yarnpkg.com/js-git/-/js-git-0.7.8.tgz#52fa655ab61877d6f1079efc6534b554f31e5444" + resolved "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz" integrity sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA== dependencies: bodec "^0.1.0" @@ -6415,79 +8646,155 @@ js-git@^0.7.8: js-sha256@^0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" + resolved "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== -js-sha3@0.8.0, js-sha3@^0.8.0: +js-sha3@^0.8.0, js-sha3@0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== js-sha512@^0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" + resolved "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz" integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== -js-yaml@4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: - argparse "^2.0.1" + argparse "^1.0.7" + esprima "^4.0.0" -js-yaml@4.1.0: +js-yaml@^4.1.0, js-yaml@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" +js-yaml@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + dependencies: + argparse "^2.0.1" + jsbn@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== +jsc-android@^250231.0.0: + version "250231.0.0" + resolved "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz" + integrity sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw== + +jsc-safe-url@^0.2.2: + version "0.2.4" + resolved "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz" + integrity sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q== + +jscodeshift@^0.14.0: + version "0.14.0" + resolved "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz" + integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== + dependencies: + "@babel/core" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/preset-flow" "^7.13.13" + "@babel/preset-typescript" "^7.13.0" + "@babel/register" "^7.13.16" + babel-core "^7.0.0-bridge.0" + chalk "^4.1.2" + flow-parser "0.*" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + neo-async "^2.5.0" + node-dir "^0.1.17" + recast "^0.21.0" + temp "^0.8.4" + write-file-atomic "^2.3.0" + +jsesc@^3.0.2, jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + json-beautify@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/json-beautify/-/json-beautify-1.1.1.tgz#8a1ed511ad5d52ca63ed29f7c61896c6a6ebbb9f" + resolved "https://registry.npmjs.org/json-beautify/-/json-beautify-1.1.1.tgz" integrity sha512-17j+Hk2lado0xqKtUcyAjK0AtoHnPSIgktWRsEXgdFQFG9UnaGw6CHa0J7xsvulxRpFl6CrkDFHght1p5ZJc4A== json-bigint@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== dependencies: bignumber.js "^9.0.0" -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-stringify-safe@5, json-stringify-safe@^5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@5: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + jsonpath@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + resolved "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz" integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== dependencies: esprima "1.2.2" static-eval "2.0.2" underscore "1.12.1" +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + jszip@^3.6.0: version "3.10.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" + resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== dependencies: lie "~3.3.0" @@ -6497,7 +8804,7 @@ jszip@^3.6.0: jwa@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" + resolved "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz" integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== dependencies: buffer-equal-constant-time "1.0.1" @@ -6506,7 +8813,7 @@ jwa@^2.0.0: jws@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4" + resolved "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz" integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== dependencies: jwa "^2.0.0" @@ -6514,7 +8821,7 @@ jws@^4.0.0: keccak@^3.0.0, keccak@^3.0.2: version "3.0.4" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz" integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" @@ -6523,26 +8830,29 @@ keccak@^3.0.0, keccak@^3.0.2: keygrip@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz" integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== dependencies: tsscmp "1.0.6" -keyv@^4.0.0: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - keyvaluestorage-interface@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" + resolved "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz" integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + knex@^0.95.6: version "0.95.15" - resolved "https://registry.yarnpkg.com/knex/-/knex-0.95.15.tgz#39d7e7110a6e2ad7de5d673d2dea94143015e0e7" + resolved "https://registry.npmjs.org/knex/-/knex-0.95.15.tgz" integrity sha512-Loq6WgHaWlmL2bfZGWPsy4l8xw4pOE+tmLGkPG0auBppxpI0UcK+GYCycJcqz9W54f2LiGewkCVLBm3Wq4ur/w== dependencies: colorette "2.0.16" @@ -6561,7 +8871,7 @@ knex@^0.95.6: koa-body@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/koa-body/-/koa-body-4.2.0.tgz#37229208b820761aca5822d14c5fc55cee31b26f" + resolved "https://registry.npmjs.org/koa-body/-/koa-body-4.2.0.tgz" integrity sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA== dependencies: "@types/formidable" "^1.0.31" @@ -6570,7 +8880,7 @@ koa-body@^4.2.0: koa-bodyparser@^4.3.0: version "4.4.1" - resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz#a908d848e142cc57d9eece478e932bf00dce3029" + resolved "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz" integrity sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w== dependencies: co-body "^6.0.0" @@ -6579,12 +8889,12 @@ koa-bodyparser@^4.3.0: koa-compose@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" + resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz" integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== koa-convert@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5" + resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz" integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA== dependencies: co "^4.6.0" @@ -6592,12 +8902,12 @@ koa-convert@^2.0.0: koa-is-json@1: version "1.0.0" - resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" + resolved "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz" integrity sha512-+97CtHAlWDx0ndt0J8y3P12EWLwTLMXIfMnYDev3wOTwH/RpBGMlfn4bDXlMEg1u73K6XRE9BbUp+5ZAYoRYWw== koa-json@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/koa-json/-/koa-json-2.0.2.tgz#36af14e6ea1f5d646d7c44a285701c6f85a4fde4" + resolved "https://registry.npmjs.org/koa-json/-/koa-json-2.0.2.tgz" integrity sha512-8+dz0T2ekDuNN1svYoKPCV2txotQ3Ufg8Fn5bft1T48MPJWiC/HKmkk+3xj9EC/iNZuFYeLRazN2h2o3RSUXuQ== dependencies: koa-is-json "1" @@ -6605,7 +8915,7 @@ koa-json@^2.0.2: koa-logger@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.1.tgz#ab9db879526db3837cc9ce4fd983c025b1689f22" + resolved "https://registry.npmjs.org/koa-logger/-/koa-logger-3.2.1.tgz" integrity sha512-MjlznhLLKy9+kG8nAXKJLM0/ClsQp/Or2vI3a5rbSQmgl8IJBQO0KI5FA70BvW+hqjtxjp49SpH2E7okS6NmHg== dependencies: bytes "^3.1.0" @@ -6615,7 +8925,7 @@ koa-logger@^3.2.1: koa-router@^10.1.1: version "10.1.1" - resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-10.1.1.tgz#20809f82648518b84726cd445037813cd99f17ff" + resolved "https://registry.npmjs.org/koa-router/-/koa-router-10.1.1.tgz" integrity sha512-z/OzxVjf5NyuNO3t9nJpx7e1oR3FSBAauiwXtMQu4ppcnuNZzTaQ4p21P8A6r2Es8uJJM339oc4oVW+qX7SqnQ== dependencies: debug "^4.1.1" @@ -6624,9 +8934,9 @@ koa-router@^10.1.1: methods "^1.1.2" path-to-regexp "^6.1.0" -koa@^2.13.4: +koa@^2.13.1, koa@^2.13.4: version "2.15.1" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.15.1.tgz#3d03840b8d9684c51b2b05a40ee7e7ba8621084c" + resolved "https://registry.npmjs.org/koa/-/koa-2.15.1.tgz" integrity sha512-kpxzGxsv7tlc0WmccWd6CfdWqYXk4o/FsCTjnKaDnHLjPK/Sy1MpoBkuKO5LN7GdPHgPljrAVmMO3wbFxEJTeA== dependencies: accepts "^1.3.5" @@ -6655,19 +8965,19 @@ koa@^2.13.4: lazy@~1.0.11: version "1.0.11" - resolved "https://registry.yarnpkg.com/lazy/-/lazy-1.0.11.tgz#daa068206282542c088288e975c297c1ae77b690" + resolved "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz" integrity sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA== lazystream@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz" integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== dependencies: readable-stream "^2.0.5" -leb128@0.0.4, leb128@^0.0.4: +leb128@^0.0.4, leb128@0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/leb128/-/leb128-0.0.4.tgz#f96d698cf3ba5b677423abfe50b7e9b2df1463ff" + resolved "https://registry.npmjs.org/leb128/-/leb128-0.0.4.tgz" integrity sha512-2zejk0fCIgY8RVcc/KzvyfpDio5Oo8HgPZmkrOmdwmbk0KpKpgD+JKwikxKk8cZYkANIhwHK50SNukkCm3XkCQ== dependencies: bn.js "^4.11.6" @@ -6675,12 +8985,12 @@ leb128@0.0.4, leb128@^0.0.4: level-supports@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" + resolved "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz" integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== level-transcoder@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" + resolved "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz" integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== dependencies: buffer "^6.0.3" @@ -6688,15 +8998,20 @@ level-transcoder@^1.0.1: level@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" + resolved "https://registry.npmjs.org/level/-/level-8.0.0.tgz" integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== dependencies: browser-level "^1.0.1" classic-level "^1.2.0" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@~0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" @@ -6704,33 +9019,46 @@ levn@~0.3.0: libsodium-wrappers@^0.7.6: version "0.7.13" - resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" + resolved "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz" integrity sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw== dependencies: libsodium "^0.7.13" libsodium@^0.7.13: version "0.7.13" - resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.13.tgz#230712ec0b7447c57b39489c48a4af01985fb393" + resolved "https://registry.npmjs.org/libsodium/-/libsodium-0.7.13.tgz" integrity sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw== lie@~3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: immediate "~3.0.5" +lighthouse-logger@^1.0.0: + version "1.4.2" + resolved "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz" + integrity sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g== + dependencies: + debug "^2.6.9" + marky "^1.2.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + lit-connect-modal@^0.1.11: version "0.1.11" - resolved "https://registry.yarnpkg.com/lit-connect-modal/-/lit-connect-modal-0.1.11.tgz#688fa9601b920c917856a5dbe8491a4fbaf1d6ab" + resolved "https://registry.npmjs.org/lit-connect-modal/-/lit-connect-modal-0.1.11.tgz" integrity sha512-EG6pcCqdxZQJt3MPDq3gJ5Sz4E5sJdydtAF7VFJu6z6GDHO1Ybp8WrTx8CUnHiF54/MQBRi6Nb7cbTvv+BKWvQ== dependencies: micromodal "^0.4.10" lit-siwe@^1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/lit-siwe/-/lit-siwe-1.1.8.tgz#6a393069012816d629c518bb8aa410f1e4a78bd7" + resolved "https://registry.npmjs.org/lit-siwe/-/lit-siwe-1.1.8.tgz" integrity sha512-gXI8GG0GAClw6G7T9p4p6Kn9ywDo8j2d90ShaYArJdsqqO9gwXfzxF84SMeY+bpsNqqQ3FahrhEwTCHd6w7wNw== dependencies: "@spruceid/siwe-parser" "1.1.3" @@ -6739,7 +9067,7 @@ lit-siwe@^1.1.8: lmdb@^2.8.2, lmdb@^2.8.3: version "2.8.5" - resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.8.5.tgz#ce191110c755c0951caa062722e300c703973837" + resolved "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz" integrity sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ== dependencies: msgpackr "^1.9.5" @@ -6757,138 +9085,186 @@ lmdb@^2.8.2, lmdb@^2.8.3: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + lodash.defaults@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.difference@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + resolved "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz" integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== lodash.flatten@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.sortby@^4.7.0: version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + lodash.union@^4.6.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + resolved "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz" integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-driver@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + resolved "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz" integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== +log-symbols@^4.1.0, log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + log-symbols@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== dependencies: chalk "^4.0.0" -log-symbols@4.1.0, log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== +logkitty@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz" + integrity sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ== dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" + ansi-fragments "^0.2.1" + dayjs "^1.8.15" + yargs "^15.1.0" loglevel@^1.6.8, loglevel@^1.8.0: version "1.9.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz" integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== logplease@^1.2.15: version "1.2.15" - resolved "https://registry.yarnpkg.com/logplease/-/logplease-1.2.15.tgz#3da442e93751a5992cc19010a826b08d0293c48a" + resolved "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz" integrity sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA== long@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== long@^5.0.0: version "5.2.3" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + resolved "https://registry.npmjs.org/long/-/long-5.2.3.tgz" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== +loose-envify@^1.0.0, loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + loupe@^2.3.6: version "2.3.6" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== dependencies: get-func-name "^2.0.0" -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@^10.2.2: + version "10.4.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== -"lru-cache@7.10.1 - 7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" - integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru-cache@^7.14.1: version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== +"lru-cache@7.10.1 - 7.13.1": + version "7.13.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz" + integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== + lru-queue@0.1: version "0.1.0" - resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz" integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== dependencies: es5-ext "~0.10.2" +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + make-fetch-happen@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== dependencies: agentkeepalive "^4.1.3" @@ -6908,14 +9284,26 @@ make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + map-stream@~0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz" integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== +marky@^1.2.2: + version "1.2.5" + resolved "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz" + integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== + md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -6924,7 +9312,7 @@ md5.js@^1.3.4: md5@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== dependencies: charenc "0.0.2" @@ -6933,12 +9321,17 @@ md5@^2.3.0: media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== +memoize-one@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz" + integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== + memoizee@0.3.x: version "0.3.10" - resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.3.10.tgz#4eca0d8aed39ec9d017f4c5c2f2f6432f42e5c8f" + resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz" integrity sha512-LLzVUuWwGBKK188spgOK/ukrp5zvd9JGsiLDH41pH9vt5jvhZfsu5pxDuAnYAMG8YEGce72KO07sSBy9KkvOfw== dependencies: d "~0.1.1" @@ -6951,7 +9344,7 @@ memoizee@0.3.x: memory-level@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" + resolved "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz" integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== dependencies: abstract-level "^1.0.0" @@ -6960,122 +9353,344 @@ memory-level@^1.0.0: merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@^1.1.2, methods@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== +metro-babel-transformer@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz" + integrity sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg== + dependencies: + "@babel/core" "^7.20.0" + flow-enums-runtime "^0.0.6" + hermes-parser "0.23.1" + nullthrows "^1.1.1" + +metro-cache-key@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz" + integrity sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA== + dependencies: + flow-enums-runtime "^0.0.6" + +metro-cache@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz" + integrity sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA== + dependencies: + exponential-backoff "^3.1.1" + flow-enums-runtime "^0.0.6" + metro-core "0.80.12" + +metro-config@^0.80.3, metro-config@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz" + integrity sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ== + dependencies: + connect "^3.6.5" + cosmiconfig "^5.0.5" + flow-enums-runtime "^0.0.6" + jest-validate "^29.6.3" + metro "0.80.12" + metro-cache "0.80.12" + metro-core "0.80.12" + metro-runtime "0.80.12" + +metro-core@^0.80.3, metro-core@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz" + integrity sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw== + dependencies: + flow-enums-runtime "^0.0.6" + lodash.throttle "^4.1.1" + metro-resolver "0.80.12" + +metro-file-map@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz" + integrity sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw== + dependencies: + anymatch "^3.0.3" + debug "^2.2.0" + fb-watchman "^2.0.0" + flow-enums-runtime "^0.0.6" + graceful-fs "^4.2.4" + invariant "^2.2.4" + jest-worker "^29.6.3" + micromatch "^4.0.4" + node-abort-controller "^3.1.1" + nullthrows "^1.1.1" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +metro-minify-terser@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz" + integrity sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ== + dependencies: + flow-enums-runtime "^0.0.6" + terser "^5.15.0" + +metro-resolver@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz" + integrity sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw== + dependencies: + flow-enums-runtime "^0.0.6" + +metro-runtime@^0.80.3, metro-runtime@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz" + integrity sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw== + dependencies: + "@babel/runtime" "^7.25.0" + flow-enums-runtime "^0.0.6" + +metro-source-map@^0.80.3, metro-source-map@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz" + integrity sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw== + dependencies: + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + flow-enums-runtime "^0.0.6" + invariant "^2.2.4" + metro-symbolicate "0.80.12" + nullthrows "^1.1.1" + ob1 "0.80.12" + source-map "^0.5.6" + vlq "^1.0.0" + +metro-symbolicate@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz" + integrity sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw== + dependencies: + flow-enums-runtime "^0.0.6" + invariant "^2.2.4" + metro-source-map "0.80.12" + nullthrows "^1.1.1" + source-map "^0.5.6" + through2 "^2.0.1" + vlq "^1.0.0" + +metro-transform-plugins@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz" + integrity sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + flow-enums-runtime "^0.0.6" + nullthrows "^1.1.1" + +metro-transform-worker@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz" + integrity sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/parser" "^7.20.0" + "@babel/types" "^7.20.0" + flow-enums-runtime "^0.0.6" + metro "0.80.12" + metro-babel-transformer "0.80.12" + metro-cache "0.80.12" + metro-cache-key "0.80.12" + metro-minify-terser "0.80.12" + metro-source-map "0.80.12" + metro-transform-plugins "0.80.12" + nullthrows "^1.1.1" + +metro@^0.80.3, metro@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz" + integrity sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/parser" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + accepts "^1.3.7" + chalk "^4.0.0" + ci-info "^2.0.0" + connect "^3.6.5" + debug "^2.2.0" + denodeify "^1.2.1" + error-stack-parser "^2.0.6" + flow-enums-runtime "^0.0.6" + graceful-fs "^4.2.4" + hermes-parser "0.23.1" + image-size "^1.0.2" + invariant "^2.2.4" + jest-worker "^29.6.3" + jsc-safe-url "^0.2.2" + lodash.throttle "^4.1.1" + metro-babel-transformer "0.80.12" + metro-cache "0.80.12" + metro-cache-key "0.80.12" + metro-config "0.80.12" + metro-core "0.80.12" + metro-file-map "0.80.12" + metro-resolver "0.80.12" + metro-runtime "0.80.12" + metro-source-map "0.80.12" + metro-symbolicate "0.80.12" + metro-transform-plugins "0.80.12" + metro-transform-worker "0.80.12" + mime-types "^2.1.27" + nullthrows "^1.1.1" + serialize-error "^2.1.0" + source-map "^0.5.6" + strip-ansi "^6.0.0" + throat "^5.0.0" + ws "^7.5.10" + yargs "^17.6.2" + micro-ftch@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== +micromatch@^4.0.4: + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + micromodal@^0.4.10: version "0.4.10" - resolved "https://registry.yarnpkg.com/micromodal/-/micromodal-0.4.10.tgz#d6f59c21d2f4a5af480f65909eb9608a1d558c73" + resolved "https://registry.npmjs.org/micromodal/-/micromodal-0.4.10.tgz" integrity sha512-BUrEnzMPFBwK8nOE4xUDYHLrlGlLULQVjpja99tpJQPSUEWgw3kTLp1n1qv0HmKU29AiHE7Y7sMLiRziDK4ghQ== -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.4.1: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== mime@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.2, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^5.1.0: version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-fetch@^1.3.2: version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== dependencies: minipass "^3.1.0" @@ -7086,40 +9701,40 @@ minipass-fetch@^1.3.2: minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass-sized@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== dependencies: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" minipass@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== minizlib@^2.0.0, minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -7127,17 +9742,31 @@ minizlib@^2.0.0, minizlib@^2.1.1: mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@1.0.4, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mnemonist@^0.39.8: + version "0.39.8" + resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz" + integrity sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ== + dependencies: + obliterator "^2.0.1" + mocha@^10.2.0: version "10.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz" integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== dependencies: ansi-colors "4.1.1" @@ -7163,7 +9792,7 @@ mocha@^10.2.0: mocha@^8.1.2: version "8.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + resolved "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz" integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== dependencies: "@ungap/promise-all-settled" "1.1.2" @@ -7194,37 +9823,37 @@ mocha@^8.1.2: module-details-from-path@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" + resolved "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz" integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" + resolved "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== moment@^2.29.1: version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== +ms@^2.0.0, ms@^2.1.1, ms@^2.1.3, ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - msgpackr-extract@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz#e05ec1bb4453ddf020551bcd5daaf0092a2c279d" + resolved "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz" integrity sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A== dependencies: node-gyp-build-optional-packages "5.0.7" @@ -7238,57 +9867,57 @@ msgpackr-extract@^3.0.2: msgpackr@^1.9.5: version "1.9.9" - resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.9.9.tgz#ec71e37beb8729280847f683cb0a340eb35ce70f" + resolved "https://registry.npmjs.org/msgpackr/-/msgpackr-1.9.9.tgz" integrity sha512-sbn6mioS2w0lq1O6PpGtsv6Gy8roWM+o3o4Sqjd6DudrL/nOugY+KyJUimoWzHnf9OkO0T6broHFnYE/R05t9A== optionalDependencies: msgpackr-extract "^3.0.2" multistream@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8" + resolved "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz" integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== dependencies: once "^1.4.0" readable-stream "^3.6.0" -mute-stream@0.0.8, mute-stream@~0.0.4: +mute-stream@~0.0.4, mute-stream@0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - nan@^2.14.0: version "2.18.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + resolved "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz" integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== +nan@2.14.0: + version "2.14.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + nanoassert@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" + resolved "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz" integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== nanoid@3.1.20: version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz" integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== napi-build-utils@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== napi-macros@^2.2.2: version "2.2.2" - resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" + resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz" integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== natural@~0.1.28: version "0.1.29" - resolved "https://registry.yarnpkg.com/natural/-/natural-0.1.29.tgz#59a37a6cd86d55e904b656d3b9da43fd2dc9e04a" + resolved "https://registry.npmjs.org/natural/-/natural-0.1.29.tgz" integrity sha512-l/lXX1uYFvPDp7MnAvPOf9Fz/7s+C2e8GECeyG1vXyMFq5KHoMRoaVgZbPuMfB0I0zHkG/jBCk+je7feSdYkpw== dependencies: apparatus ">= 0.0.6" @@ -7297,83 +9926,93 @@ natural@~0.1.28: needle@2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + resolved "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz" integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@0.6.3, negotiator@^0.6.2: +negotiator@^0.6.2, negotiator@0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +neo-async@^2.5.0: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + netmask@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -next-tick@1, next-tick@^1.1.0: +next-tick@^1.1.0, next-tick@1: version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== next-tick@~0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-0.2.2.tgz#75da4a927ee5887e39065880065b7336413b310d" + resolved "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz" integrity sha512-f7h4svPtl+QidoBv4taKXUjJ70G2asaZ8G28nS0OkqaalX8dwwrtWtyxEDPK62AC00ur/+/E0pUwBwY5EPn15Q== +nocache@^3.0.1: + version "3.0.4" + resolved "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz" + integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== + node-abi@^3.3.0: version "3.56.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.56.0.tgz#ca807d5ff735ac6bbbd684ae3ff2debc1c2a40a7" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz" integrity sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q== dependencies: semver "^7.3.5" -node-abort-controller@^3.0.1: +node-abort-controller@^3.0.1, node-abort-controller@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== node-addon-api@^1.7.1: version "1.7.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== node-addon-api@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== node-addon-api@^3.0.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== node-addon-api@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== node-addon-api@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz" integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== node-addon-api@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz" integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== node-cleanup@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c" + resolved "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz" integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw== node-dev@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/node-dev/-/node-dev-8.0.0.tgz#856cb5d80394d301d675a9e90cc3f0dfba065f2c" + resolved "https://registry.npmjs.org/node-dev/-/node-dev-8.0.0.tgz" integrity sha512-GXc0KxmBXfQxMPdymOui40yvC5W/RXFwmuUDT65wvTAO/o9wAsddYC8q4EHKxq3Qqt+uLS/g7XKdgVcsjyk9lw== dependencies: dateformat "^3.0.3" @@ -7385,62 +10024,69 @@ node-dev@^8.0.0: resolve "^1.22.0" semver "^7.3.7" +node-dir@^0.1.17: + version "0.1.17" + resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" + integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== + dependencies: + minimatch "^3.0.2" + node-domexception@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.9: +node-fetch@^2.2.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.9, node-fetch@^2.7.0: version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" node-fetch@^3.2.3: version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz" integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== dependencies: data-uri-to-buffer "^4.0.0" fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-forge@^1.3.1: +node-forge@^1, node-forge@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build-optional-packages@5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz#92a89d400352c44ad3975010368072b41ad66c17" + resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz" integrity sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA== node-gyp-build-optional-packages@5.0.7: version "5.0.7" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" + resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz" integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w== node-gyp-build-optional-packages@5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz#52b143b9dd77b7669073cbfe39e3f4118bfc603c" + resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz" integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw== dependencies: detect-libc "^2.0.1" node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: version "4.6.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz" integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== node-gyp-build@^4.2.2: version "4.8.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz" integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== node-gyp@8.x: version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== dependencies: env-paths "^2.2.0" @@ -7454,9 +10100,14 @@ node-gyp@8.x: tar "^6.1.2" which "^2.0.2" +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + node-notifier@^8.0.1: version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz" integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== dependencies: growly "^1.3.0" @@ -7466,59 +10117,31 @@ node-notifier@^8.0.1: uuid "^8.3.0" which "^2.0.2" -node-stdlib-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/node-stdlib-browser/-/node-stdlib-browser-1.2.0.tgz#5ddcfdf4063b88fb282979a1aa6ddab9728d5e4c" - integrity sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg== - dependencies: - assert "^2.0.0" - browser-resolve "^2.0.0" - browserify-zlib "^0.2.0" - buffer "^5.7.1" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - create-require "^1.1.1" - crypto-browserify "^3.11.0" - domain-browser "^4.22.0" - events "^3.0.0" - https-browserify "^1.0.0" - isomorphic-timers-promises "^1.0.1" - os-browserify "^0.3.0" - path-browserify "^1.0.1" - pkg-dir "^5.0.0" - process "^0.11.10" - punycode "^1.4.1" - querystring-es3 "^0.2.1" - readable-stream "^3.6.0" - stream-browserify "^3.0.0" - stream-http "^3.2.0" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.1" - url "^0.11.0" - util "^0.12.4" - vm-browserify "^1.0.1" +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +node-stream-zip@^1.9.1: + version "1.15.0" + resolved "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz" + integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== nopt@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - nostr-tools@^1.16.0: version "1.16.0" - resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-1.16.0.tgz#5867f1d8bd055a5a3b27aadb199457dceb244314" + resolved "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.16.0.tgz" integrity sha512-sx/aOl0gmkeHVoIVbyOhEQhzF88NsrBXMC8bsjhPASqA6oZ8uSOAyEGgRLMfC3SKgzQD5Gr6KvDoAahaD6xKcg== dependencies: "@noble/ciphers" "^0.2.0" @@ -7528,9 +10151,16 @@ nostr-tools@^1.16.0: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npmlog@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz" integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== dependencies: are-we-there-yet "^3.0.0" @@ -7540,79 +10170,110 @@ npmlog@^6.0.0: nssocket@0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/nssocket/-/nssocket-0.6.0.tgz#59f96f6ff321566f33c70f7dbeeecdfdc07154fa" + resolved "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz" integrity sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w== dependencies: eventemitter2 "~0.4.14" lazy "~1.0.11" +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +ob1@0.80.12: + version "0.80.12" + resolved "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz" + integrity sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw== + dependencies: + flow-enums-runtime "^0.0.6" + object-assign@^4: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" -on-finished@2.4.1, on-finished@^2.3.0: +obliterator@^2.0.1: + version "2.0.4" + resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== + +on-finished@^2.3.0, on-finished@2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" only@~0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz" integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ== +open@^6.2.0: + version "6.4.0" + resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +open@^7.0.3: + version "7.4.2" + resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + optionator@^0.8.1: version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" @@ -7624,7 +10285,7 @@ optionator@^0.8.1: ora@^5.4.1: version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: bl "^4.1.0" @@ -7639,67 +10300,71 @@ ora@^5.4.1: ordered-binary@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.4.1.tgz#205cb6efd6c27fa0ef4eced994a023e081cdc911" + resolved "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.1.tgz" integrity sha512-9LtiGlPy982CsgxZvJGNNp2/NnrgEr6EAyN3iIEP3/8vd3YLgAZQHbQ75ZrkfBRGrNg37Dk3U6tuVb+B4Xfslg== -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - p-limit@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.1, p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pac-proxy-agent@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz#6b9ddc002ec3ff0ba5fdf4a8a21d363bcc612d75" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz" integrity sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A== dependencies: "@tootallnate/quickjs-emscripten" "^0.23.0" @@ -7713,7 +10378,7 @@ pac-proxy-agent@^7.0.1: pac-resolver@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.0.tgz#79376f1ca26baf245b96b34c339d79bff25e900c" + resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz" integrity sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg== dependencies: degenerator "^5.0.0" @@ -7722,95 +10387,104 @@ pac-resolver@^7.0.0: pako@^0.2.5: version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + resolved "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz" integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== pako@^2.0.4, pako@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + resolved "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== -pako@~1.0.2, pako@~1.0.5: +pako@~1.0.2: version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" + callsites "^3.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" parseurl@^1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== passthrough-counter@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa" + resolved "https://registry.npmjs.org/passthrough-counter/-/passthrough-counter-1.0.0.tgz" integrity sha512-Wy8PXTLqPAN0oEgBrlnsXPMww3SYJ44tQ8aVrGAI4h4JZYCS0oYqsPqtPR8OhJpv6qFbpbB7XAn0liKV7EXubA== -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - path-to-regexp@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz" integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pause-stream@0.0.11: version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== dependencies: through "~2.3" -pbkdf2@^3.0.17, pbkdf2@^3.0.3: +pbkdf2@^3.0.17: version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" @@ -7821,50 +10495,65 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== pg-connection-string@2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" + resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz" integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== -picomatch@^2.0.4, picomatch@^2.2.1: +picocolors@^1.0.0, picocolors@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pidusage@^2.0.21: version "2.0.21" - resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-2.0.21.tgz#7068967b3d952baea73e57668c98b9eaa876894e" + resolved "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz" integrity sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA== dependencies: safe-buffer "^5.2.1" pidusage@~3.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-3.0.2.tgz#6faa5402b2530b3af2cf93d13bcf202889724a53" + resolved "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz" integrity sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w== dependencies: safe-buffer "^5.2.1" -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pirates@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: - find-up "^5.0.0" + find-up "^3.0.0" pm2-axon-rpc@~0.7.0, pm2-axon-rpc@~0.7.1: version "0.7.1" - resolved "https://registry.yarnpkg.com/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz#2daec5383a63135b3f18babb70266dacdcbc429a" + resolved "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz" integrity sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw== dependencies: debug "^4.3.1" pm2-axon@~4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pm2-axon/-/pm2-axon-4.0.1.tgz#a7b4bb586e9aeb35b1042b488cde15b60cabafd2" + resolved "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz" integrity sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg== dependencies: amp "~0.3.1" @@ -7874,7 +10563,7 @@ pm2-axon@~4.0.1: pm2-deploy@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/pm2-deploy/-/pm2-deploy-1.0.2.tgz#98d8385553a3a4dca11c7b3116deb519bc5961a7" + resolved "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz" integrity sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg== dependencies: run-series "^1.1.8" @@ -7882,14 +10571,14 @@ pm2-deploy@~1.0.2: pm2-multimeter@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz#1a1e55153d41a05534cea23cfe860abaa0eb4ace" + resolved "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz" integrity sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA== dependencies: charm "~0.1.1" pm2-sysmonit@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz#eddea34a53fd8c8d7c3efb73b97a3c548686e24d" + resolved "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz" integrity sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA== dependencies: async "^3.2.0" @@ -7900,7 +10589,7 @@ pm2-sysmonit@^1.2.8: pm2@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/pm2/-/pm2-5.3.0.tgz#06850810f77cd98495ae1c66fbdd028a8fb5899e" + resolved "https://registry.npmjs.org/pm2/-/pm2-5.3.0.tgz" integrity sha512-xscmQiAAf6ArVmKhjKTeeN8+Td7ZKnuZFFPw1DGkdFPR/0Iyx+m+1+OpCdf9+HQopX3VPc9/wqPQHqVOfHum9w== dependencies: "@pm2/agent" "~2.0.0" @@ -7937,17 +10626,22 @@ pm2@^5.3.0: pngjs@^3.3.0: version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + resolved "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + preact@10.4.1: version "10.4.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" + resolved "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz" integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== prebuild-install@^7.1.1: version "7.1.2" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz" integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== dependencies: detect-libc "^2.0.0" @@ -7965,52 +10659,86 @@ prebuild-install@^7.1.1: prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier@2.8.3: version "2.8.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz" integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== +pretty-format@^26.5.2, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + prng-well1024a@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/prng-well1024a/-/prng-well1024a-1.0.1.tgz#05e8ed923e4ea2b3f78af5ee94f056b4d5cfab24" + resolved "https://registry.npmjs.org/prng-well1024a/-/prng-well1024a-1.0.1.tgz" integrity sha512-lBXfAW5Vgpej/QVHNYhTSsiz1IIlgo7kv8zzQL7v5crD8jgA4Fk3axwb9aCrDHUqJ4zKXsb3U3m6sw21165Trg== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== dependencies: err-code "^2.0.2" retry "^0.12.0" +promise@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== + dependencies: + asap "~2.0.6" + promptly@^2: version "2.2.0" - resolved "https://registry.yarnpkg.com/promptly/-/promptly-2.2.0.tgz#2a13fa063688a2a5983b161fff0108a07d26fc74" + resolved "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz" integrity sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA== dependencies: read "^1.0.4" +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + protobufjs@^6.11.3, protobufjs@^6.8.6: version "6.11.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz" integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== dependencies: "@protobufjs/aspromise" "^1.1.2" @@ -8029,7 +10757,7 @@ protobufjs@^6.11.3, protobufjs@^6.8.6: protobufjs@^7.2.4: version "7.2.5" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz" integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A== dependencies: "@protobufjs/aspromise" "^1.1.2" @@ -8047,7 +10775,7 @@ protobufjs@^7.2.4: proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" @@ -8055,7 +10783,7 @@ proxy-addr@~2.0.7: proxy-agent@~6.3.0: version "6.3.1" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.3.1.tgz#40e7b230552cf44fd23ffaf7c59024b692612687" + resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz" integrity sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ== dependencies: agent-base "^7.0.2" @@ -8069,66 +10797,54 @@ proxy-agent@~6.3.0: proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== ps-tree@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + resolved "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz" integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== dependencies: event-stream "=3.3.4" -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - punycode@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.1: version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + pvtsutils@^1.3.2: version "1.3.5" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + resolved "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz" integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== dependencies: tslib "^2.6.1" pvutils@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + resolved "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== qrcode@1.4.4: version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" + resolved "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz" integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== dependencies: buffer "^5.4.3" @@ -8139,59 +10855,63 @@ qrcode@1.4.4: pngjs "^3.3.0" yargs "^13.2.4" -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - qs@^6.11.2: version "6.11.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" -qs@^6.4.0, qs@^6.5.2: +qs@^6.4.0: + version "6.12.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz" + integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== + dependencies: + side-channel "^1.0.6" + +qs@^6.5.2: version "6.12.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77" + resolved "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz" integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== dependencies: side-channel "^1.0.6" +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + query-string@6.13.5: version "6.13.5" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" + resolved "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz" integrity sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q== dependencies: decode-uri-component "^0.2.0" split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - querystring@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" r1csfile@0.0.48: version "0.0.48" - resolved "https://registry.yarnpkg.com/r1csfile/-/r1csfile-0.0.48.tgz#a317fc75407a9da92631666c75bdfc13f0a7835a" + resolved "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.48.tgz" integrity sha512-kHRkKUJNaor31l05f2+RFzvcH5XSa7OfEfd/l4hzjte6NL6fjRkSMfZ4BjySW9wmfdwPOtq3mXurzPvPGEf5Tw== dependencies: "@iden3/bigarray" "0.0.2" @@ -8201,44 +10921,46 @@ r1csfile@0.0.48: ramda@^0.28.0: version "0.28.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.28.0.tgz" integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA== ramda@^0.29.1: version "0.29.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.1.tgz#408a6165b9555b7ba2fc62555804b6c5a2eca196" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz" integrity sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +ramda@^0.30.0: + version "0.30.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz" + integrity sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw== + +ramda@^0.30.1: + version "0.30.1" + resolved "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz" + integrity sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw== + +randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - randy@~1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/randy/-/randy-1.5.1.tgz#e7dc086a0ecb8bef7d67356642cd2a33f962465c" + resolved "https://registry.npmjs.org/randy/-/randy-1.5.1.tgz" integrity sha512-xCxHBrX08xQo8KoyZgOlM9fQbHK0oDvBl/k4+kPVGBDqfbL4c7N6uxiWTJnkJRkkg4hRrf/3CH8Vt1HiaQ2IVQ== dependencies: prng-well1024a "~1.0.0" range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.2, raw-body@^2.2.0, raw-body@^2.3.3: +raw-body@^2.2.0, raw-body@^2.3.3, raw-body@2.5.2: version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" @@ -8248,7 +10970,7 @@ raw-body@2.5.2, raw-body@^2.2.0, raw-body@^2.3.3: rc@^1.2.7: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -8256,30 +10978,118 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-devtools-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.2.tgz" + integrity sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg== + dependencies: + shell-quote "^1.6.1" + ws "^7" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + react-native-get-random-values@^1.4.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/react-native-get-random-values/-/react-native-get-random-values-1.9.0.tgz#6cb30511c406922e75fe73833dc1812a85bfb37e" + resolved "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.9.0.tgz" integrity sha512-+29IR2oxzxNVeaRwCqGZ9ABadzMI8SLTBidrIDXPOkKnm5+kEmLt34QKM4JV+d2usPErvKyS85le0OmGTHnyWQ== dependencies: fast-base64-decode "^1.0.0" react-native-url-polyfill@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz#c1763de0f2a8c22cc3e959b654c8790622b6ef6a" + resolved "https://registry.npmjs.org/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz" integrity sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ== dependencies: whatwg-url-without-unicode "8.0.0-3" +react-native@*, react-native@>=0.56: + version "0.75.4" + resolved "https://registry.npmjs.org/react-native/-/react-native-0.75.4.tgz" + integrity sha512-Jehg4AMNIAXu9cn0/1jbTCoNg3tc+t6EekwucCalN8YoRmxGd/PY6osQTI/5fSAM40JQ4O8uv8Qg09Ycpb5sxQ== + dependencies: + "@jest/create-cache-key-function" "^29.6.3" + "@react-native-community/cli" "14.1.0" + "@react-native-community/cli-platform-android" "14.1.0" + "@react-native-community/cli-platform-ios" "14.1.0" + "@react-native/assets-registry" "0.75.4" + "@react-native/codegen" "0.75.4" + "@react-native/community-cli-plugin" "0.75.4" + "@react-native/gradle-plugin" "0.75.4" + "@react-native/js-polyfills" "0.75.4" + "@react-native/normalize-colors" "0.75.4" + "@react-native/virtualized-lists" "0.75.4" + abort-controller "^3.0.0" + anser "^1.4.9" + ansi-regex "^5.0.0" + base64-js "^1.5.1" + chalk "^4.0.0" + commander "^9.4.1" + event-target-shim "^5.0.1" + flow-enums-runtime "^0.0.6" + glob "^7.1.1" + invariant "^2.2.4" + jest-environment-node "^29.6.3" + jsc-android "^250231.0.0" + memoize-one "^5.0.0" + metro-runtime "^0.80.3" + metro-source-map "^0.80.3" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + pretty-format "^26.5.2" + promise "^8.3.0" + react-devtools-core "^5.3.1" + react-refresh "^0.14.0" + regenerator-runtime "^0.13.2" + scheduler "0.24.0-canary-efb381bbf-20230505" + semver "^7.1.3" + stacktrace-parser "^0.1.10" + whatwg-fetch "^3.0.0" + ws "^6.2.2" + yargs "^17.6.2" + +react-refresh@^0.14.0: + version "0.14.2" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" + integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== + +react@*, react@^18.2.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + read@^1.0.4: version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" -readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@~2.3.6: +readable-stream@^2.0.0: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^2.0.5: version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -8290,51 +11100,103 @@ readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stre string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.3.0: + version "4.5.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@2: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readdir-glob@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + resolved "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz" integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== dependencies: minimatch "^5.1.0" readdirp@~3.5.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" +readline@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz" + integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== + readonly-date@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" + resolved "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz" integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== +recast@^0.21.0: + version "0.21.5" + resolved "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz" + integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== + dependencies: + ast-types "0.15.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + rechoir@0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz" integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== dependencies: resolve "^1.9.0" -redis@^4.6.4, redis@^4.6.5: +redis@^4.6.5: version "4.6.10" - resolved "https://registry.yarnpkg.com/redis/-/redis-4.6.10.tgz#07f6ea2b2c5455b098e76d1e8c9b3376114e9458" + resolved "https://registry.npmjs.org/redis/-/redis-4.6.10.tgz" integrity sha512-mmbyhuKgDiJ5TWUhiKhBssz+mjsuSI/lSZNPI9QvZOYzWvYGejtb+W3RlDDf8LD6Bdl5/mZeG8O1feUGhXTxEg== dependencies: "@redis/bloom" "1.2.0" @@ -8346,7 +11208,7 @@ redis@^4.6.4, redis@^4.6.5: redstone-isomorphic@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/redstone-isomorphic/-/redstone-isomorphic-1.1.0.tgz#9d73a529e6253b64fb4a8db81022035d66834915" + resolved "https://registry.npmjs.org/redstone-isomorphic/-/redstone-isomorphic-1.1.0.tgz" integrity sha512-EyPbG6A+rPhakJWL8RfNXQwhqZ5Clnqv1tdEqxNgF90rundvKpupkAVeknX8JpneAaO/0obDxrcQ8JYbVzHsfw== dependencies: buffer "^6.0.3" @@ -8355,7 +11217,7 @@ redstone-isomorphic@1.1.0: redstone-isomorphic@1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/redstone-isomorphic/-/redstone-isomorphic-1.1.8.tgz#8870987c8f60c0155f32a2e29254faf0b460a6c8" + resolved "https://registry.npmjs.org/redstone-isomorphic/-/redstone-isomorphic-1.1.8.tgz" integrity sha512-8WFgGeoUx7mAStvbY/F0QMoyC7I4HO6pwRFRFxTiIrHFrtO7NYTAh4jIjLsds06ymRvXq6rrR6hev2/OuA29xw== dependencies: buffer "^6.0.3" @@ -8364,7 +11226,7 @@ redstone-isomorphic@1.1.8: redstone-wasm-json-toolkit@1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/redstone-wasm-json-toolkit/-/redstone-wasm-json-toolkit-1.0.3.tgz#5479c0f093862cdd71fb5eab41cbbeb8ddc2b824" + resolved "https://registry.npmjs.org/redstone-wasm-json-toolkit/-/redstone-wasm-json-toolkit-1.0.3.tgz" integrity sha512-5TumLje/czphGt9B2hXqLnQEmvJ3olvdp5gvLr0ayDMZ6FXhDF7Sfo//xIgug4Uyif5o4tJyYvOeo5Of17/01w== dependencies: buffer-pipe "0.0.3" @@ -8373,30 +11235,88 @@ redstone-wasm-json-toolkit@1.0.3: redstone-wasm-metering@1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/redstone-wasm-metering/-/redstone-wasm-metering-1.0.3.tgz#3fc12b24c814b9fc114ac552fbeed0d545a4bfa1" + resolved "https://registry.npmjs.org/redstone-wasm-metering/-/redstone-wasm-metering-1.0.3.tgz" integrity sha512-hrvvzjTdc3TEY/6DuqHQtvbX6/iSmvIyFIOY/yw4qPcJIueD9AAPK7JrGpssKSAYEcgJhgRhZOXksC+3TvgRQg== dependencies: leb128 "^0.0.4" redstone-wasm-json-toolkit "1.0.3" +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + regenerator-runtime@^0.13.11: version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.13.2: + version "0.13.11" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regenerator-runtime@^0.14.0: version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.2: + version "1.5.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.2" + +regexpu-core@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz" + integrity sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.11.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.11.0: + version "0.11.1" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz" + integrity sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ== + dependencies: + jsesc "~3.0.2" + require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-in-the-middle@^5.0.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz#4b71e3cc7f59977100af9beb76bf2d056a5a6de2" + resolved "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz" integrity sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg== dependencies: debug "^4.1.1" @@ -8405,38 +11325,36 @@ require-in-the-middle@^5.0.0: require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -resolve-alpn@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.17.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.9.0: +resolve@^1.14.2, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.9.0: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -8444,37 +11362,49 @@ restore-cursor@^3.1.0: retry-request@^5.0.0: version "5.0.2" - resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-5.0.2.tgz#143d85f90c755af407fcc46b7166a4ba520e44da" + resolved "https://registry.npmjs.org/retry-request/-/retry-request-5.0.2.tgz" integrity sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ== dependencies: debug "^4.1.1" extend "^3.0.2" +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + retry@0.13.1: version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfc4648@^1.5.1: version "1.5.3" - resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.5.3.tgz#e62b81736c10361ca614efe618a566e93d0b41c0" + resolved "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz" integrity sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ== rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -8482,134 +11412,220 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: rlp@^2.2.3, rlp@^2.2.4: version "2.2.7" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== dependencies: bn.js "^5.2.0" +rpc-websockets@^9.0.2: + version "9.0.4" + resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.4.tgz" + integrity sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ== + dependencies: + "@swc/helpers" "^0.5.11" + "@types/uuid" "^8.3.4" + "@types/ws" "^8.2.2" + buffer "^6.0.3" + eventemitter3 "^5.0.1" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + run-async@^2.4.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel-limit@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" + resolved "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz" integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== dependencies: queue-microtask "^1.2.2" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + run-series@^1.1.8: version "1.1.9" - resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.9.tgz#15ba9cb90e6a6c054e67c98e1dc063df0ecc113a" + resolved "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz" integrity sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g== rxjs@^7.2.0, rxjs@^7.5.5: version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0, safe-buffer@5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-json-utils@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1" + resolved "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz" integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ== +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + safe-stable-stringify@2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz" integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: +safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sax@^1.2.4, sax@>=0.6.0: + version "1.3.0" + resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + sax@1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== -sax@>=0.6.0, sax@^1.2.4: - version "1.3.0" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" - integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== +scheduler@0.24.0-canary-efb381bbf-20230505: + version "0.24.0-canary-efb381bbf-20230505" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz" + integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA== + dependencies: + loose-envify "^1.1.0" -scrypt-js@3.0.1, scrypt-js@^3.0.0: +scrypt-js@^3.0.0, scrypt-js@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -secp256k1@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.1.tgz#12e473e0e9a7c2f2d4d4818e722ad0e14cc1e2f1" - integrity sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g== +secp256k1@^4.0.1, secp256k1@^4.0.2, secp256k1@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +secp256k1@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz" + integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^5.0.0" + node-gyp-build "^4.2.0" + +secp256k1@3.7.1: + version "3.7.1" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz" + integrity sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g== + dependencies: + bindings "^1.5.0" + bip66 "^1.1.5" + bn.js "^4.11.8" create-hash "^1.2.0" drbg.js "^1.0.1" elliptic "^6.4.1" nan "^2.14.0" safe-buffer "^5.1.2" -secp256k1@5.0.0, secp256k1@^5.0.0: +secp256k1@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz" integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== dependencies: elliptic "^6.5.4" node-addon-api "^5.0.0" node-gyp-build "^4.2.0" -secp256k1@^4.0.1, secp256k1@^4.0.2, secp256k1@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver@^5.3.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^5.5.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^5.3.0, semver@^5.5.0: +semver@^5.6.0: version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.2.0: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.2, semver@^7.3.2, semver@^7.3.7, semver@~7.5.0, semver@~7.5.4: +semver@^7.1.3, semver@^7.2, semver@^7.3.2, semver@^7.3.7, semver@^7.5.2, semver@~7.5.0, semver@~7.5.4: version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" semver@^7.3.5: version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" send@0.18.0: version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" @@ -8628,7 +11644,7 @@ send@0.18.0: sentencer@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/sentencer/-/sentencer-0.2.1.tgz#88a1f4767c14bb8cd148b07822e13b8b55897956" + resolved "https://registry.npmjs.org/sentencer/-/sentencer-0.2.1.tgz" integrity sha512-hDLHIc7DTdZASPJhL2IZChmUq9tTUsOaAlK2kNPYI9KSdrPeqNZfjJfTCEoqcR/IlLlIfngi7Wkx/KLPqqNtyQ== dependencies: articles "~0.2.1" @@ -8636,23 +11652,28 @@ sentencer@^0.2.1: natural "~0.1.28" randy "~1.5.1" +serialize-error@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" + integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== + serialize-javascript@5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz" integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" -serve-static@1.15.0: +serve-static@^1.13.1, serve-static@1.15.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" @@ -8662,12 +11683,12 @@ serve-static@1.15.0: set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-function-length@^1.2.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: define-data-property "^1.1.4" @@ -8677,49 +11698,71 @@ set-function-length@^1.2.1: gopd "^1.0.1" has-property-descriptors "^1.0.2" -setimmediate@^1.0.4, setimmediate@^1.0.5: +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.6.1, shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + shellwords@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== shimmer@^1.1.0, shimmer@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + resolved "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz" integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -8728,7 +11771,7 @@ side-channel@^1.0.4: side-channel@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: call-bind "^1.0.7" @@ -8738,31 +11781,50 @@ side-channel@^1.0.6: signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== dependencies: decompress-response "^6.0.0" once "^1.3.1" simple-concat "^1.0.0" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== smartweave@^0.4.46: version "0.4.49" - resolved "https://registry.yarnpkg.com/smartweave/-/smartweave-0.4.49.tgz#fd016d84ce14b1488333bc3942b0cfbd8a89c22c" + resolved "https://registry.npmjs.org/smartweave/-/smartweave-0.4.49.tgz" integrity sha512-sCxGG1E0LYK+lYgOkL/Re2Vo78i8af/HAGg0dtxPzFXAfENGUKguWq/nW9AjUlRtOsfos6SLZX507TGtdZvyqQ== dependencies: "@types/clui" "^0.3.1" @@ -8781,7 +11843,7 @@ smartweave@^0.4.46: snarkjs@^0.7.3: version "0.7.4" - resolved "https://registry.yarnpkg.com/snarkjs/-/snarkjs-0.7.4.tgz#b9ad5813f055ab84d33f1831a6f1f34a71b6cd46" + resolved "https://registry.npmjs.org/snarkjs/-/snarkjs-0.7.4.tgz" integrity sha512-x4cOCR4YXSyBlLtfnUUwfbZrw8wFd/Y0lk83eexJzKwZB8ELdpH+10ts8YtDsm2/a3WK7c7p514bbE8NpqxW8w== dependencies: "@iden3/binfileutils" "0.0.12" @@ -8797,7 +11859,7 @@ snarkjs@^0.7.3: socks-proxy-agent@^6.0.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz" integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: agent-base "^6.0.2" @@ -8806,7 +11868,7 @@ socks-proxy-agent@^6.0.0: socks-proxy-agent@^8.0.2: version "8.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz" integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== dependencies: agent-base "^7.0.2" @@ -8815,7 +11877,7 @@ socks-proxy-agent@^8.0.2: socks@^2.6.2: version "2.8.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af" + resolved "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz" integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== dependencies: ip-address "^9.0.5" @@ -8823,55 +11885,60 @@ socks@^2.6.2: socks@^2.7.1: version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + resolved "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz" integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: ip "^2.0.0" smart-buffer "^4.2.0" -source-map-support@0.5.21: +source-map-support@^0.5.16, source-map-support@~0.5.20, source-map-support@0.5.21: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== split-on-first@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== split@0.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz" integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== dependencies: through "2" -sprintf-js@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - sprintf-js@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +sprintf-js@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + sqlite3@^5.0.3: version "5.1.7" - resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.7.tgz#59ca1053c1ab38647396586edad019b1551041b7" + resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz" integrity sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog== dependencies: bindings "^1.5.0" @@ -8883,73 +11950,79 @@ sqlite3@^5.0.3: ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +stacktrace-parser@^0.1.10: + version "0.1.10" + resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== + dependencies: + type-fest "^0.7.1" + static-eval@2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + resolved "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz" integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== dependencies: escodegen "^1.8.1" -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +statuses@^1.5.0, "statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -"statuses@>= 1.5.0 < 2", statuses@^1.5.0: +statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== stream-buffers@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521" + resolved "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz" integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ== stream-combiner@~0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz" integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== dependencies: duplexer "~0.1.1" stream-events@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" + resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz" integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== dependencies: stubs "^3.0.0" -stream-http@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - stream-shift@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== streaming-json-stringify@3: version "3.1.0" - resolved "https://registry.yarnpkg.com/streaming-json-stringify/-/streaming-json-stringify-3.1.0.tgz#80200437a993cc39c4fe00263b7b3b903ac87af5" + resolved "https://registry.npmjs.org/streaming-json-stringify/-/streaming-json-stringify-3.1.0.tgz" integrity sha512-axtfs3BDxAsrZ9swD163FBrXZ8dhJJp6kUI6C97TvUZG9RHKfbg9nFbXqEheFNOb3IYMEt2ag9F62sWLFUZ4ug== dependencies: json-stringify-safe "5" @@ -8957,148 +12030,212 @@ streaming-json-stringify@3: strict-uri-encode@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + string-argv@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738" + resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.1.2.tgz" integrity sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA== -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== +string.prototype.replaceall@^1.0.6: + version "1.0.10" + resolved "https://registry.npmjs.org/string.prototype.replaceall/-/string.prototype.replaceall-1.0.10.tgz" + integrity sha512-PKLapcZUZmXUdfIM6rTTTMYOxaj4JiQrgl0SKEeCFug1CdMAuJq8hVZd4eek9yMXAW4ldGUq+TiZRtjLJRU96g== dependencies: - safe-buffer "~5.2.0" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + is-regex "^1.1.4" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - safe-buffer "~5.1.0" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-hex-prefix@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + strnum@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== stubs@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + resolved "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz" integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" +sudo-prompt@^9.0.0: + version "9.2.1" + resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz" + integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== + +superstruct@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz" + integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== "sylvester@>= 0.0.12", "sylvester@>= 0.0.8": version "0.0.21" - resolved "https://registry.yarnpkg.com/sylvester/-/sylvester-0.0.21.tgz#2987b1ce2bd2f38b0dce2a34388884bfa4400ea7" + resolved "https://registry.npmjs.org/sylvester/-/sylvester-0.0.21.tgz" integrity sha512-yUT0ukFkFEt4nb+NY+n2ag51aS/u9UHXoZw+A4jgD77/jzZsBoSDHuqysrVCBC4CYR4TYvUJq54ONpXgDBH8tA== synchronized-promise@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/synchronized-promise/-/synchronized-promise-0.3.1.tgz#2cb9c1b1a203da7301c3ef068285a4e6d198ea0e" + resolved "https://registry.npmjs.org/synchronized-promise/-/synchronized-promise-0.3.1.tgz" integrity sha512-Iy+JzrERSUrwpOHUDku8HHIddk8V6iLG9bPIzboP2i5RYkn2eSmRB8waSaX7Rc/+DUUsnFsoOHrmniwOp9BOgw== dependencies: deasync "^0.1.15" systeminformation@^5.7: version "5.21.11" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.21.11.tgz#c1a0b2f0f338903bb7bc1759db9fcd34b7312360" + resolved "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.11.tgz" integrity sha512-dIJEGoP5W7k4JJGje/b+inJrOL5hV9LPsUi5ndBvJydI80CVEcu2DZYgt6prdRErDi2SA4SqYd/WMR4b+u34mA== tar-fs@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== dependencies: chownr "^1.1.1" @@ -9108,7 +12245,7 @@ tar-fs@^2.0.0: tar-stream@^2.1.4, tar-stream@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: bl "^4.0.3" @@ -9119,7 +12256,7 @@ tar-stream@^2.1.4, tar-stream@^2.2.0: tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" @@ -9131,12 +12268,12 @@ tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: tarn@^3.0.1: version "3.0.2" - resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" + resolved "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz" integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== teeny-request@^8.0.0: version "8.0.3" - resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-8.0.3.tgz#5cb9c471ef5e59f2fca8280dc3c5909595e6ca24" + resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-8.0.3.tgz" integrity sha512-jJZpA5He2y52yUhA7pyAGZlgQpcB+xLjcN0eUFxr9c8hP/H7uOXbBNVo/O0C/xVfJLJs680jvkFgVJEEvk9+ww== dependencies: http-proxy-agent "^5.0.0" @@ -9145,26 +12282,63 @@ teeny-request@^8.0.0: stream-events "^1.0.5" uuid "^9.0.0" -through@2, through@^2.3.6, through@~2.3, through@~2.3.1: +temp@^0.8.4: + version "0.8.4" + resolved "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz" + integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== + dependencies: + rimraf "~2.6.2" + +terser@^5.15.0: + version "5.34.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz" + integrity sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/test/-/test-3.3.0.tgz" + integrity sha512-JKlEohxDIJRjwBH/+BrTcAPHljBALrAHw3Zs99RqZlaC605f6BggqXhxkdqZThbSHgaYPwpNJlf9bTSWkb/1rA== + dependencies: + minimist "^1.2.6" + readable-stream "^4.3.0" + string.prototype.replaceall "^1.0.6" + +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through@^2.3.6, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1, through@2: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + tildify@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" + resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz" integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw== -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - timers-ext@0.1, timers-ext@0.1.x: version "0.1.7" - resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz" integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== dependencies: es5-ext "~0.10.46" @@ -9172,55 +12346,65 @@ timers-ext@0.1, timers-ext@0.1.x: tmp-promise@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== dependencies: tmp "^0.2.0" tmp@^0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" tmp@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toggle-selection@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== tryer@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== tsc-watch@^4.6.0: version "4.6.2" - resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.6.2.tgz#4267ee6acddb608356573ba96024fa250eb22cac" + resolved "https://registry.npmjs.org/tsc-watch/-/tsc-watch-4.6.2.tgz" integrity sha512-eHWzZGkPmzXVGQKbqQgf3BFpGiZZw1jQ29ZOJeaSe8JfyUvphbd221NfXmmsJUGGPGA/nnaSS01tXipUcyxAxg== dependencies: cross-spawn "^7.0.3" @@ -9229,85 +12413,115 @@ tsc-watch@^4.6.0: string-argv "^0.1.1" strip-ansi "^6.0.0" -tslib@1.14.1, tslib@^1.11.1, tslib@^1.8.0, tslib@^1.9.3: +tslib@^1.11.1, tslib@^1.8.0, tslib@^1.9.3, tslib@1.14.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.0.1: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.1.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.3.1: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.5.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.6.1: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tslib@1.9.3: version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tslib@2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tsscmp@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz" integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tv4@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/tv4/-/tv4-1.3.0.tgz#d020c846fadd50c855abb25ebaecc68fc10f7963" + resolved "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz" integrity sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw== tweetnacl-util@^0.15.1: version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@1.0.3, tweetnacl@1.x.x, tweetnacl@^1.0.3: +tweetnacl@^1.0.3, tweetnacl@1.x.x: version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== tx2@~1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/tx2/-/tx2-1.0.5.tgz#ee0b0e5e2c351f8d23e54bdf46dd60afa3bbc73d" + resolved "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz" integrity sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg== dependencies: json-stringify-safe "^5.0.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" -type-detect@^4.0.0, type-detect@^4.0.8: +type-detect@^4.0.0, type-detect@^4.0.8, type-detect@4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" + integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== + type-is@^1.6.14, type-is@^1.6.16, type-is@^1.6.18, type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -9315,65 +12529,147 @@ type-is@^1.6.14, type-is@^1.6.16, type-is@^1.6.18, type-is@~1.6.18: type@^2.7.2: version "2.7.2" - resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + typedarray-to-buffer@3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" -underscore@1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" - integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== +typescript@*, typescript@>=4.9.5, typescript@>=5.0.0: + version "5.6.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" underscore@>=1.3.1: version "1.13.6" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + undici-types@~5.25.1: version "5.25.3" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz" integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== undici@^4.12.2: version "4.16.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-4.16.0.tgz#469bb87b3b918818d3d7843d91a1d08da357d5ff" + resolved "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz" integrity sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw== undici@^5.19.1, undici@^5.8.0: version "5.26.3" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.26.3.tgz#ab3527b3d5bb25b12f898dfd22165d472dd71b79" + resolved "https://registry.npmjs.org/undici/-/undici-5.26.3.tgz" integrity sha512-H7n2zmKEWgOllKkIUkLvFmsJQj062lSm3uA4EYApG8gLuiOM0/go9bIoC3HVaSnfg4xunowDE2i9p8drkXuvDw== dependencies: "@fastify/busboy" "^2.0.0" unfetch@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz" integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" universal-cookie@^4.0.4: version "4.0.4" - resolved "https://registry.yarnpkg.com/universal-cookie/-/universal-cookie-4.0.4.tgz#06e8b3625bf9af049569ef97109b4bb226ad798d" + resolved "https://registry.npmjs.org/universal-cookie/-/universal-cookie-4.0.4.tgz" integrity sha512-lbRVHoOMtItjWbM7TwDLdl8wug7izB0tq3/YVKhT/ahB4VDvWMyvnADfnJI8y6fSvsjh51Ix7lTGC6Tn4rMPhw== dependencies: "@types/cookie" "^0.3.3" @@ -9381,24 +12677,40 @@ universal-cookie@^4.0.4: universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unzipit@^1.4.0: version "1.4.3" - resolved "https://registry.yarnpkg.com/unzipit/-/unzipit-1.4.3.tgz#738298a6b235892bf7ce7db82cff813d4ca664ac" + resolved "https://registry.npmjs.org/unzipit/-/unzipit-1.4.3.tgz" integrity sha512-gsq2PdJIWWGhx5kcdWStvNWit9FVdTewm4SEG7gFskWs+XCVaULt9+BwuoBtJiRE8eo3L1IPAOrbByNLtLtIlg== dependencies: uzip-module "^1.0.2" +update-browserslist-db@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz" + integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.0" + +url@^0.11.0: + version "0.11.3" + resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" + integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== + dependencies: + punycode "^1.4.1" + qs "^6.11.2" + url@0.10.3: version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz" integrity sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== dependencies: punycode "1.3.2" @@ -9406,35 +12718,27 @@ url@0.10.3: url@0.11.0: version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== dependencies: punycode "1.3.2" querystring "0.2.0" -url@^0.11.0: - version "0.11.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" - integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== - dependencies: - punycode "^1.4.1" - qs "^6.11.2" - -utf-8-validate@^5.0.8: +utf-8-validate@^5.0.2, utf-8-validate@^5.0.8, utf-8-validate@>=5.0.2: version "5.0.10" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== dependencies: node-gyp-build "^4.3.0" util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.4, util@^0.12.5: +util@^0.12.4: version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" @@ -9445,52 +12749,62 @@ util@^0.12.4, util@^0.12.5: utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" - integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== - uuid@^3.0.0, uuid@^3.2.1: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.0.0, uuid@^8.3.0: +uuid@^8.0.0: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^9.0.0: version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +uuid@8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz" + integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== + uzip-module@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/uzip-module/-/uzip-module-1.0.3.tgz#6bbabe2a3efea5d5a4a47479f523a571de3427ce" + resolved "https://registry.npmjs.org/uzip-module/-/uzip-module-1.0.3.tgz" integrity sha512-AMqwWZaknLM77G+VPYNZLEruMGWGzyigPK3/Whg99B3S6vGHuqsyl5ZrOv1UUF3paGK1U6PM0cnayioaryg/fA== -value-or-promise@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" - integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== - value-or-promise@^1.0.12: version "1.0.12" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" + resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== +value-or-promise@1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz" + integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== + vary@^1, vary@^1.1.2, vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== vizion@~2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/vizion/-/vizion-2.2.1.tgz#04201ea45ffd145d5b5210e385a8f35170387fb2" + resolved "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz" integrity sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww== dependencies: async "^2.6.3" @@ -9498,27 +12812,34 @@ vizion@~2.2.1: ini "^1.3.5" js-git "^0.7.8" +vlq@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz" + integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== + vlq@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-2.0.4.tgz#6057b85729245b9829e3cc7755f95b228d4fe041" + resolved "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz" integrity sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA== -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - vm2@3.9.11: version "3.9.11" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.11.tgz#a880f510a606481719ec3f9803b940c5805a06fe" + resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz" integrity sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg== dependencies: acorn "^8.7.0" acorn-walk "^8.2.0" +walker@^1.0.7: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + warp-arbundles@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/warp-arbundles/-/warp-arbundles-1.0.4.tgz#10c0cd662ab41b0dabad9159c7110f43425cc5cc" + resolved "https://registry.npmjs.org/warp-arbundles/-/warp-arbundles-1.0.4.tgz" integrity sha512-KeRac/EJ7VOK+v5+PSMh2SrzpCKOAFnJICLlqZWt6qPkDCzVwcrNE5wFxOlEk5U170ewMDAB3e86UHUblevXpw== dependencies: arweave "^1.13.7" @@ -9528,7 +12849,7 @@ warp-arbundles@^1.0.4: "warp-contracts-old@npm:warp-contracts@1.2.26": version "1.2.26" - resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.2.26.tgz#9aaefeaa6139c5bf5d203d182d96c4337086ad52" + resolved "https://registry.npmjs.org/warp-contracts/-/warp-contracts-1.2.26.tgz" integrity sha512-ElXnd32XksclrHHmw5u0w2U4VVu1UHxyOwcymq15Kw27ijIHjxZXi3UKH5QjgcksxmzqpXtC6duuMYc/0Gzypg== dependencies: "@assemblyscript/loader" "^0.19.23" @@ -9547,18 +12868,9 @@ warp-arbundles@^1.0.4: unzipit "^1.4.0" vm2 "3.9.11" -warp-contracts-plugin-deploy@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/warp-contracts-plugin-deploy/-/warp-contracts-plugin-deploy-1.0.3.tgz#9ca7cd53b4a7cd1b015881f1d369659bb6f9075b" - integrity sha512-zDF/yqHbxIDImtVKxE/hbIz824PjPOc0aXONQtnR7do0MFdF7eJqeAAA5a2W5WTHN3cplvej6y7vSv6f/E2dEg== - dependencies: - arbundles "^0.7.3" - arlocal "^1.1.59" - node-stdlib-browser "^1.2.0" - warp-contracts-pubsub@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/warp-contracts-pubsub/-/warp-contracts-pubsub-1.0.6.tgz#7b507ad1d1a1427a285b12780775fd8e1cc7a789" + resolved "https://registry.npmjs.org/warp-contracts-pubsub/-/warp-contracts-pubsub-1.0.6.tgz" integrity sha512-y5+J09pTbDbRj5oZ0EIlCeABUmN4ylYvvdflrUElR4ByGek5nFxY4DqgnPTs9HzkOSCTGmNamyDwok3hoHMfxw== dependencies: "@aws-amplify/api" "^5.0.19" @@ -9566,50 +12878,9 @@ warp-contracts-pubsub@^1.0.5: isomorphic-ws "^5.0.0" ws "^8.11.0" -warp-contracts@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.4.1.tgz#ba4c0101eda170fe54c3bbfdd836252817786f72" - integrity sha512-NQE83O6waKKIH74oBoBITK5KQrA60WurnCFx4LCZ5tUSX683lodCHPeNbyuioFUBebfEULQRfUkcbmnCiKxoaA== - dependencies: - "@idena/vrf-js" "^1.0.1" - archiver "^5.3.0" - arweave "^1.12.4" - async-mutex "^0.4.0" - bignumber.js "9.1.1" - elliptic "^6.5.4" - events "3.3.0" - fast-copy "^3.0.0" - level "^8.0.0" - memory-level "^1.0.0" - safe-stable-stringify "2.4.1" - stream-buffers "^3.0.2" - unzipit "^1.4.0" - warp-isomorphic "1.0.4" - warp-wasm-metering "1.0.1" - -warp-contracts@^1.4.41: - version "1.4.41" - resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.4.41.tgz#49d9678002acef546a8350ed81e505178f84cefe" - integrity sha512-nrdLGGBzxujiWkZCDxSOfIvdnKmL+XCoF+amNdFLo22RVmYbsmIW4D0BQPDK9I/wZtlZLGZHFne9xa7bl2whJg== - dependencies: - archiver "^5.3.0" - arweave "1.14.4" - async-mutex "^0.4.0" - bignumber.js "9.1.1" - events "3.3.0" - fast-copy "^3.0.0" - level "^8.0.0" - memory-level "^1.0.0" - safe-stable-stringify "2.4.1" - stream-buffers "^3.0.2" - unzipit "^1.4.0" - warp-arbundles "^1.0.4" - warp-isomorphic "^1.0.7" - warp-wasm-metering "1.0.1" - -warp-contracts@^1.4.45: +warp-contracts@^1.4.41, warp-contracts@^1.4.45: version "1.4.45" - resolved "https://registry.yarnpkg.com/warp-contracts/-/warp-contracts-1.4.45.tgz#918ede8cdc272bb6c0e9d9334a31107071b8b894" + resolved "https://registry.npmjs.org/warp-contracts/-/warp-contracts-1.4.45.tgz" integrity sha512-v4asbKIofCmQjH+1Q+yTyJmGUFwaL11zNnfaipRsxQ488MB7lGfQGNeadMfYhhc2yvUDhcVok1UcSfvfgugPaQ== dependencies: archiver "^5.3.0" @@ -9627,33 +12898,25 @@ warp-contracts@^1.4.45: warp-isomorphic "^1.0.7" warp-wasm-metering "1.0.1" -warp-isomorphic@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/warp-isomorphic/-/warp-isomorphic-1.0.0.tgz#dccccfc046bc6ac77919f8be1024ced1385c70ea" - integrity sha512-E+9+brlrnZoNpNvpz8foIZiCk9fIVukRBZYEy/yefM+oAG+zNgDPb/xNaZyUJWC8rSZxE1DqrhRl0JxjtLVltA== - dependencies: - buffer "^6.0.3" - undici "^5.8.0" - -warp-isomorphic@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/warp-isomorphic/-/warp-isomorphic-1.0.4.tgz#1017eba260e0f0228b33b94b9e36a1afe54e09d8" - integrity sha512-W77IoLjq/eu5bY1uRrlmVt5lLDoIHeZ0ozJ/j67FTnxvZRXu887biEnom1nx8q1UgOKyJh8eQYFQaE2FLlKhFg== - dependencies: - buffer "^6.0.3" - undici "^5.8.0" - warp-isomorphic@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/warp-isomorphic/-/warp-isomorphic-1.0.7.tgz#abf1ee7bce44bec7c6b97547859e614876869aa7" + resolved "https://registry.npmjs.org/warp-isomorphic/-/warp-isomorphic-1.0.7.tgz" integrity sha512-fXHbUXwdYqPm9fRPz8mjv5ndPco09aMQuTe4kXfymzOq8V6F3DLsg9cIafxvjms9/mc6eijzkLBJ63yjEENEjA== dependencies: buffer "^6.0.3" undici "^5.19.1" +warp-isomorphic@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/warp-isomorphic/-/warp-isomorphic-1.0.0.tgz" + integrity sha512-E+9+brlrnZoNpNvpz8foIZiCk9fIVukRBZYEy/yefM+oAG+zNgDPb/xNaZyUJWC8rSZxE1DqrhRl0JxjtLVltA== + dependencies: + buffer "^6.0.3" + undici "^5.8.0" + warp-wasm-json-toolkit@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/warp-wasm-json-toolkit/-/warp-wasm-json-toolkit-1.0.2.tgz#16ca399e5b20da804c01ff0d00979341b689a0e7" + resolved "https://registry.npmjs.org/warp-wasm-json-toolkit/-/warp-wasm-json-toolkit-1.0.2.tgz" integrity sha512-T6pKJz9mO0ZFYiu4jB2v8j8t8Cw21n/+uFh0QKbc/7cJSssGd3I26sV/VXjoDbGuG7bGzK9BewlFd+ukvxABOA== dependencies: buffer-pipe "0.0.3" @@ -9662,39 +12925,39 @@ warp-wasm-json-toolkit@1.0.2: warp-wasm-metering@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/warp-wasm-metering/-/warp-wasm-metering-1.0.1.tgz#1496b0b9a936985cf21a910e909b87630faa1c43" + resolved "https://registry.npmjs.org/warp-wasm-metering/-/warp-wasm-metering-1.0.1.tgz" integrity sha512-s2NtOPTGIDPWeDKyrY5UiUUf3oOjbjwGF9sgmRR3nqXzjxdgppvuf+6VYquzYM3xRMXIOq+AWMK2H/D/Yv+4tg== dependencies: leb128 "^0.0.4" warp-wasm-json-toolkit "1.0.2" -wasmbuilder@0.0.16, wasmbuilder@^0.0.16: +wasmbuilder@^0.0.16, wasmbuilder@0.0.16: version "0.0.16" - resolved "https://registry.yarnpkg.com/wasmbuilder/-/wasmbuilder-0.0.16.tgz#f34c1f2c047d2f6e1065cbfec5603988f16d8549" + resolved "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.16.tgz" integrity sha512-Qx3lEFqaVvp1cEYW7Bfi+ebRJrOiwz2Ieu7ZG2l7YyeSJIok/reEQCQCuicj/Y32ITIJuGIM9xZQppGx5LrQdA== -wasmcurves@0.2.2, wasmcurves@^0.2.1: +wasmcurves@^0.2.1, wasmcurves@0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.2.tgz#ca444f6a6f6e2a5cbe6629d98ff478a62b4ccb2b" + resolved "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.2.2.tgz" integrity sha512-JRY908NkmKjFl4ytnTu5ED6AwPD+8VJ9oc94kdq7h5bIwbj0L4TDJ69mG+2aLs2SoCmGfqIesMWTEJjtYsoQXQ== dependencies: wasmbuilder "0.0.16" wcwidth@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" weak-lru-cache@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" + resolved "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz" integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== weavedb-base@^0.43.1, weavedb-base@^0.43.2: version "0.43.2" - resolved "https://registry.yarnpkg.com/weavedb-base/-/weavedb-base-0.43.2.tgz#3da2ecfda00cecbd578a310bf90ff34a5d1932b8" + resolved "https://registry.npmjs.org/weavedb-base/-/weavedb-base-0.43.2.tgz" integrity sha512-x9nHOos/0HJ7WoeO57ZJmk6jA9bW8Fe4ulgyWGeMvqH/KlvDkd+V/v0E5pTgjYC8RvXf+EVYJuUuy9cI0tpkfA== dependencies: "@metamask/eth-sig-util" "^4.0.1" @@ -9710,7 +12973,7 @@ weavedb-base@^0.43.1, weavedb-base@^0.43.2: weavedb-base@^0.44.2, weavedb-base@^0.44.3: version "0.44.3" - resolved "https://registry.yarnpkg.com/weavedb-base/-/weavedb-base-0.44.3.tgz#255b02a0009b0078ef77a97eec52fcf3bfd8ec4f" + resolved "https://registry.npmjs.org/weavedb-base/-/weavedb-base-0.44.3.tgz" integrity sha512-dMiLZ3D4cjP89rFqX50EnIWHonqavstgr9Sqs4jm11W5WqqmCQSK4xswFyaFrL3OJTlLnWsZmKqRkON+22zWIg== dependencies: "@metamask/eth-sig-util" "^4.0.1" @@ -9726,7 +12989,7 @@ weavedb-base@^0.44.2, weavedb-base@^0.44.3: weavedb-contracts@^0.43.0: version "0.43.2" - resolved "https://registry.yarnpkg.com/weavedb-contracts/-/weavedb-contracts-0.43.2.tgz#3a2dd540e1714d034501e6b0dfb8fba066f4b608" + resolved "https://registry.npmjs.org/weavedb-contracts/-/weavedb-contracts-0.43.2.tgz" integrity sha512-n5z0Ninp2zau+GRXrsSezONVlPFZR2IJKjsLXylUjxHapWAQh2nX++rJGkjBd5jYw0JOK834PdiZxexLWGvfPg== dependencies: "@noble/curves" "^0.9.0" @@ -9738,7 +13001,7 @@ weavedb-contracts@^0.43.0: weavedb-contracts@^0.44.3: version "0.44.3" - resolved "https://registry.yarnpkg.com/weavedb-contracts/-/weavedb-contracts-0.44.3.tgz#8ee9c407227f27911b2f99422decc507f56732e5" + resolved "https://registry.npmjs.org/weavedb-contracts/-/weavedb-contracts-0.44.3.tgz" integrity sha512-fjOfMP8XQEcZjY0Wcokl2SzbEzBJ4hIudfpyvnrgK4fN5Gl9il+2R9eysD88sg4QLjAoqcwDTLQZGjEYf3KE+A== dependencies: "@noble/curves" "^0.9.0" @@ -9750,7 +13013,7 @@ weavedb-contracts@^0.44.3: weavedb-node-client@^0.43.1: version "0.43.1" - resolved "https://registry.yarnpkg.com/weavedb-node-client/-/weavedb-node-client-0.43.1.tgz#e2a7207a4dd555dae2f52ba84e393dbd186c7ea0" + resolved "https://registry.npmjs.org/weavedb-node-client/-/weavedb-node-client-0.43.1.tgz" integrity sha512-J57E7iCfWta4Ocpluqzx6GvY0cRuh41Kb8Gyew/jbiXrK/jEhw8aA1ZDKAOFTD1+6LxVEKKueWjm0LreO2/vqA== dependencies: "@grpc/grpc-js" "^1.1.0" @@ -9761,7 +13024,7 @@ weavedb-node-client@^0.43.1: weavedb-node-client@^0.44.2: version "0.44.2" - resolved "https://registry.yarnpkg.com/weavedb-node-client/-/weavedb-node-client-0.44.2.tgz#6f1cb2300051360d69157eff74173b9c43b8db66" + resolved "https://registry.npmjs.org/weavedb-node-client/-/weavedb-node-client-0.44.2.tgz" integrity sha512-K3KLSQuzcgo4mi0HB3LG2Yt7TjxWDTdx373w9fXVL8vwBwF6khbWfTAADDYqtGjnCX0YkU7q2Wt4O1JHiZQvAg== dependencies: "@grpc/grpc-js" "^1.1.0" @@ -9772,7 +13035,7 @@ weavedb-node-client@^0.44.2: weavedb-offchain@^0.43.0: version "0.43.0" - resolved "https://registry.yarnpkg.com/weavedb-offchain/-/weavedb-offchain-0.43.0.tgz#2328fabdb8f57a33298b36193fa48e1fae2d7c1d" + resolved "https://registry.npmjs.org/weavedb-offchain/-/weavedb-offchain-0.43.0.tgz" integrity sha512-hHBIyjKjxAwjDA9zrigatK1ju+mFG3aY20NR3YhwSe8gVDe1MZSFgHQJS6pxc5FiydzhHwzX9QPK9CSUOZwA9Q== dependencies: "@metamask/legacy-web3" "^2.0.0" @@ -9784,7 +13047,7 @@ weavedb-offchain@^0.43.0: weavedb-offchain@^0.44.4: version "0.44.4" - resolved "https://registry.yarnpkg.com/weavedb-offchain/-/weavedb-offchain-0.44.4.tgz#4058d718f8ea6778f83575e13bbc56214d8f9b7f" + resolved "https://registry.npmjs.org/weavedb-offchain/-/weavedb-offchain-0.44.4.tgz" integrity sha512-29UrTYyRbykYHRDe9xBXLShHdK9vZSSrghujvrkf2re0CNwkRaM7cmJDac5vM0J/pkYQm1bQEH2pJvQ8mSxxjA== dependencies: "@metamask/legacy-web3" "^2.0.0" @@ -9796,7 +13059,7 @@ weavedb-offchain@^0.44.4: weavedb-sdk-node@^0.44.3: version "0.44.3" - resolved "https://registry.yarnpkg.com/weavedb-sdk-node/-/weavedb-sdk-node-0.44.3.tgz#ccd8360a56f2675607a68b7796653d72f525c963" + resolved "https://registry.npmjs.org/weavedb-sdk-node/-/weavedb-sdk-node-0.44.3.tgz" integrity sha512-hj5OBXJRR85zkE404+Tfjjgq5Z6O96jNd5tpwO2OTsqQs99bCNr8sJtl2l0/AM4cezMKP4/oiAypBSa9GjSZNQ== dependencies: "@aws-amplify/api" "^5.0.14" @@ -9808,7 +13071,7 @@ weavedb-sdk-node@^0.44.3: weavedb-sdk@^0.44.3: version "0.44.3" - resolved "https://registry.yarnpkg.com/weavedb-sdk/-/weavedb-sdk-0.44.3.tgz#32d2e2f05fe3b5bd7694be39bb3c9e1f054cb520" + resolved "https://registry.npmjs.org/weavedb-sdk/-/weavedb-sdk-0.44.3.tgz" integrity sha512-Y5OL/XDQyOOoKzh2BlvEiuzDM+FPLlPmXLcYPAUg9gkDSKy2yEiyL7BwYC3M16rpFIdDf17O8yiclVAY2zURog== dependencies: "@lit-protocol/sdk-browser" "^1.3.3" @@ -9824,27 +13087,19 @@ weavedb-sdk@^0.44.3: weavedb-base "^0.44.3" weavedb-contracts "^0.44.3" -weavedb-warp-contracts-plugin-deploy@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/weavedb-warp-contracts-plugin-deploy/-/weavedb-warp-contracts-plugin-deploy-1.0.10.tgz#c7ec22b96846f7213308f08def338617655bf143" - integrity sha512-LnmGBMx4JCU0IPzk0CMzcy9MAgjS5OYLbW63efrYQ86wLjPTectyZOtxBo3mCg5ayVwHZfqR4OaC81B3SYBsKQ== - dependencies: - arbundles "^0.10.0" - node-stdlib-browser "^1.2.0" - web-streams-polyfill@^3.0.3: version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz" integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== web-worker@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" + resolved "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz" integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== webcrypto-core@^1.7.7: version "1.7.7" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + resolved "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz" integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== dependencies: "@peculiar/asn1-schema" "^2.3.6" @@ -9855,22 +13110,27 @@ webcrypto-core@^1.7.7: webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== +whatwg-fetch@^3.0.0: + version "3.6.20" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + whatwg-mimetype@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz" integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== whatwg-url-without-unicode@8.0.0-3: version "8.0.0-3" - resolved "https://registry.yarnpkg.com/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz#ab6df4bf6caaa6c85a59f6e82c026151d4bb376b" + resolved "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz" integrity sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig== dependencies: buffer "^5.4.3" @@ -9879,67 +13139,78 @@ whatwg-url-without-unicode@8.0.0-3: whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which-module@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2: + version "1.1.15" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" + has-tostringtag "^1.0.2" -which@2.0.2, which@^2.0.1, which@^2.0.2: +which@^2.0.1, which@^2.0.2, which@2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - wide-align@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + word-wrap@~1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== workerpool@6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz" integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== workerpool@6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" @@ -9948,7 +13219,16 @@ wrap-ansi@^5.1.0: wrap-ansi@^6.0.1: version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -9957,7 +13237,7 @@ wrap-ansi@^6.0.1: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -9966,37 +13246,80 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@7.4.6, ws@~7.4.0: +write-file-atomic@^2.3.0: + version "2.4.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@*, ws@^8.11.0, ws@^8.14.2, ws@^8.5.0: + version "8.14.2" + resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + +ws@^6.2.2: + version "6.2.3" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.2.3: + version "6.2.3" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== + dependencies: + async-limiter "~1.0.0" + +ws@^7: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@^7.0.0: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^7.4.0: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^7.5.10: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@~7.4.0: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@7.4.6: version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== ws@7.5.3: version "7.5.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== ws@8.5.0: version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== -ws@^7.0.0, ws@^7.4.0: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^8.11.0, ws@^8.14.2: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== - xml2js@0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz" integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== dependencies: sax ">=0.6.0" @@ -10004,71 +13327,89 @@ xml2js@0.5.0: xmlbuilder@~11.0.0: version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== xss@^1.0.8: version "1.0.15" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.15.tgz#96a0e13886f0661063028b410ed1b18670f4e59a" + resolved "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz" integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg== dependencies: commander "^2.20.3" cssfilter "0.0.10" -xtend@^4.0.0, xtend@^4.0.2: +xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@4.0.0, yallist@^4.0.0: +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0, yallist@4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^2.2.1: + version "2.5.1" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz" + integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q== + yamljs@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" + resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz" integrity sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ== dependencies: argparse "^1.0.7" glob "^7.0.5" -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-parser@^13.1.2: version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^20.2.2: version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -10076,22 +13417,9 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@^13.2.4: version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" @@ -10105,9 +13433,39 @@ yargs@^13.2.4: y18n "^4.0.0" yargs-parser "^13.1.2" +yargs@^15.1.0: + version "15.4.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^17.5.1, yargs@^17.6.2, yargs@^17.7.2: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -10118,9 +13476,22 @@ yargs@^17.5.1, yargs@^17.6.2, yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" @@ -10128,17 +13499,17 @@ yauzl@^2.10.0: ylru@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.3.2.tgz#0de48017473275a4cbdfc83a1eaf67c01af8a785" + resolved "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz" integrity sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zen-observable-ts@0.8.19: version "0.8.19" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz#c094cd20e83ddb02a11144a6e2a89706946b5694" + resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz" integrity sha512-u1a2rpE13G+jSzrg3aiCqXU5tN2kw41b+cBZGmnc+30YimdkKiDj9bTowcB41eL77/17RF/h+393AuVgShyheQ== dependencies: tslib "^1.9.3" @@ -10146,12 +13517,12 @@ zen-observable-ts@0.8.19: zen-observable@^0.8.0: version "0.8.15" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== zip-stream@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" + resolved "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz" integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== dependencies: archiver-utils "^3.0.4" @@ -10160,7 +13531,7 @@ zip-stream@^4.1.0: zkjson@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/zkjson/-/zkjson-0.3.1.tgz#d5be438f0cb336b6a0c0275fa17bfa2373413657" + resolved "https://registry.npmjs.org/zkjson/-/zkjson-0.3.1.tgz" integrity sha512-5YrOuGM1wTZAwnbvxBXcgk/YgsjoTyGIV5RFe+d7BOm2wHxhssgMkQXI7VtBwxnpTUMEVvYoeXoQR/2DjIlE/w== dependencies: blake-hash "^2.0.0" @@ -10169,3 +13540,8 @@ zkjson@^0.3.1: ffjavascript "^0.2.45" ramda "^0.29.1" snarkjs "^0.7.3" + +zod@^3.23.5, zod@^3.23.8: + version "3.23.8" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== From b336687e7c77b3b6e6d55adfce49b556e54034ed Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Sun, 13 Oct 2024 04:21:01 +0400 Subject: [PATCH 05/60] upgrade container node version to 20 --- node/node-server/Dockerfile | 4 ++-- node/node-server/index.js | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/node/node-server/Dockerfile b/node/node-server/Dockerfile index 5487a73..4303805 100644 --- a/node/node-server/Dockerfile +++ b/node/node-server/Dockerfile @@ -1,4 +1,4 @@ -FROM amd64/node:18.13.0-alpine +FROM amd64/node:20-alpine RUN apk add --no-cache git @@ -6,7 +6,7 @@ COPY ./ /weavedb WORKDIR /weavedb -RUN yarn +RUN npm install EXPOSE 9090 diff --git a/node/node-server/index.js b/node/node-server/index.js index 1ebb6c3..08fad9f 100644 --- a/node/node-server/index.js +++ b/node/node-server/index.js @@ -7,7 +7,11 @@ const { config = "./weavedb.config.js", } = require("yargs")(process.argv.slice(2)).argv -const vm = new VM({ dbname, conf: require(config) }) +let conf = { rollup: {} } +try { + conf = require(config) +} catch (e) {} +const vm = new VM({ dbname, conf }) new Server({ query: vm.query.bind(vm) }) if (vm.conf.nostr) { From e8eaf5872916d4d72ab9d89eee3cec1fbd422437 Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Mon, 14 Oct 2024 11:09:53 +0400 Subject: [PATCH 06/60] upgrade contracts to v0.45 --- node/node-server/contracts/weavedb/0.45.0.js | 14828 ++++++++++++++++ .../contracts/weavedb/initial-state.json | 13 +- node/node-server/package.json | 6 +- node/node-server/rollup.js | 8 +- node/node-server/vm.js | 3 +- node/node-server/yarn.lock | 255 +- 6 files changed, 14963 insertions(+), 150 deletions(-) create mode 100644 node/node-server/contracts/weavedb/0.45.0.js diff --git a/node/node-server/contracts/weavedb/0.45.0.js b/node/node-server/contracts/weavedb/0.45.0.js new file mode 100644 index 0000000..e62370c --- /dev/null +++ b/node/node-server/contracts/weavedb/0.45.0.js @@ -0,0 +1,14828 @@ + + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + + // sdk/contracts/weavedb-bpt/actions/read/hash.js + var require_hash = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/hash.js"(exports, module) { + var hash = async (state, action) => ({ result: state.hash || null }); + module.exports = { hash }; + } + }); + + // sdk/contracts/node_modules/ramda/src/F.js + var require_F = __commonJS({ + "sdk/contracts/node_modules/ramda/src/F.js"(exports, module) { + var F = function() { + return false; + }; + module.exports = F; + } + }); + + // sdk/contracts/node_modules/ramda/src/T.js + var require_T = __commonJS({ + "sdk/contracts/node_modules/ramda/src/T.js"(exports, module) { + var T = function() { + return true; + }; + module.exports = T; + } + }); + + // sdk/contracts/node_modules/ramda/src/__.js + var require__ = __commonJS({ + "sdk/contracts/node_modules/ramda/src/__.js"(exports, module) { + module.exports = { + "@@functional/placeholder": true + }; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isPlaceholder.js + var require_isPlaceholder = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isPlaceholder.js"(exports, module) { + function _isPlaceholder(a) { + return a != null && typeof a === "object" && a["@@functional/placeholder"] === true; + } + module.exports = _isPlaceholder; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_curry1.js + var require_curry1 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_curry1.js"(exports, module) { + var _isPlaceholder = require_isPlaceholder(); + function _curry1(fn) { + return function f1(a) { + if (arguments.length === 0 || _isPlaceholder(a)) { + return f1; + } else { + return fn.apply(this, arguments); + } + }; + } + module.exports = _curry1; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_curry2.js + var require_curry2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_curry2.js"(exports, module) { + var _curry1 = require_curry1(); + var _isPlaceholder = require_isPlaceholder(); + function _curry2(fn) { + return function f2(a, b) { + switch (arguments.length) { + case 0: + return f2; + case 1: + return _isPlaceholder(a) ? f2 : _curry1(function(_b) { + return fn(a, _b); + }); + default: + return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function(_a) { + return fn(_a, b); + }) : _isPlaceholder(b) ? _curry1(function(_b) { + return fn(a, _b); + }) : fn(a, b); + } + }; + } + module.exports = _curry2; + } + }); + + // sdk/contracts/node_modules/ramda/src/add.js + var require_add = __commonJS({ + "sdk/contracts/node_modules/ramda/src/add.js"(exports, module) { + var _curry2 = require_curry2(); + var add = /* @__PURE__ */ _curry2(function add2(a, b) { + return Number(a) + Number(b); + }); + module.exports = add; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_concat.js + var require_concat = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_concat.js"(exports, module) { + function _concat(set1, set2) { + set1 = set1 || []; + set2 = set2 || []; + var idx; + var len1 = set1.length; + var len2 = set2.length; + var result = []; + idx = 0; + while (idx < len1) { + result[result.length] = set1[idx]; + idx += 1; + } + idx = 0; + while (idx < len2) { + result[result.length] = set2[idx]; + idx += 1; + } + return result; + } + module.exports = _concat; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_arity.js + var require_arity = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_arity.js"(exports, module) { + function _arity(n, fn) { + switch (n) { + case 0: + return function() { + return fn.apply(this, arguments); + }; + case 1: + return function(a0) { + return fn.apply(this, arguments); + }; + case 2: + return function(a0, a1) { + return fn.apply(this, arguments); + }; + case 3: + return function(a0, a1, a2) { + return fn.apply(this, arguments); + }; + case 4: + return function(a0, a1, a2, a3) { + return fn.apply(this, arguments); + }; + case 5: + return function(a0, a1, a2, a3, a4) { + return fn.apply(this, arguments); + }; + case 6: + return function(a0, a1, a2, a3, a4, a5) { + return fn.apply(this, arguments); + }; + case 7: + return function(a0, a1, a2, a3, a4, a5, a6) { + return fn.apply(this, arguments); + }; + case 8: + return function(a0, a1, a2, a3, a4, a5, a6, a7) { + return fn.apply(this, arguments); + }; + case 9: + return function(a0, a1, a2, a3, a4, a5, a6, a7, a8) { + return fn.apply(this, arguments); + }; + case 10: + return function(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) { + return fn.apply(this, arguments); + }; + default: + throw new Error("First argument to _arity must be a non-negative integer no greater than ten"); + } + } + module.exports = _arity; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_curryN.js + var require_curryN = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_curryN.js"(exports, module) { + var _arity = require_arity(); + var _isPlaceholder = require_isPlaceholder(); + function _curryN(length, received, fn) { + return function() { + var combined = []; + var argsIdx = 0; + var left = length; + var combinedIdx = 0; + while (combinedIdx < received.length || argsIdx < arguments.length) { + var result; + if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) { + result = received[combinedIdx]; + } else { + result = arguments[argsIdx]; + argsIdx += 1; + } + combined[combinedIdx] = result; + if (!_isPlaceholder(result)) { + left -= 1; + } + combinedIdx += 1; + } + return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn)); + }; + } + module.exports = _curryN; + } + }); + + // sdk/contracts/node_modules/ramda/src/curryN.js + var require_curryN2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/curryN.js"(exports, module) { + var _arity = require_arity(); + var _curry1 = require_curry1(); + var _curry2 = require_curry2(); + var _curryN = require_curryN(); + var curryN = /* @__PURE__ */ _curry2(function curryN2(length, fn) { + if (length === 1) { + return _curry1(fn); + } + return _arity(length, _curryN(length, [], fn)); + }); + module.exports = curryN; + } + }); + + // sdk/contracts/node_modules/ramda/src/addIndex.js + var require_addIndex = __commonJS({ + "sdk/contracts/node_modules/ramda/src/addIndex.js"(exports, module) { + var _concat = require_concat(); + var _curry1 = require_curry1(); + var curryN = require_curryN2(); + var addIndex = /* @__PURE__ */ _curry1(function addIndex2(fn) { + return curryN(fn.length, function() { + var idx = 0; + var origFn = arguments[0]; + var list = arguments[arguments.length - 1]; + var args = Array.prototype.slice.call(arguments, 0); + args[0] = function() { + var result = origFn.apply(this, _concat(arguments, [idx, list])); + idx += 1; + return result; + }; + return fn.apply(this, args); + }); + }); + module.exports = addIndex; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_curry3.js + var require_curry3 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_curry3.js"(exports, module) { + var _curry1 = require_curry1(); + var _curry2 = require_curry2(); + var _isPlaceholder = require_isPlaceholder(); + function _curry3(fn) { + return function f3(a, b, c) { + switch (arguments.length) { + case 0: + return f3; + case 1: + return _isPlaceholder(a) ? f3 : _curry2(function(_b, _c) { + return fn(a, _b, _c); + }); + case 2: + return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function(_a, _c) { + return fn(_a, b, _c); + }) : _isPlaceholder(b) ? _curry2(function(_b, _c) { + return fn(a, _b, _c); + }) : _curry1(function(_c) { + return fn(a, b, _c); + }); + default: + return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function(_a, _b) { + return fn(_a, _b, c); + }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function(_a, _c) { + return fn(_a, b, _c); + }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function(_b, _c) { + return fn(a, _b, _c); + }) : _isPlaceholder(a) ? _curry1(function(_a) { + return fn(_a, b, c); + }) : _isPlaceholder(b) ? _curry1(function(_b) { + return fn(a, _b, c); + }) : _isPlaceholder(c) ? _curry1(function(_c) { + return fn(a, b, _c); + }) : fn(a, b, c); + } + }; + } + module.exports = _curry3; + } + }); + + // sdk/contracts/node_modules/ramda/src/adjust.js + var require_adjust = __commonJS({ + "sdk/contracts/node_modules/ramda/src/adjust.js"(exports, module) { + var _concat = require_concat(); + var _curry3 = require_curry3(); + var adjust = /* @__PURE__ */ _curry3(function adjust2(idx, fn, list) { + var len = list.length; + if (idx >= len || idx < -len) { + return list; + } + var _idx = (len + idx) % len; + var _list = _concat(list); + _list[_idx] = fn(list[_idx]); + return _list; + }); + module.exports = adjust; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isArray.js + var require_isArray = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isArray.js"(exports, module) { + module.exports = Array.isArray || function _isArray(val) { + return val != null && val.length >= 0 && Object.prototype.toString.call(val) === "[object Array]"; + }; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isTransformer.js + var require_isTransformer = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isTransformer.js"(exports, module) { + function _isTransformer(obj) { + return obj != null && typeof obj["@@transducer/step"] === "function"; + } + module.exports = _isTransformer; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_dispatchable.js + var require_dispatchable = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_dispatchable.js"(exports, module) { + var _isArray = require_isArray(); + var _isTransformer = require_isTransformer(); + function _dispatchable(methodNames, transducerCreator, fn) { + return function() { + if (arguments.length === 0) { + return fn(); + } + var obj = arguments[arguments.length - 1]; + if (!_isArray(obj)) { + var idx = 0; + while (idx < methodNames.length) { + if (typeof obj[methodNames[idx]] === "function") { + return obj[methodNames[idx]].apply(obj, Array.prototype.slice.call(arguments, 0, -1)); + } + idx += 1; + } + if (_isTransformer(obj)) { + var transducer = transducerCreator.apply(null, Array.prototype.slice.call(arguments, 0, -1)); + return transducer(obj); + } + } + return fn.apply(this, arguments); + }; + } + module.exports = _dispatchable; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_reduced.js + var require_reduced = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_reduced.js"(exports, module) { + function _reduced(x) { + return x && x["@@transducer/reduced"] ? x : { + "@@transducer/value": x, + "@@transducer/reduced": true + }; + } + module.exports = _reduced; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xfBase.js + var require_xfBase = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xfBase.js"(exports, module) { + module.exports = { + init: function() { + return this.xf["@@transducer/init"](); + }, + result: function(result) { + return this.xf["@@transducer/result"](result); + } + }; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xall.js + var require_xall = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xall.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduced = require_reduced(); + var _xfBase = require_xfBase(); + var XAll = /* @__PURE__ */ function() { + function XAll2(f, xf) { + this.xf = xf; + this.f = f; + this.all = true; + } + XAll2.prototype["@@transducer/init"] = _xfBase.init; + XAll2.prototype["@@transducer/result"] = function(result) { + if (this.all) { + result = this.xf["@@transducer/step"](result, true); + } + return this.xf["@@transducer/result"](result); + }; + XAll2.prototype["@@transducer/step"] = function(result, input) { + if (!this.f(input)) { + this.all = false; + result = _reduced(this.xf["@@transducer/step"](result, false)); + } + return result; + }; + return XAll2; + }(); + var _xall = /* @__PURE__ */ _curry2(function _xall2(f, xf) { + return new XAll(f, xf); + }); + module.exports = _xall; + } + }); + + // sdk/contracts/node_modules/ramda/src/all.js + var require_all = __commonJS({ + "sdk/contracts/node_modules/ramda/src/all.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xall = require_xall(); + var all = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["all"], _xall, function all2(fn, list) { + var idx = 0; + while (idx < list.length) { + if (!fn(list[idx])) { + return false; + } + idx += 1; + } + return true; + }) + ); + module.exports = all; + } + }); + + // sdk/contracts/node_modules/ramda/src/max.js + var require_max = __commonJS({ + "sdk/contracts/node_modules/ramda/src/max.js"(exports, module) { + var _curry2 = require_curry2(); + var max = /* @__PURE__ */ _curry2(function max2(a, b) { + return b > a ? b : a; + }); + module.exports = max; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_map.js + var require_map = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_map.js"(exports, module) { + function _map(fn, functor) { + var idx = 0; + var len = functor.length; + var result = Array(len); + while (idx < len) { + result[idx] = fn(functor[idx]); + idx += 1; + } + return result; + } + module.exports = _map; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isString.js + var require_isString = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isString.js"(exports, module) { + function _isString(x) { + return Object.prototype.toString.call(x) === "[object String]"; + } + module.exports = _isString; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isArrayLike.js + var require_isArrayLike = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isArrayLike.js"(exports, module) { + var _curry1 = require_curry1(); + var _isArray = require_isArray(); + var _isString = require_isString(); + var _isArrayLike = /* @__PURE__ */ _curry1(function isArrayLike(x) { + if (_isArray(x)) { + return true; + } + if (!x) { + return false; + } + if (typeof x !== "object") { + return false; + } + if (_isString(x)) { + return false; + } + if (x.length === 0) { + return true; + } + if (x.length > 0) { + return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1); + } + return false; + }); + module.exports = _isArrayLike; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xwrap.js + var require_xwrap = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xwrap.js"(exports, module) { + var XWrap = /* @__PURE__ */ function() { + function XWrap2(fn) { + this.f = fn; + } + XWrap2.prototype["@@transducer/init"] = function() { + throw new Error("init not implemented on XWrap"); + }; + XWrap2.prototype["@@transducer/result"] = function(acc) { + return acc; + }; + XWrap2.prototype["@@transducer/step"] = function(acc, x) { + return this.f(acc, x); + }; + return XWrap2; + }(); + function _xwrap(fn) { + return new XWrap(fn); + } + module.exports = _xwrap; + } + }); + + // sdk/contracts/node_modules/ramda/src/bind.js + var require_bind = __commonJS({ + "sdk/contracts/node_modules/ramda/src/bind.js"(exports, module) { + var _arity = require_arity(); + var _curry2 = require_curry2(); + var bind = /* @__PURE__ */ _curry2(function bind2(fn, thisObj) { + return _arity(fn.length, function() { + return fn.apply(thisObj, arguments); + }); + }); + module.exports = bind; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_reduce.js + var require_reduce = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_reduce.js"(exports, module) { + var _isArrayLike = require_isArrayLike(); + var _xwrap = require_xwrap(); + var bind = require_bind(); + function _arrayReduce(xf, acc, list) { + var idx = 0; + var len = list.length; + while (idx < len) { + acc = xf["@@transducer/step"](acc, list[idx]); + if (acc && acc["@@transducer/reduced"]) { + acc = acc["@@transducer/value"]; + break; + } + idx += 1; + } + return xf["@@transducer/result"](acc); + } + function _iterableReduce(xf, acc, iter) { + var step = iter.next(); + while (!step.done) { + acc = xf["@@transducer/step"](acc, step.value); + if (acc && acc["@@transducer/reduced"]) { + acc = acc["@@transducer/value"]; + break; + } + step = iter.next(); + } + return xf["@@transducer/result"](acc); + } + function _methodReduce(xf, acc, obj, methodName) { + return xf["@@transducer/result"](obj[methodName](bind(xf["@@transducer/step"], xf), acc)); + } + var symIterator = typeof Symbol !== "undefined" ? Symbol.iterator : "@@iterator"; + function _reduce(fn, acc, list) { + if (typeof fn === "function") { + fn = _xwrap(fn); + } + if (_isArrayLike(list)) { + return _arrayReduce(fn, acc, list); + } + if (typeof list["fantasy-land/reduce"] === "function") { + return _methodReduce(fn, acc, list, "fantasy-land/reduce"); + } + if (list[symIterator] != null) { + return _iterableReduce(fn, acc, list[symIterator]()); + } + if (typeof list.next === "function") { + return _iterableReduce(fn, acc, list); + } + if (typeof list.reduce === "function") { + return _methodReduce(fn, acc, list, "reduce"); + } + throw new TypeError("reduce: list must be array or iterable"); + } + module.exports = _reduce; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xmap.js + var require_xmap = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xmap.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XMap = /* @__PURE__ */ function() { + function XMap2(f, xf) { + this.xf = xf; + this.f = f; + } + XMap2.prototype["@@transducer/init"] = _xfBase.init; + XMap2.prototype["@@transducer/result"] = _xfBase.result; + XMap2.prototype["@@transducer/step"] = function(result, input) { + return this.xf["@@transducer/step"](result, this.f(input)); + }; + return XMap2; + }(); + var _xmap = /* @__PURE__ */ _curry2(function _xmap2(f, xf) { + return new XMap(f, xf); + }); + module.exports = _xmap; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_has.js + var require_has = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_has.js"(exports, module) { + function _has(prop, obj) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + module.exports = _has; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isArguments.js + var require_isArguments = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isArguments.js"(exports, module) { + var _has = require_has(); + var toString = Object.prototype.toString; + var _isArguments = /* @__PURE__ */ function() { + return toString.call(arguments) === "[object Arguments]" ? function _isArguments2(x) { + return toString.call(x) === "[object Arguments]"; + } : function _isArguments2(x) { + return _has("callee", x); + }; + }(); + module.exports = _isArguments; + } + }); + + // sdk/contracts/node_modules/ramda/src/keys.js + var require_keys = __commonJS({ + "sdk/contracts/node_modules/ramda/src/keys.js"(exports, module) { + var _curry1 = require_curry1(); + var _has = require_has(); + var _isArguments = require_isArguments(); + var hasEnumBug = !/* @__PURE__ */ { + toString: null + }.propertyIsEnumerable("toString"); + var nonEnumerableProps = ["constructor", "valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"]; + var hasArgsEnumBug = /* @__PURE__ */ function() { + "use strict"; + return arguments.propertyIsEnumerable("length"); + }(); + var contains = function contains2(list, item) { + var idx = 0; + while (idx < list.length) { + if (list[idx] === item) { + return true; + } + idx += 1; + } + return false; + }; + var keys = typeof Object.keys === "function" && !hasArgsEnumBug ? /* @__PURE__ */ _curry1(function keys2(obj) { + return Object(obj) !== obj ? [] : Object.keys(obj); + }) : /* @__PURE__ */ _curry1(function keys2(obj) { + if (Object(obj) !== obj) { + return []; + } + var prop, nIdx; + var ks = []; + var checkArgsLength = hasArgsEnumBug && _isArguments(obj); + for (prop in obj) { + if (_has(prop, obj) && (!checkArgsLength || prop !== "length")) { + ks[ks.length] = prop; + } + } + if (hasEnumBug) { + nIdx = nonEnumerableProps.length - 1; + while (nIdx >= 0) { + prop = nonEnumerableProps[nIdx]; + if (_has(prop, obj) && !contains(ks, prop)) { + ks[ks.length] = prop; + } + nIdx -= 1; + } + } + return ks; + }); + module.exports = keys; + } + }); + + // sdk/contracts/node_modules/ramda/src/map.js + var require_map2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/map.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _map = require_map(); + var _reduce = require_reduce(); + var _xmap = require_xmap(); + var curryN = require_curryN2(); + var keys = require_keys(); + var map = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["fantasy-land/map", "map"], _xmap, function map2(fn, functor) { + switch (Object.prototype.toString.call(functor)) { + case "[object Function]": + return curryN(functor.length, function() { + return fn.call(this, functor.apply(this, arguments)); + }); + case "[object Object]": + return _reduce(function(acc, key) { + acc[key] = fn(functor[key]); + return acc; + }, {}, keys(functor)); + default: + return _map(fn, functor); + } + }) + ); + module.exports = map; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isInteger.js + var require_isInteger = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isInteger.js"(exports, module) { + module.exports = Number.isInteger || function _isInteger(n) { + return n << 0 === n; + }; + } + }); + + // sdk/contracts/node_modules/ramda/src/nth.js + var require_nth = __commonJS({ + "sdk/contracts/node_modules/ramda/src/nth.js"(exports, module) { + var _curry2 = require_curry2(); + var _isString = require_isString(); + var nth = /* @__PURE__ */ _curry2(function nth2(offset, list) { + var idx = offset < 0 ? list.length + offset : offset; + return _isString(list) ? list.charAt(idx) : list[idx]; + }); + module.exports = nth; + } + }); + + // sdk/contracts/node_modules/ramda/src/prop.js + var require_prop = __commonJS({ + "sdk/contracts/node_modules/ramda/src/prop.js"(exports, module) { + var _curry2 = require_curry2(); + var _isInteger = require_isInteger(); + var nth = require_nth(); + var prop = /* @__PURE__ */ _curry2(function prop2(p, obj) { + if (obj == null) { + return; + } + return _isInteger(p) ? nth(p, obj) : obj[p]; + }); + module.exports = prop; + } + }); + + // sdk/contracts/node_modules/ramda/src/pluck.js + var require_pluck = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pluck.js"(exports, module) { + var _curry2 = require_curry2(); + var map = require_map2(); + var prop = require_prop(); + var pluck = /* @__PURE__ */ _curry2(function pluck2(p, list) { + return map(prop(p), list); + }); + module.exports = pluck; + } + }); + + // sdk/contracts/node_modules/ramda/src/reduce.js + var require_reduce2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/reduce.js"(exports, module) { + var _curry3 = require_curry3(); + var _reduce = require_reduce(); + var reduce = /* @__PURE__ */ _curry3(_reduce); + module.exports = reduce; + } + }); + + // sdk/contracts/node_modules/ramda/src/allPass.js + var require_allPass = __commonJS({ + "sdk/contracts/node_modules/ramda/src/allPass.js"(exports, module) { + var _curry1 = require_curry1(); + var curryN = require_curryN2(); + var max = require_max(); + var pluck = require_pluck(); + var reduce = require_reduce2(); + var allPass = /* @__PURE__ */ _curry1(function allPass2(preds) { + return curryN(reduce(max, 0, pluck("length", preds)), function() { + var idx = 0; + var len = preds.length; + while (idx < len) { + if (!preds[idx].apply(this, arguments)) { + return false; + } + idx += 1; + } + return true; + }); + }); + module.exports = allPass; + } + }); + + // sdk/contracts/node_modules/ramda/src/always.js + var require_always = __commonJS({ + "sdk/contracts/node_modules/ramda/src/always.js"(exports, module) { + var _curry1 = require_curry1(); + var always = /* @__PURE__ */ _curry1(function always2(val) { + return function() { + return val; + }; + }); + module.exports = always; + } + }); + + // sdk/contracts/node_modules/ramda/src/and.js + var require_and = __commonJS({ + "sdk/contracts/node_modules/ramda/src/and.js"(exports, module) { + var _curry2 = require_curry2(); + var and = /* @__PURE__ */ _curry2(function and2(a, b) { + return a && b; + }); + module.exports = and; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xany.js + var require_xany = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xany.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduced = require_reduced(); + var _xfBase = require_xfBase(); + var XAny = /* @__PURE__ */ function() { + function XAny2(f, xf) { + this.xf = xf; + this.f = f; + this.any = false; + } + XAny2.prototype["@@transducer/init"] = _xfBase.init; + XAny2.prototype["@@transducer/result"] = function(result) { + if (!this.any) { + result = this.xf["@@transducer/step"](result, false); + } + return this.xf["@@transducer/result"](result); + }; + XAny2.prototype["@@transducer/step"] = function(result, input) { + if (this.f(input)) { + this.any = true; + result = _reduced(this.xf["@@transducer/step"](result, true)); + } + return result; + }; + return XAny2; + }(); + var _xany = /* @__PURE__ */ _curry2(function _xany2(f, xf) { + return new XAny(f, xf); + }); + module.exports = _xany; + } + }); + + // sdk/contracts/node_modules/ramda/src/any.js + var require_any = __commonJS({ + "sdk/contracts/node_modules/ramda/src/any.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xany = require_xany(); + var any = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["any"], _xany, function any2(fn, list) { + var idx = 0; + while (idx < list.length) { + if (fn(list[idx])) { + return true; + } + idx += 1; + } + return false; + }) + ); + module.exports = any; + } + }); + + // sdk/contracts/node_modules/ramda/src/anyPass.js + var require_anyPass = __commonJS({ + "sdk/contracts/node_modules/ramda/src/anyPass.js"(exports, module) { + var _curry1 = require_curry1(); + var curryN = require_curryN2(); + var max = require_max(); + var pluck = require_pluck(); + var reduce = require_reduce2(); + var anyPass = /* @__PURE__ */ _curry1(function anyPass2(preds) { + return curryN(reduce(max, 0, pluck("length", preds)), function() { + var idx = 0; + var len = preds.length; + while (idx < len) { + if (preds[idx].apply(this, arguments)) { + return true; + } + idx += 1; + } + return false; + }); + }); + module.exports = anyPass; + } + }); + + // sdk/contracts/node_modules/ramda/src/ap.js + var require_ap = __commonJS({ + "sdk/contracts/node_modules/ramda/src/ap.js"(exports, module) { + var _concat = require_concat(); + var _curry2 = require_curry2(); + var _reduce = require_reduce(); + var map = require_map2(); + var ap = /* @__PURE__ */ _curry2(function ap2(applyF, applyX) { + return typeof applyX["fantasy-land/ap"] === "function" ? applyX["fantasy-land/ap"](applyF) : typeof applyF.ap === "function" ? applyF.ap(applyX) : typeof applyF === "function" ? function(x) { + return applyF(x)(applyX(x)); + } : _reduce(function(acc, f) { + return _concat(acc, map(f, applyX)); + }, [], applyF); + }); + module.exports = ap; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_aperture.js + var require_aperture = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_aperture.js"(exports, module) { + function _aperture(n, list) { + var idx = 0; + var limit = list.length - (n - 1); + var acc = new Array(limit >= 0 ? limit : 0); + while (idx < limit) { + acc[idx] = Array.prototype.slice.call(list, idx, idx + n); + idx += 1; + } + return acc; + } + module.exports = _aperture; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xaperture.js + var require_xaperture = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xaperture.js"(exports, module) { + var _concat = require_concat(); + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XAperture = /* @__PURE__ */ function() { + function XAperture2(n, xf) { + this.xf = xf; + this.pos = 0; + this.full = false; + this.acc = new Array(n); + } + XAperture2.prototype["@@transducer/init"] = _xfBase.init; + XAperture2.prototype["@@transducer/result"] = function(result) { + this.acc = null; + return this.xf["@@transducer/result"](result); + }; + XAperture2.prototype["@@transducer/step"] = function(result, input) { + this.store(input); + return this.full ? this.xf["@@transducer/step"](result, this.getCopy()) : result; + }; + XAperture2.prototype.store = function(input) { + this.acc[this.pos] = input; + this.pos += 1; + if (this.pos === this.acc.length) { + this.pos = 0; + this.full = true; + } + }; + XAperture2.prototype.getCopy = function() { + return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos)); + }; + return XAperture2; + }(); + var _xaperture = /* @__PURE__ */ _curry2(function _xaperture2(n, xf) { + return new XAperture(n, xf); + }); + module.exports = _xaperture; + } + }); + + // sdk/contracts/node_modules/ramda/src/aperture.js + var require_aperture2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/aperture.js"(exports, module) { + var _aperture = require_aperture(); + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xaperture = require_xaperture(); + var aperture = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xaperture, _aperture) + ); + module.exports = aperture; + } + }); + + // sdk/contracts/node_modules/ramda/src/append.js + var require_append = __commonJS({ + "sdk/contracts/node_modules/ramda/src/append.js"(exports, module) { + var _concat = require_concat(); + var _curry2 = require_curry2(); + var append = /* @__PURE__ */ _curry2(function append2(el, list) { + return _concat(list, [el]); + }); + module.exports = append; + } + }); + + // sdk/contracts/node_modules/ramda/src/apply.js + var require_apply = __commonJS({ + "sdk/contracts/node_modules/ramda/src/apply.js"(exports, module) { + var _curry2 = require_curry2(); + var apply = /* @__PURE__ */ _curry2(function apply2(fn, args) { + return fn.apply(this, args); + }); + module.exports = apply; + } + }); + + // sdk/contracts/node_modules/ramda/src/values.js + var require_values = __commonJS({ + "sdk/contracts/node_modules/ramda/src/values.js"(exports, module) { + var _curry1 = require_curry1(); + var keys = require_keys(); + var values = /* @__PURE__ */ _curry1(function values2(obj) { + var props = keys(obj); + var len = props.length; + var vals = []; + var idx = 0; + while (idx < len) { + vals[idx] = obj[props[idx]]; + idx += 1; + } + return vals; + }); + module.exports = values; + } + }); + + // sdk/contracts/node_modules/ramda/src/applySpec.js + var require_applySpec = __commonJS({ + "sdk/contracts/node_modules/ramda/src/applySpec.js"(exports, module) { + var _curry1 = require_curry1(); + var _isArray = require_isArray(); + var apply = require_apply(); + var curryN = require_curryN2(); + var max = require_max(); + var pluck = require_pluck(); + var reduce = require_reduce2(); + var keys = require_keys(); + var values = require_values(); + function mapValues(fn, obj) { + return _isArray(obj) ? obj.map(fn) : keys(obj).reduce(function(acc, key) { + acc[key] = fn(obj[key]); + return acc; + }, {}); + } + var applySpec = /* @__PURE__ */ _curry1(function applySpec2(spec) { + spec = mapValues(function(v) { + return typeof v == "function" ? v : applySpec2(v); + }, spec); + return curryN(reduce(max, 0, pluck("length", values(spec))), function() { + var args = arguments; + return mapValues(function(f) { + return apply(f, args); + }, spec); + }); + }); + module.exports = applySpec; + } + }); + + // sdk/contracts/node_modules/ramda/src/applyTo.js + var require_applyTo = __commonJS({ + "sdk/contracts/node_modules/ramda/src/applyTo.js"(exports, module) { + var _curry2 = require_curry2(); + var applyTo = /* @__PURE__ */ _curry2(function applyTo2(x, f) { + return f(x); + }); + module.exports = applyTo; + } + }); + + // sdk/contracts/node_modules/ramda/src/ascend.js + var require_ascend = __commonJS({ + "sdk/contracts/node_modules/ramda/src/ascend.js"(exports, module) { + var _curry3 = require_curry3(); + var ascend = /* @__PURE__ */ _curry3(function ascend2(fn, a, b) { + var aa = fn(a); + var bb = fn(b); + return aa < bb ? -1 : aa > bb ? 1 : 0; + }); + module.exports = ascend; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_assoc.js + var require_assoc = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_assoc.js"(exports, module) { + var _isArray = require_isArray(); + var _isInteger = require_isInteger(); + function _assoc(prop, val, obj) { + if (_isInteger(prop) && _isArray(obj)) { + var arr = [].concat(obj); + arr[prop] = val; + return arr; + } + var result = {}; + for (var p in obj) { + result[p] = obj[p]; + } + result[prop] = val; + return result; + } + module.exports = _assoc; + } + }); + + // sdk/contracts/node_modules/ramda/src/isNil.js + var require_isNil = __commonJS({ + "sdk/contracts/node_modules/ramda/src/isNil.js"(exports, module) { + var _curry1 = require_curry1(); + var isNil = /* @__PURE__ */ _curry1(function isNil2(x) { + return x == null; + }); + module.exports = isNil; + } + }); + + // sdk/contracts/node_modules/ramda/src/assocPath.js + var require_assocPath = __commonJS({ + "sdk/contracts/node_modules/ramda/src/assocPath.js"(exports, module) { + var _curry3 = require_curry3(); + var _has = require_has(); + var _isInteger = require_isInteger(); + var _assoc = require_assoc(); + var isNil = require_isNil(); + var assocPath = /* @__PURE__ */ _curry3(function assocPath2(path, val, obj) { + if (path.length === 0) { + return val; + } + var idx = path[0]; + if (path.length > 1) { + var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {}; + val = assocPath2(Array.prototype.slice.call(path, 1), val, nextObj); + } + return _assoc(idx, val, obj); + }); + module.exports = assocPath; + } + }); + + // sdk/contracts/node_modules/ramda/src/assoc.js + var require_assoc2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/assoc.js"(exports, module) { + var _curry3 = require_curry3(); + var assocPath = require_assocPath(); + var assoc = /* @__PURE__ */ _curry3(function assoc2(prop, val, obj) { + return assocPath([prop], val, obj); + }); + module.exports = assoc; + } + }); + + // sdk/contracts/node_modules/ramda/src/nAry.js + var require_nAry = __commonJS({ + "sdk/contracts/node_modules/ramda/src/nAry.js"(exports, module) { + var _curry2 = require_curry2(); + var nAry = /* @__PURE__ */ _curry2(function nAry2(n, fn) { + switch (n) { + case 0: + return function() { + return fn.call(this); + }; + case 1: + return function(a0) { + return fn.call(this, a0); + }; + case 2: + return function(a0, a1) { + return fn.call(this, a0, a1); + }; + case 3: + return function(a0, a1, a2) { + return fn.call(this, a0, a1, a2); + }; + case 4: + return function(a0, a1, a2, a3) { + return fn.call(this, a0, a1, a2, a3); + }; + case 5: + return function(a0, a1, a2, a3, a4) { + return fn.call(this, a0, a1, a2, a3, a4); + }; + case 6: + return function(a0, a1, a2, a3, a4, a5) { + return fn.call(this, a0, a1, a2, a3, a4, a5); + }; + case 7: + return function(a0, a1, a2, a3, a4, a5, a6) { + return fn.call(this, a0, a1, a2, a3, a4, a5, a6); + }; + case 8: + return function(a0, a1, a2, a3, a4, a5, a6, a7) { + return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7); + }; + case 9: + return function(a0, a1, a2, a3, a4, a5, a6, a7, a8) { + return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8); + }; + case 10: + return function(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) { + return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); + }; + default: + throw new Error("First argument to nAry must be a non-negative integer no greater than ten"); + } + }); + module.exports = nAry; + } + }); + + // sdk/contracts/node_modules/ramda/src/binary.js + var require_binary = __commonJS({ + "sdk/contracts/node_modules/ramda/src/binary.js"(exports, module) { + var _curry1 = require_curry1(); + var nAry = require_nAry(); + var binary = /* @__PURE__ */ _curry1(function binary2(fn) { + return nAry(2, fn); + }); + module.exports = binary; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isFunction.js + var require_isFunction = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isFunction.js"(exports, module) { + function _isFunction(x) { + var type = Object.prototype.toString.call(x); + return type === "[object Function]" || type === "[object AsyncFunction]" || type === "[object GeneratorFunction]" || type === "[object AsyncGeneratorFunction]"; + } + module.exports = _isFunction; + } + }); + + // sdk/contracts/node_modules/ramda/src/liftN.js + var require_liftN = __commonJS({ + "sdk/contracts/node_modules/ramda/src/liftN.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduce = require_reduce(); + var ap = require_ap(); + var curryN = require_curryN2(); + var map = require_map2(); + var liftN = /* @__PURE__ */ _curry2(function liftN2(arity, fn) { + var lifted = curryN(arity, fn); + return curryN(arity, function() { + return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1)); + }); + }); + module.exports = liftN; + } + }); + + // sdk/contracts/node_modules/ramda/src/lift.js + var require_lift = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lift.js"(exports, module) { + var _curry1 = require_curry1(); + var liftN = require_liftN(); + var lift = /* @__PURE__ */ _curry1(function lift2(fn) { + return liftN(fn.length, fn); + }); + module.exports = lift; + } + }); + + // sdk/contracts/node_modules/ramda/src/both.js + var require_both = __commonJS({ + "sdk/contracts/node_modules/ramda/src/both.js"(exports, module) { + var _curry2 = require_curry2(); + var _isFunction = require_isFunction(); + var and = require_and(); + var lift = require_lift(); + var both = /* @__PURE__ */ _curry2(function both2(f, g) { + return _isFunction(f) ? function _both() { + return f.apply(this, arguments) && g.apply(this, arguments); + } : lift(and)(f, g); + }); + module.exports = both; + } + }); + + // sdk/contracts/node_modules/ramda/src/call.js + var require_call = __commonJS({ + "sdk/contracts/node_modules/ramda/src/call.js"(exports, module) { + var _curry1 = require_curry1(); + var call = /* @__PURE__ */ _curry1(function call2(fn) { + return fn.apply(this, Array.prototype.slice.call(arguments, 1)); + }); + module.exports = call; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_makeFlat.js + var require_makeFlat = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_makeFlat.js"(exports, module) { + var _isArrayLike = require_isArrayLike(); + function _makeFlat(recursive) { + return function flatt(list) { + var value, jlen, j; + var result = []; + var idx = 0; + var ilen = list.length; + while (idx < ilen) { + if (_isArrayLike(list[idx])) { + value = recursive ? flatt(list[idx]) : list[idx]; + j = 0; + jlen = value.length; + while (j < jlen) { + result[result.length] = value[j]; + j += 1; + } + } else { + result[result.length] = list[idx]; + } + idx += 1; + } + return result; + }; + } + module.exports = _makeFlat; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_forceReduced.js + var require_forceReduced = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_forceReduced.js"(exports, module) { + function _forceReduced(x) { + return { + "@@transducer/value": x, + "@@transducer/reduced": true + }; + } + module.exports = _forceReduced; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_flatCat.js + var require_flatCat = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_flatCat.js"(exports, module) { + var _forceReduced = require_forceReduced(); + var _isArrayLike = require_isArrayLike(); + var _reduce = require_reduce(); + var _xfBase = require_xfBase(); + var preservingReduced = function(xf) { + return { + "@@transducer/init": _xfBase.init, + "@@transducer/result": function(result) { + return xf["@@transducer/result"](result); + }, + "@@transducer/step": function(result, input) { + var ret = xf["@@transducer/step"](result, input); + return ret["@@transducer/reduced"] ? _forceReduced(ret) : ret; + } + }; + }; + var _flatCat = function _xcat(xf) { + var rxf = preservingReduced(xf); + return { + "@@transducer/init": _xfBase.init, + "@@transducer/result": function(result) { + return rxf["@@transducer/result"](result); + }, + "@@transducer/step": function(result, input) { + return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input); + } + }; + }; + module.exports = _flatCat; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xchain.js + var require_xchain = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xchain.js"(exports, module) { + var _curry2 = require_curry2(); + var _flatCat = require_flatCat(); + var map = require_map2(); + var _xchain = /* @__PURE__ */ _curry2(function _xchain2(f, xf) { + return map(f, _flatCat(xf)); + }); + module.exports = _xchain; + } + }); + + // sdk/contracts/node_modules/ramda/src/chain.js + var require_chain = __commonJS({ + "sdk/contracts/node_modules/ramda/src/chain.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _makeFlat = require_makeFlat(); + var _xchain = require_xchain(); + var map = require_map2(); + var chain = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["fantasy-land/chain", "chain"], _xchain, function chain2(fn, monad) { + if (typeof monad === "function") { + return function(x) { + return fn(monad(x))(x); + }; + } + return _makeFlat(false)(map(fn, monad)); + }) + ); + module.exports = chain; + } + }); + + // sdk/contracts/node_modules/ramda/src/clamp.js + var require_clamp = __commonJS({ + "sdk/contracts/node_modules/ramda/src/clamp.js"(exports, module) { + var _curry3 = require_curry3(); + var clamp = /* @__PURE__ */ _curry3(function clamp2(min, max, value) { + if (min > max) { + throw new Error("min must not be greater than max in clamp(min, max, value)"); + } + return value < min ? min : value > max ? max : value; + }); + module.exports = clamp; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_cloneRegExp.js + var require_cloneRegExp = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_cloneRegExp.js"(exports, module) { + function _cloneRegExp(pattern) { + return new RegExp(pattern.source, (pattern.global ? "g" : "") + (pattern.ignoreCase ? "i" : "") + (pattern.multiline ? "m" : "") + (pattern.sticky ? "y" : "") + (pattern.unicode ? "u" : "")); + } + module.exports = _cloneRegExp; + } + }); + + // sdk/contracts/node_modules/ramda/src/type.js + var require_type = __commonJS({ + "sdk/contracts/node_modules/ramda/src/type.js"(exports, module) { + var _curry1 = require_curry1(); + var type = /* @__PURE__ */ _curry1(function type2(val) { + return val === null ? "Null" : val === void 0 ? "Undefined" : Object.prototype.toString.call(val).slice(8, -1); + }); + module.exports = type; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_clone.js + var require_clone = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_clone.js"(exports, module) { + var _cloneRegExp = require_cloneRegExp(); + var type = require_type(); + function _clone(value, refFrom, refTo, deep) { + var copy = function copy2(copiedValue) { + var len = refFrom.length; + var idx = 0; + while (idx < len) { + if (value === refFrom[idx]) { + return refTo[idx]; + } + idx += 1; + } + refFrom[idx] = value; + refTo[idx] = copiedValue; + for (var key in value) { + if (value.hasOwnProperty(key)) { + copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key]; + } + } + return copiedValue; + }; + switch (type(value)) { + case "Object": + return copy(Object.create(Object.getPrototypeOf(value))); + case "Array": + return copy([]); + case "Date": + return new Date(value.valueOf()); + case "RegExp": + return _cloneRegExp(value); + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "BigInt64Array": + case "BigUint64Array": + return value.slice(); + default: + return value; + } + } + module.exports = _clone; + } + }); + + // sdk/contracts/node_modules/ramda/src/clone.js + var require_clone2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/clone.js"(exports, module) { + var _clone = require_clone(); + var _curry1 = require_curry1(); + var clone = /* @__PURE__ */ _curry1(function clone2(value) { + return value != null && typeof value.clone === "function" ? value.clone() : _clone(value, [], [], true); + }); + module.exports = clone; + } + }); + + // sdk/contracts/node_modules/ramda/src/collectBy.js + var require_collectBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/collectBy.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduce = require_reduce(); + var collectBy = /* @__PURE__ */ _curry2(function collectBy2(fn, list) { + var group = _reduce(function(o, x) { + var tag2 = fn(x); + if (o[tag2] === void 0) { + o[tag2] = []; + } + o[tag2].push(x); + return o; + }, {}, list); + var newList = []; + for (var tag in group) { + newList.push(group[tag]); + } + return newList; + }); + module.exports = collectBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/comparator.js + var require_comparator = __commonJS({ + "sdk/contracts/node_modules/ramda/src/comparator.js"(exports, module) { + var _curry1 = require_curry1(); + var comparator = /* @__PURE__ */ _curry1(function comparator2(pred) { + return function(a, b) { + return pred(a, b) ? -1 : pred(b, a) ? 1 : 0; + }; + }); + module.exports = comparator; + } + }); + + // sdk/contracts/node_modules/ramda/src/not.js + var require_not = __commonJS({ + "sdk/contracts/node_modules/ramda/src/not.js"(exports, module) { + var _curry1 = require_curry1(); + var not = /* @__PURE__ */ _curry1(function not2(a) { + return !a; + }); + module.exports = not; + } + }); + + // sdk/contracts/node_modules/ramda/src/complement.js + var require_complement = __commonJS({ + "sdk/contracts/node_modules/ramda/src/complement.js"(exports, module) { + var lift = require_lift(); + var not = require_not(); + var complement = /* @__PURE__ */ lift(not); + module.exports = complement; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_pipe.js + var require_pipe = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_pipe.js"(exports, module) { + function _pipe(f, g) { + return function() { + return g.call(this, f.apply(this, arguments)); + }; + } + module.exports = _pipe; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_checkForMethod.js + var require_checkForMethod = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_checkForMethod.js"(exports, module) { + var _isArray = require_isArray(); + function _checkForMethod(methodname, fn) { + return function() { + var length = arguments.length; + if (length === 0) { + return fn(); + } + var obj = arguments[length - 1]; + return _isArray(obj) || typeof obj[methodname] !== "function" ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1)); + }; + } + module.exports = _checkForMethod; + } + }); + + // sdk/contracts/node_modules/ramda/src/slice.js + var require_slice = __commonJS({ + "sdk/contracts/node_modules/ramda/src/slice.js"(exports, module) { + var _checkForMethod = require_checkForMethod(); + var _curry3 = require_curry3(); + var slice = /* @__PURE__ */ _curry3( + /* @__PURE__ */ _checkForMethod("slice", function slice2(fromIndex, toIndex, list) { + return Array.prototype.slice.call(list, fromIndex, toIndex); + }) + ); + module.exports = slice; + } + }); + + // sdk/contracts/node_modules/ramda/src/tail.js + var require_tail = __commonJS({ + "sdk/contracts/node_modules/ramda/src/tail.js"(exports, module) { + var _checkForMethod = require_checkForMethod(); + var _curry1 = require_curry1(); + var slice = require_slice(); + var tail = /* @__PURE__ */ _curry1( + /* @__PURE__ */ _checkForMethod( + "tail", + /* @__PURE__ */ slice(1, Infinity) + ) + ); + module.exports = tail; + } + }); + + // sdk/contracts/node_modules/ramda/src/pipe.js + var require_pipe2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pipe.js"(exports, module) { + var _arity = require_arity(); + var _pipe = require_pipe(); + var reduce = require_reduce2(); + var tail = require_tail(); + function pipe() { + if (arguments.length === 0) { + throw new Error("pipe requires at least one argument"); + } + return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments))); + } + module.exports = pipe; + } + }); + + // sdk/contracts/node_modules/ramda/src/reverse.js + var require_reverse = __commonJS({ + "sdk/contracts/node_modules/ramda/src/reverse.js"(exports, module) { + var _curry1 = require_curry1(); + var _isString = require_isString(); + var reverse = /* @__PURE__ */ _curry1(function reverse2(list) { + return _isString(list) ? list.split("").reverse().join("") : Array.prototype.slice.call(list, 0).reverse(); + }); + module.exports = reverse; + } + }); + + // sdk/contracts/node_modules/ramda/src/compose.js + var require_compose = __commonJS({ + "sdk/contracts/node_modules/ramda/src/compose.js"(exports, module) { + var pipe = require_pipe2(); + var reverse = require_reverse(); + function compose() { + if (arguments.length === 0) { + throw new Error("compose requires at least one argument"); + } + return pipe.apply(this, reverse(arguments)); + } + module.exports = compose; + } + }); + + // sdk/contracts/node_modules/ramda/src/head.js + var require_head = __commonJS({ + "sdk/contracts/node_modules/ramda/src/head.js"(exports, module) { + var nth = require_nth(); + var head = /* @__PURE__ */ nth(0); + module.exports = head; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_identity.js + var require_identity = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_identity.js"(exports, module) { + function _identity(x) { + return x; + } + module.exports = _identity; + } + }); + + // sdk/contracts/node_modules/ramda/src/identity.js + var require_identity2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/identity.js"(exports, module) { + var _curry1 = require_curry1(); + var _identity = require_identity(); + var identity = /* @__PURE__ */ _curry1(_identity); + module.exports = identity; + } + }); + + // sdk/contracts/node_modules/ramda/src/pipeWith.js + var require_pipeWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pipeWith.js"(exports, module) { + var _arity = require_arity(); + var _curry2 = require_curry2(); + var head = require_head(); + var _reduce = require_reduce(); + var tail = require_tail(); + var identity = require_identity2(); + var pipeWith = /* @__PURE__ */ _curry2(function pipeWith2(xf, list) { + if (list.length <= 0) { + return identity; + } + var headList = head(list); + var tailList = tail(list); + return _arity(headList.length, function() { + return _reduce(function(result, f) { + return xf.call(this, f, result); + }, headList.apply(this, arguments), tailList); + }); + }); + module.exports = pipeWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/composeWith.js + var require_composeWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/composeWith.js"(exports, module) { + var _curry2 = require_curry2(); + var pipeWith = require_pipeWith(); + var reverse = require_reverse(); + var composeWith = /* @__PURE__ */ _curry2(function composeWith2(xf, list) { + return pipeWith.apply(this, [xf, reverse(list)]); + }); + module.exports = composeWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_arrayFromIterator.js + var require_arrayFromIterator = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_arrayFromIterator.js"(exports, module) { + function _arrayFromIterator(iter) { + var list = []; + var next; + while (!(next = iter.next()).done) { + list.push(next.value); + } + return list; + } + module.exports = _arrayFromIterator; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_includesWith.js + var require_includesWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_includesWith.js"(exports, module) { + function _includesWith(pred, x, list) { + var idx = 0; + var len = list.length; + while (idx < len) { + if (pred(x, list[idx])) { + return true; + } + idx += 1; + } + return false; + } + module.exports = _includesWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_functionName.js + var require_functionName = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_functionName.js"(exports, module) { + function _functionName(f) { + var match = String(f).match(/^function (\w*)/); + return match == null ? "" : match[1]; + } + module.exports = _functionName; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_objectIs.js + var require_objectIs = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_objectIs.js"(exports, module) { + function _objectIs(a, b) { + if (a === b) { + return a !== 0 || 1 / a === 1 / b; + } else { + return a !== a && b !== b; + } + } + module.exports = typeof Object.is === "function" ? Object.is : _objectIs; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_equals.js + var require_equals = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_equals.js"(exports, module) { + var _arrayFromIterator = require_arrayFromIterator(); + var _includesWith = require_includesWith(); + var _functionName = require_functionName(); + var _has = require_has(); + var _objectIs = require_objectIs(); + var keys = require_keys(); + var type = require_type(); + function _uniqContentEquals(aIterator, bIterator, stackA, stackB) { + var a = _arrayFromIterator(aIterator); + var b = _arrayFromIterator(bIterator); + function eq(_a, _b) { + return _equals(_a, _b, stackA.slice(), stackB.slice()); + } + return !_includesWith(function(b2, aItem) { + return !_includesWith(eq, aItem, b2); + }, b, a); + } + function _equals(a, b, stackA, stackB) { + if (_objectIs(a, b)) { + return true; + } + var typeA = type(a); + if (typeA !== type(b)) { + return false; + } + if (typeof a["fantasy-land/equals"] === "function" || typeof b["fantasy-land/equals"] === "function") { + return typeof a["fantasy-land/equals"] === "function" && a["fantasy-land/equals"](b) && typeof b["fantasy-land/equals"] === "function" && b["fantasy-land/equals"](a); + } + if (typeof a.equals === "function" || typeof b.equals === "function") { + return typeof a.equals === "function" && a.equals(b) && typeof b.equals === "function" && b.equals(a); + } + switch (typeA) { + case "Arguments": + case "Array": + case "Object": + if (typeof a.constructor === "function" && _functionName(a.constructor) === "Promise") { + return a === b; + } + break; + case "Boolean": + case "Number": + case "String": + if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) { + return false; + } + break; + case "Date": + if (!_objectIs(a.valueOf(), b.valueOf())) { + return false; + } + break; + case "Error": + return a.name === b.name && a.message === b.message; + case "RegExp": + if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) { + return false; + } + break; + } + var idx = stackA.length - 1; + while (idx >= 0) { + if (stackA[idx] === a) { + return stackB[idx] === b; + } + idx -= 1; + } + switch (typeA) { + case "Map": + if (a.size !== b.size) { + return false; + } + return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b])); + case "Set": + if (a.size !== b.size) { + return false; + } + return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b])); + case "Arguments": + case "Array": + case "Object": + case "Boolean": + case "Number": + case "String": + case "Date": + case "Error": + case "RegExp": + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "ArrayBuffer": + break; + default: + return false; + } + var keysA = keys(a); + if (keysA.length !== keys(b).length) { + return false; + } + var extendedStackA = stackA.concat([a]); + var extendedStackB = stackB.concat([b]); + idx = keysA.length - 1; + while (idx >= 0) { + var key = keysA[idx]; + if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) { + return false; + } + idx -= 1; + } + return true; + } + module.exports = _equals; + } + }); + + // sdk/contracts/node_modules/ramda/src/equals.js + var require_equals2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/equals.js"(exports, module) { + var _curry2 = require_curry2(); + var _equals = require_equals(); + var equals = /* @__PURE__ */ _curry2(function equals2(a, b) { + return _equals(a, b, [], []); + }); + module.exports = equals; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_indexOf.js + var require_indexOf = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_indexOf.js"(exports, module) { + var equals = require_equals2(); + function _indexOf(list, a, idx) { + var inf, item; + if (typeof list.indexOf === "function") { + switch (typeof a) { + case "number": + if (a === 0) { + inf = 1 / a; + while (idx < list.length) { + item = list[idx]; + if (item === 0 && 1 / item === inf) { + return idx; + } + idx += 1; + } + return -1; + } else if (a !== a) { + while (idx < list.length) { + item = list[idx]; + if (typeof item === "number" && item !== item) { + return idx; + } + idx += 1; + } + return -1; + } + return list.indexOf(a, idx); + case "string": + case "boolean": + case "function": + case "undefined": + return list.indexOf(a, idx); + case "object": + if (a === null) { + return list.indexOf(a, idx); + } + } + } + while (idx < list.length) { + if (equals(list[idx], a)) { + return idx; + } + idx += 1; + } + return -1; + } + module.exports = _indexOf; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_includes.js + var require_includes = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_includes.js"(exports, module) { + var _indexOf = require_indexOf(); + function _includes(a, list) { + return _indexOf(list, a, 0) >= 0; + } + module.exports = _includes; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_quote.js + var require_quote = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_quote.js"(exports, module) { + function _quote(s) { + var escaped = s.replace(/\\/g, "\\\\").replace(/[\b]/g, "\\b").replace(/\f/g, "\\f").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/\v/g, "\\v").replace(/\0/g, "\\0"); + return '"' + escaped.replace(/"/g, '\\"') + '"'; + } + module.exports = _quote; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_toISOString.js + var require_toISOString = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_toISOString.js"(exports, module) { + var pad = function pad2(n) { + return (n < 10 ? "0" : "") + n; + }; + var _toISOString = typeof Date.prototype.toISOString === "function" ? function _toISOString2(d) { + return d.toISOString(); + } : function _toISOString2(d) { + return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate()) + "T" + pad(d.getUTCHours()) + ":" + pad(d.getUTCMinutes()) + ":" + pad(d.getUTCSeconds()) + "." + (d.getUTCMilliseconds() / 1e3).toFixed(3).slice(2, 5) + "Z"; + }; + module.exports = _toISOString; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_complement.js + var require_complement2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_complement.js"(exports, module) { + function _complement(f) { + return function() { + return !f.apply(this, arguments); + }; + } + module.exports = _complement; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_filter.js + var require_filter = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_filter.js"(exports, module) { + function _filter(fn, list) { + var idx = 0; + var len = list.length; + var result = []; + while (idx < len) { + if (fn(list[idx])) { + result[result.length] = list[idx]; + } + idx += 1; + } + return result; + } + module.exports = _filter; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isObject.js + var require_isObject = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isObject.js"(exports, module) { + function _isObject(x) { + return Object.prototype.toString.call(x) === "[object Object]"; + } + module.exports = _isObject; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xfilter.js + var require_xfilter = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xfilter.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XFilter = /* @__PURE__ */ function() { + function XFilter2(f, xf) { + this.xf = xf; + this.f = f; + } + XFilter2.prototype["@@transducer/init"] = _xfBase.init; + XFilter2.prototype["@@transducer/result"] = _xfBase.result; + XFilter2.prototype["@@transducer/step"] = function(result, input) { + return this.f(input) ? this.xf["@@transducer/step"](result, input) : result; + }; + return XFilter2; + }(); + var _xfilter = /* @__PURE__ */ _curry2(function _xfilter2(f, xf) { + return new XFilter(f, xf); + }); + module.exports = _xfilter; + } + }); + + // sdk/contracts/node_modules/ramda/src/filter.js + var require_filter2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/filter.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _filter = require_filter(); + var _isObject = require_isObject(); + var _reduce = require_reduce(); + var _xfilter = require_xfilter(); + var keys = require_keys(); + var filter = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["fantasy-land/filter", "filter"], _xfilter, function(pred, filterable) { + return _isObject(filterable) ? _reduce(function(acc, key) { + if (pred(filterable[key])) { + acc[key] = filterable[key]; + } + return acc; + }, {}, keys(filterable)) : _filter(pred, filterable); + }) + ); + module.exports = filter; + } + }); + + // sdk/contracts/node_modules/ramda/src/reject.js + var require_reject = __commonJS({ + "sdk/contracts/node_modules/ramda/src/reject.js"(exports, module) { + var _complement = require_complement2(); + var _curry2 = require_curry2(); + var filter = require_filter2(); + var reject = /* @__PURE__ */ _curry2(function reject2(pred, filterable) { + return filter(_complement(pred), filterable); + }); + module.exports = reject; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_toString.js + var require_toString = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_toString.js"(exports, module) { + var _includes = require_includes(); + var _map = require_map(); + var _quote = require_quote(); + var _toISOString = require_toISOString(); + var keys = require_keys(); + var reject = require_reject(); + function _toString(x, seen) { + var recur = function recur2(y) { + var xs = seen.concat([x]); + return _includes(y, xs) ? "" : _toString(y, xs); + }; + var mapPairs = function(obj, keys2) { + return _map(function(k) { + return _quote(k) + ": " + recur(obj[k]); + }, keys2.slice().sort()); + }; + switch (Object.prototype.toString.call(x)) { + case "[object Arguments]": + return "(function() { return arguments; }(" + _map(recur, x).join(", ") + "))"; + case "[object Array]": + return "[" + _map(recur, x).concat(mapPairs(x, reject(function(k) { + return /^\d+$/.test(k); + }, keys(x)))).join(", ") + "]"; + case "[object Boolean]": + return typeof x === "object" ? "new Boolean(" + recur(x.valueOf()) + ")" : x.toString(); + case "[object Date]": + return "new Date(" + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ")"; + case "[object Null]": + return "null"; + case "[object Number]": + return typeof x === "object" ? "new Number(" + recur(x.valueOf()) + ")" : 1 / x === -Infinity ? "-0" : x.toString(10); + case "[object String]": + return typeof x === "object" ? "new String(" + recur(x.valueOf()) + ")" : _quote(x); + case "[object Undefined]": + return "undefined"; + default: + if (typeof x.toString === "function") { + var repr = x.toString(); + if (repr !== "[object Object]") { + return repr; + } + } + return "{" + mapPairs(x, keys(x)).join(", ") + "}"; + } + } + module.exports = _toString; + } + }); + + // sdk/contracts/node_modules/ramda/src/toString.js + var require_toString2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/toString.js"(exports, module) { + var _curry1 = require_curry1(); + var _toString = require_toString(); + var toString = /* @__PURE__ */ _curry1(function toString2(val) { + return _toString(val, []); + }); + module.exports = toString; + } + }); + + // sdk/contracts/node_modules/ramda/src/concat.js + var require_concat2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/concat.js"(exports, module) { + var _curry2 = require_curry2(); + var _isArray = require_isArray(); + var _isFunction = require_isFunction(); + var _isString = require_isString(); + var toString = require_toString2(); + var concat = /* @__PURE__ */ _curry2(function concat2(a, b) { + if (_isArray(a)) { + if (_isArray(b)) { + return a.concat(b); + } + throw new TypeError(toString(b) + " is not an array"); + } + if (_isString(a)) { + if (_isString(b)) { + return a + b; + } + throw new TypeError(toString(b) + " is not a string"); + } + if (a != null && _isFunction(a["fantasy-land/concat"])) { + return a["fantasy-land/concat"](b); + } + if (a != null && _isFunction(a.concat)) { + return a.concat(b); + } + throw new TypeError(toString(a) + ' does not have a method named "concat" or "fantasy-land/concat"'); + }); + module.exports = concat; + } + }); + + // sdk/contracts/node_modules/ramda/src/cond.js + var require_cond = __commonJS({ + "sdk/contracts/node_modules/ramda/src/cond.js"(exports, module) { + var _arity = require_arity(); + var _curry1 = require_curry1(); + var map = require_map2(); + var max = require_max(); + var reduce = require_reduce2(); + var cond = /* @__PURE__ */ _curry1(function cond2(pairs) { + var arity = reduce(max, 0, map(function(pair) { + return pair[0].length; + }, pairs)); + return _arity(arity, function() { + var idx = 0; + while (idx < pairs.length) { + if (pairs[idx][0].apply(this, arguments)) { + return pairs[idx][1].apply(this, arguments); + } + idx += 1; + } + }); + }); + module.exports = cond; + } + }); + + // sdk/contracts/node_modules/ramda/src/curry.js + var require_curry = __commonJS({ + "sdk/contracts/node_modules/ramda/src/curry.js"(exports, module) { + var _curry1 = require_curry1(); + var curryN = require_curryN2(); + var curry = /* @__PURE__ */ _curry1(function curry2(fn) { + return curryN(fn.length, fn); + }); + module.exports = curry; + } + }); + + // sdk/contracts/node_modules/ramda/src/constructN.js + var require_constructN = __commonJS({ + "sdk/contracts/node_modules/ramda/src/constructN.js"(exports, module) { + var _curry2 = require_curry2(); + var curry = require_curry(); + var nAry = require_nAry(); + var constructN = /* @__PURE__ */ _curry2(function constructN2(n, Fn) { + if (n > 10) { + throw new Error("Constructor with greater than ten arguments"); + } + if (n === 0) { + return function() { + return new Fn(); + }; + } + return curry(nAry(n, function($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) { + switch (arguments.length) { + case 1: + return new Fn($0); + case 2: + return new Fn($0, $1); + case 3: + return new Fn($0, $1, $2); + case 4: + return new Fn($0, $1, $2, $3); + case 5: + return new Fn($0, $1, $2, $3, $4); + case 6: + return new Fn($0, $1, $2, $3, $4, $5); + case 7: + return new Fn($0, $1, $2, $3, $4, $5, $6); + case 8: + return new Fn($0, $1, $2, $3, $4, $5, $6, $7); + case 9: + return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8); + case 10: + return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9); + } + })); + }); + module.exports = constructN; + } + }); + + // sdk/contracts/node_modules/ramda/src/construct.js + var require_construct = __commonJS({ + "sdk/contracts/node_modules/ramda/src/construct.js"(exports, module) { + var _curry1 = require_curry1(); + var constructN = require_constructN(); + var construct = /* @__PURE__ */ _curry1(function construct2(Fn) { + return constructN(Fn.length, Fn); + }); + module.exports = construct; + } + }); + + // sdk/contracts/node_modules/ramda/src/converge.js + var require_converge = __commonJS({ + "sdk/contracts/node_modules/ramda/src/converge.js"(exports, module) { + var _curry2 = require_curry2(); + var _map = require_map(); + var curryN = require_curryN2(); + var max = require_max(); + var pluck = require_pluck(); + var reduce = require_reduce2(); + var converge = /* @__PURE__ */ _curry2(function converge2(after, fns) { + return curryN(reduce(max, 0, pluck("length", fns)), function() { + var args = arguments; + var context = this; + return after.apply(context, _map(function(fn) { + return fn.apply(context, args); + }, fns)); + }); + }); + module.exports = converge; + } + }); + + // sdk/contracts/node_modules/ramda/src/count.js + var require_count = __commonJS({ + "sdk/contracts/node_modules/ramda/src/count.js"(exports, module) { + var _reduce = require_reduce(); + var curry = require_curry(); + var count = /* @__PURE__ */ curry(function(pred, list) { + return _reduce(function(a, e) { + return pred(e) ? a + 1 : a; + }, 0, list); + }); + module.exports = count; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xreduceBy.js + var require_xreduceBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xreduceBy.js"(exports, module) { + var _curryN = require_curryN(); + var _has = require_has(); + var _xfBase = require_xfBase(); + var XReduceBy = /* @__PURE__ */ function() { + function XReduceBy2(valueFn, valueAcc, keyFn, xf) { + this.valueFn = valueFn; + this.valueAcc = valueAcc; + this.keyFn = keyFn; + this.xf = xf; + this.inputs = {}; + } + XReduceBy2.prototype["@@transducer/init"] = _xfBase.init; + XReduceBy2.prototype["@@transducer/result"] = function(result) { + var key; + for (key in this.inputs) { + if (_has(key, this.inputs)) { + result = this.xf["@@transducer/step"](result, this.inputs[key]); + if (result["@@transducer/reduced"]) { + result = result["@@transducer/value"]; + break; + } + } + } + this.inputs = null; + return this.xf["@@transducer/result"](result); + }; + XReduceBy2.prototype["@@transducer/step"] = function(result, input) { + var key = this.keyFn(input); + this.inputs[key] = this.inputs[key] || [key, this.valueAcc]; + this.inputs[key][1] = this.valueFn(this.inputs[key][1], input); + return result; + }; + return XReduceBy2; + }(); + var _xreduceBy = /* @__PURE__ */ _curryN(4, [], function _xreduceBy2(valueFn, valueAcc, keyFn, xf) { + return new XReduceBy(valueFn, valueAcc, keyFn, xf); + }); + module.exports = _xreduceBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/reduceBy.js + var require_reduceBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/reduceBy.js"(exports, module) { + var _clone = require_clone(); + var _curryN = require_curryN(); + var _dispatchable = require_dispatchable(); + var _has = require_has(); + var _reduce = require_reduce(); + var _reduced = require_reduced(); + var _xreduceBy = require_xreduceBy(); + var reduceBy = /* @__PURE__ */ _curryN( + 4, + [], + /* @__PURE__ */ _dispatchable([], _xreduceBy, function reduceBy2(valueFn, valueAcc, keyFn, list) { + return _reduce(function(acc, elt) { + var key = keyFn(elt); + var value = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt); + if (value && value["@@transducer/reduced"]) { + return _reduced(acc); + } + acc[key] = value; + return acc; + }, {}, list); + }) + ); + module.exports = reduceBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/countBy.js + var require_countBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/countBy.js"(exports, module) { + var reduceBy = require_reduceBy(); + var countBy = /* @__PURE__ */ reduceBy(function(acc, elem) { + return acc + 1; + }, 0); + module.exports = countBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/dec.js + var require_dec = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dec.js"(exports, module) { + var add = require_add(); + var dec = /* @__PURE__ */ add(-1); + module.exports = dec; + } + }); + + // sdk/contracts/node_modules/ramda/src/defaultTo.js + var require_defaultTo = __commonJS({ + "sdk/contracts/node_modules/ramda/src/defaultTo.js"(exports, module) { + var _curry2 = require_curry2(); + var defaultTo = /* @__PURE__ */ _curry2(function defaultTo2(d, v) { + return v == null || v !== v ? d : v; + }); + module.exports = defaultTo; + } + }); + + // sdk/contracts/node_modules/ramda/src/descend.js + var require_descend = __commonJS({ + "sdk/contracts/node_modules/ramda/src/descend.js"(exports, module) { + var _curry3 = require_curry3(); + var descend = /* @__PURE__ */ _curry3(function descend2(fn, a, b) { + var aa = fn(a); + var bb = fn(b); + return aa > bb ? -1 : aa < bb ? 1 : 0; + }); + module.exports = descend; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_Set.js + var require_Set = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_Set.js"(exports, module) { + var _includes = require_includes(); + var _Set = /* @__PURE__ */ function() { + function _Set2() { + this._nativeSet = typeof Set === "function" ? /* @__PURE__ */ new Set() : null; + this._items = {}; + } + _Set2.prototype.add = function(item) { + return !hasOrAdd(item, true, this); + }; + _Set2.prototype.has = function(item) { + return hasOrAdd(item, false, this); + }; + return _Set2; + }(); + function hasOrAdd(item, shouldAdd, set) { + var type = typeof item; + var prevSize, newSize; + switch (type) { + case "string": + case "number": + if (item === 0 && 1 / item === -Infinity) { + if (set._items["-0"]) { + return true; + } else { + if (shouldAdd) { + set._items["-0"] = true; + } + return false; + } + } + if (set._nativeSet !== null) { + if (shouldAdd) { + prevSize = set._nativeSet.size; + set._nativeSet.add(item); + newSize = set._nativeSet.size; + return newSize === prevSize; + } else { + return set._nativeSet.has(item); + } + } else { + if (!(type in set._items)) { + if (shouldAdd) { + set._items[type] = {}; + set._items[type][item] = true; + } + return false; + } else if (item in set._items[type]) { + return true; + } else { + if (shouldAdd) { + set._items[type][item] = true; + } + return false; + } + } + case "boolean": + if (type in set._items) { + var bIdx = item ? 1 : 0; + if (set._items[type][bIdx]) { + return true; + } else { + if (shouldAdd) { + set._items[type][bIdx] = true; + } + return false; + } + } else { + if (shouldAdd) { + set._items[type] = item ? [false, true] : [true, false]; + } + return false; + } + case "function": + if (set._nativeSet !== null) { + if (shouldAdd) { + prevSize = set._nativeSet.size; + set._nativeSet.add(item); + newSize = set._nativeSet.size; + return newSize === prevSize; + } else { + return set._nativeSet.has(item); + } + } else { + if (!(type in set._items)) { + if (shouldAdd) { + set._items[type] = [item]; + } + return false; + } + if (!_includes(item, set._items[type])) { + if (shouldAdd) { + set._items[type].push(item); + } + return false; + } + return true; + } + case "undefined": + if (set._items[type]) { + return true; + } else { + if (shouldAdd) { + set._items[type] = true; + } + return false; + } + case "object": + if (item === null) { + if (!set._items["null"]) { + if (shouldAdd) { + set._items["null"] = true; + } + return false; + } + return true; + } + default: + type = Object.prototype.toString.call(item); + if (!(type in set._items)) { + if (shouldAdd) { + set._items[type] = [item]; + } + return false; + } + if (!_includes(item, set._items[type])) { + if (shouldAdd) { + set._items[type].push(item); + } + return false; + } + return true; + } + } + module.exports = _Set; + } + }); + + // sdk/contracts/node_modules/ramda/src/difference.js + var require_difference = __commonJS({ + "sdk/contracts/node_modules/ramda/src/difference.js"(exports, module) { + var _curry2 = require_curry2(); + var _Set = require_Set(); + var difference = /* @__PURE__ */ _curry2(function difference2(first, second) { + var out = []; + var idx = 0; + var firstLen = first.length; + var secondLen = second.length; + var toFilterOut = new _Set(); + for (var i = 0; i < secondLen; i += 1) { + toFilterOut.add(second[i]); + } + while (idx < firstLen) { + if (toFilterOut.add(first[idx])) { + out[out.length] = first[idx]; + } + idx += 1; + } + return out; + }); + module.exports = difference; + } + }); + + // sdk/contracts/node_modules/ramda/src/differenceWith.js + var require_differenceWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/differenceWith.js"(exports, module) { + var _includesWith = require_includesWith(); + var _curry3 = require_curry3(); + var differenceWith = /* @__PURE__ */ _curry3(function differenceWith2(pred, first, second) { + var out = []; + var idx = 0; + var firstLen = first.length; + while (idx < firstLen) { + if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) { + out.push(first[idx]); + } + idx += 1; + } + return out; + }); + module.exports = differenceWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/remove.js + var require_remove = __commonJS({ + "sdk/contracts/node_modules/ramda/src/remove.js"(exports, module) { + var _curry3 = require_curry3(); + var remove = /* @__PURE__ */ _curry3(function remove2(start, count, list) { + var result = Array.prototype.slice.call(list, 0); + result.splice(start, count); + return result; + }); + module.exports = remove; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_dissoc.js + var require_dissoc = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_dissoc.js"(exports, module) { + var _isInteger = require_isInteger(); + var _isArray = require_isArray(); + var remove = require_remove(); + function _dissoc(prop, obj) { + if (obj == null) { + return obj; + } + if (_isInteger(prop) && _isArray(obj)) { + return remove(prop, 1, obj); + } + var result = {}; + for (var p in obj) { + result[p] = obj[p]; + } + delete result[prop]; + return result; + } + module.exports = _dissoc; + } + }); + + // sdk/contracts/node_modules/ramda/src/dissocPath.js + var require_dissocPath = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dissocPath.js"(exports, module) { + var _curry2 = require_curry2(); + var _dissoc = require_dissoc(); + var _isInteger = require_isInteger(); + var _isArray = require_isArray(); + var assoc = require_assoc2(); + function _shallowCloneObject(prop, obj) { + if (_isInteger(prop) && _isArray(obj)) { + return [].concat(obj); + } + var result = {}; + for (var p in obj) { + result[p] = obj[p]; + } + return result; + } + var dissocPath = /* @__PURE__ */ _curry2(function dissocPath2(path, obj) { + if (obj == null) { + return obj; + } + switch (path.length) { + case 0: + return obj; + case 1: + return _dissoc(path[0], obj); + default: + var head = path[0]; + var tail = Array.prototype.slice.call(path, 1); + if (obj[head] == null) { + return _shallowCloneObject(head, obj); + } else { + return assoc(head, dissocPath2(tail, obj[head]), obj); + } + } + }); + module.exports = dissocPath; + } + }); + + // sdk/contracts/node_modules/ramda/src/dissoc.js + var require_dissoc2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dissoc.js"(exports, module) { + var _curry2 = require_curry2(); + var dissocPath = require_dissocPath(); + var dissoc = /* @__PURE__ */ _curry2(function dissoc2(prop, obj) { + return dissocPath([prop], obj); + }); + module.exports = dissoc; + } + }); + + // sdk/contracts/node_modules/ramda/src/divide.js + var require_divide = __commonJS({ + "sdk/contracts/node_modules/ramda/src/divide.js"(exports, module) { + var _curry2 = require_curry2(); + var divide = /* @__PURE__ */ _curry2(function divide2(a, b) { + return a / b; + }); + module.exports = divide; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xdrop.js + var require_xdrop = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xdrop.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XDrop = /* @__PURE__ */ function() { + function XDrop2(n, xf) { + this.xf = xf; + this.n = n; + } + XDrop2.prototype["@@transducer/init"] = _xfBase.init; + XDrop2.prototype["@@transducer/result"] = _xfBase.result; + XDrop2.prototype["@@transducer/step"] = function(result, input) { + if (this.n > 0) { + this.n -= 1; + return result; + } + return this.xf["@@transducer/step"](result, input); + }; + return XDrop2; + }(); + var _xdrop = /* @__PURE__ */ _curry2(function _xdrop2(n, xf) { + return new XDrop(n, xf); + }); + module.exports = _xdrop; + } + }); + + // sdk/contracts/node_modules/ramda/src/drop.js + var require_drop = __commonJS({ + "sdk/contracts/node_modules/ramda/src/drop.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xdrop = require_xdrop(); + var slice = require_slice(); + var drop = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["drop"], _xdrop, function drop2(n, xs) { + return slice(Math.max(0, n), Infinity, xs); + }) + ); + module.exports = drop; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xtake.js + var require_xtake = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xtake.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduced = require_reduced(); + var _xfBase = require_xfBase(); + var XTake = /* @__PURE__ */ function() { + function XTake2(n, xf) { + this.xf = xf; + this.n = n; + this.i = 0; + } + XTake2.prototype["@@transducer/init"] = _xfBase.init; + XTake2.prototype["@@transducer/result"] = _xfBase.result; + XTake2.prototype["@@transducer/step"] = function(result, input) { + this.i += 1; + var ret = this.n === 0 ? result : this.xf["@@transducer/step"](result, input); + return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret; + }; + return XTake2; + }(); + var _xtake = /* @__PURE__ */ _curry2(function _xtake2(n, xf) { + return new XTake(n, xf); + }); + module.exports = _xtake; + } + }); + + // sdk/contracts/node_modules/ramda/src/take.js + var require_take = __commonJS({ + "sdk/contracts/node_modules/ramda/src/take.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xtake = require_xtake(); + var slice = require_slice(); + var take = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["take"], _xtake, function take2(n, xs) { + return slice(0, n < 0 ? Infinity : n, xs); + }) + ); + module.exports = take; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_dropLast.js + var require_dropLast = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_dropLast.js"(exports, module) { + var take = require_take(); + function dropLast(n, xs) { + return take(n < xs.length ? xs.length - n : 0, xs); + } + module.exports = dropLast; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xdropLast.js + var require_xdropLast = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xdropLast.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XDropLast = /* @__PURE__ */ function() { + function XDropLast2(n, xf) { + this.xf = xf; + this.pos = 0; + this.full = false; + this.acc = new Array(n); + } + XDropLast2.prototype["@@transducer/init"] = _xfBase.init; + XDropLast2.prototype["@@transducer/result"] = function(result) { + this.acc = null; + return this.xf["@@transducer/result"](result); + }; + XDropLast2.prototype["@@transducer/step"] = function(result, input) { + if (this.full) { + result = this.xf["@@transducer/step"](result, this.acc[this.pos]); + } + this.store(input); + return result; + }; + XDropLast2.prototype.store = function(input) { + this.acc[this.pos] = input; + this.pos += 1; + if (this.pos === this.acc.length) { + this.pos = 0; + this.full = true; + } + }; + return XDropLast2; + }(); + var _xdropLast = /* @__PURE__ */ _curry2(function _xdropLast2(n, xf) { + return new XDropLast(n, xf); + }); + module.exports = _xdropLast; + } + }); + + // sdk/contracts/node_modules/ramda/src/dropLast.js + var require_dropLast2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dropLast.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _dropLast = require_dropLast(); + var _xdropLast = require_xdropLast(); + var dropLast = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xdropLast, _dropLast) + ); + module.exports = dropLast; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_dropLastWhile.js + var require_dropLastWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_dropLastWhile.js"(exports, module) { + var slice = require_slice(); + function dropLastWhile(pred, xs) { + var idx = xs.length - 1; + while (idx >= 0 && pred(xs[idx])) { + idx -= 1; + } + return slice(0, idx + 1, xs); + } + module.exports = dropLastWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xdropLastWhile.js + var require_xdropLastWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xdropLastWhile.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduce = require_reduce(); + var _xfBase = require_xfBase(); + var XDropLastWhile = /* @__PURE__ */ function() { + function XDropLastWhile2(fn, xf) { + this.f = fn; + this.retained = []; + this.xf = xf; + } + XDropLastWhile2.prototype["@@transducer/init"] = _xfBase.init; + XDropLastWhile2.prototype["@@transducer/result"] = function(result) { + this.retained = null; + return this.xf["@@transducer/result"](result); + }; + XDropLastWhile2.prototype["@@transducer/step"] = function(result, input) { + return this.f(input) ? this.retain(result, input) : this.flush(result, input); + }; + XDropLastWhile2.prototype.flush = function(result, input) { + result = _reduce(this.xf["@@transducer/step"], result, this.retained); + this.retained = []; + return this.xf["@@transducer/step"](result, input); + }; + XDropLastWhile2.prototype.retain = function(result, input) { + this.retained.push(input); + return result; + }; + return XDropLastWhile2; + }(); + var _xdropLastWhile = /* @__PURE__ */ _curry2(function _xdropLastWhile2(fn, xf) { + return new XDropLastWhile(fn, xf); + }); + module.exports = _xdropLastWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/dropLastWhile.js + var require_dropLastWhile2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dropLastWhile.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _dropLastWhile = require_dropLastWhile(); + var _xdropLastWhile = require_xdropLastWhile(); + var dropLastWhile = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xdropLastWhile, _dropLastWhile) + ); + module.exports = dropLastWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xdropRepeatsWith.js + var require_xdropRepeatsWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xdropRepeatsWith.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XDropRepeatsWith = /* @__PURE__ */ function() { + function XDropRepeatsWith2(pred, xf) { + this.xf = xf; + this.pred = pred; + this.lastValue = void 0; + this.seenFirstValue = false; + } + XDropRepeatsWith2.prototype["@@transducer/init"] = _xfBase.init; + XDropRepeatsWith2.prototype["@@transducer/result"] = _xfBase.result; + XDropRepeatsWith2.prototype["@@transducer/step"] = function(result, input) { + var sameAsLast = false; + if (!this.seenFirstValue) { + this.seenFirstValue = true; + } else if (this.pred(this.lastValue, input)) { + sameAsLast = true; + } + this.lastValue = input; + return sameAsLast ? result : this.xf["@@transducer/step"](result, input); + }; + return XDropRepeatsWith2; + }(); + var _xdropRepeatsWith = /* @__PURE__ */ _curry2(function _xdropRepeatsWith2(pred, xf) { + return new XDropRepeatsWith(pred, xf); + }); + module.exports = _xdropRepeatsWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/last.js + var require_last = __commonJS({ + "sdk/contracts/node_modules/ramda/src/last.js"(exports, module) { + var nth = require_nth(); + var last = /* @__PURE__ */ nth(-1); + module.exports = last; + } + }); + + // sdk/contracts/node_modules/ramda/src/dropRepeatsWith.js + var require_dropRepeatsWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dropRepeatsWith.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xdropRepeatsWith = require_xdropRepeatsWith(); + var last = require_last(); + var dropRepeatsWith = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xdropRepeatsWith, function dropRepeatsWith2(pred, list) { + var result = []; + var idx = 1; + var len = list.length; + if (len !== 0) { + result[0] = list[0]; + while (idx < len) { + if (!pred(last(result), list[idx])) { + result[result.length] = list[idx]; + } + idx += 1; + } + } + return result; + }) + ); + module.exports = dropRepeatsWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/dropRepeats.js + var require_dropRepeats = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dropRepeats.js"(exports, module) { + var _curry1 = require_curry1(); + var _dispatchable = require_dispatchable(); + var _xdropRepeatsWith = require_xdropRepeatsWith(); + var dropRepeatsWith = require_dropRepeatsWith(); + var equals = require_equals2(); + var dropRepeats = /* @__PURE__ */ _curry1( + /* @__PURE__ */ _dispatchable( + [], + /* @__PURE__ */ _xdropRepeatsWith(equals), + /* @__PURE__ */ dropRepeatsWith(equals) + ) + ); + module.exports = dropRepeats; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xdropWhile.js + var require_xdropWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xdropWhile.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XDropWhile = /* @__PURE__ */ function() { + function XDropWhile2(f, xf) { + this.xf = xf; + this.f = f; + } + XDropWhile2.prototype["@@transducer/init"] = _xfBase.init; + XDropWhile2.prototype["@@transducer/result"] = _xfBase.result; + XDropWhile2.prototype["@@transducer/step"] = function(result, input) { + if (this.f) { + if (this.f(input)) { + return result; + } + this.f = null; + } + return this.xf["@@transducer/step"](result, input); + }; + return XDropWhile2; + }(); + var _xdropWhile = /* @__PURE__ */ _curry2(function _xdropWhile2(f, xf) { + return new XDropWhile(f, xf); + }); + module.exports = _xdropWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/dropWhile.js + var require_dropWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/dropWhile.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xdropWhile = require_xdropWhile(); + var slice = require_slice(); + var dropWhile = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["dropWhile"], _xdropWhile, function dropWhile2(pred, xs) { + var idx = 0; + var len = xs.length; + while (idx < len && pred(xs[idx])) { + idx += 1; + } + return slice(idx, Infinity, xs); + }) + ); + module.exports = dropWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/or.js + var require_or = __commonJS({ + "sdk/contracts/node_modules/ramda/src/or.js"(exports, module) { + var _curry2 = require_curry2(); + var or = /* @__PURE__ */ _curry2(function or2(a, b) { + return a || b; + }); + module.exports = or; + } + }); + + // sdk/contracts/node_modules/ramda/src/either.js + var require_either = __commonJS({ + "sdk/contracts/node_modules/ramda/src/either.js"(exports, module) { + var _curry2 = require_curry2(); + var _isFunction = require_isFunction(); + var lift = require_lift(); + var or = require_or(); + var either = /* @__PURE__ */ _curry2(function either2(f, g) { + return _isFunction(f) ? function _either() { + return f.apply(this, arguments) || g.apply(this, arguments); + } : lift(or)(f, g); + }); + module.exports = either; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isTypedArray.js + var require_isTypedArray = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isTypedArray.js"(exports, module) { + function _isTypedArray(val) { + var type = Object.prototype.toString.call(val); + return type === "[object Uint8ClampedArray]" || type === "[object Int8Array]" || type === "[object Uint8Array]" || type === "[object Int16Array]" || type === "[object Uint16Array]" || type === "[object Int32Array]" || type === "[object Uint32Array]" || type === "[object Float32Array]" || type === "[object Float64Array]" || type === "[object BigInt64Array]" || type === "[object BigUint64Array]"; + } + module.exports = _isTypedArray; + } + }); + + // sdk/contracts/node_modules/ramda/src/empty.js + var require_empty = __commonJS({ + "sdk/contracts/node_modules/ramda/src/empty.js"(exports, module) { + var _curry1 = require_curry1(); + var _isArguments = require_isArguments(); + var _isArray = require_isArray(); + var _isObject = require_isObject(); + var _isString = require_isString(); + var _isTypedArray = require_isTypedArray(); + var empty = /* @__PURE__ */ _curry1(function empty2(x) { + return x != null && typeof x["fantasy-land/empty"] === "function" ? x["fantasy-land/empty"]() : x != null && x.constructor != null && typeof x.constructor["fantasy-land/empty"] === "function" ? x.constructor["fantasy-land/empty"]() : x != null && typeof x.empty === "function" ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === "function" ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? "" : _isObject(x) ? {} : _isArguments(x) ? function() { + return arguments; + }() : _isTypedArray(x) ? x.constructor.from("") : void 0; + }); + module.exports = empty; + } + }); + + // sdk/contracts/node_modules/ramda/src/takeLast.js + var require_takeLast = __commonJS({ + "sdk/contracts/node_modules/ramda/src/takeLast.js"(exports, module) { + var _curry2 = require_curry2(); + var drop = require_drop(); + var takeLast = /* @__PURE__ */ _curry2(function takeLast2(n, xs) { + return drop(n >= 0 ? xs.length - n : 0, xs); + }); + module.exports = takeLast; + } + }); + + // sdk/contracts/node_modules/ramda/src/endsWith.js + var require_endsWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/endsWith.js"(exports, module) { + var _curry2 = require_curry2(); + var equals = require_equals2(); + var takeLast = require_takeLast(); + var endsWith = /* @__PURE__ */ _curry2(function(suffix, list) { + return equals(takeLast(suffix.length, list), suffix); + }); + module.exports = endsWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/eqBy.js + var require_eqBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/eqBy.js"(exports, module) { + var _curry3 = require_curry3(); + var equals = require_equals2(); + var eqBy = /* @__PURE__ */ _curry3(function eqBy2(f, x, y) { + return equals(f(x), f(y)); + }); + module.exports = eqBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/eqProps.js + var require_eqProps = __commonJS({ + "sdk/contracts/node_modules/ramda/src/eqProps.js"(exports, module) { + var _curry3 = require_curry3(); + var equals = require_equals2(); + var eqProps = /* @__PURE__ */ _curry3(function eqProps2(prop, obj1, obj2) { + return equals(obj1[prop], obj2[prop]); + }); + module.exports = eqProps; + } + }); + + // sdk/contracts/node_modules/ramda/src/evolve.js + var require_evolve = __commonJS({ + "sdk/contracts/node_modules/ramda/src/evolve.js"(exports, module) { + var _curry2 = require_curry2(); + var _isArray = require_isArray(); + var _isObject = require_isObject(); + var evolve = /* @__PURE__ */ _curry2(function evolve2(transformations, object) { + if (!_isObject(object) && !_isArray(object)) { + return object; + } + var result = object instanceof Array ? [] : {}; + var transformation, key, type; + for (key in object) { + transformation = transformations[key]; + type = typeof transformation; + result[key] = type === "function" ? transformation(object[key]) : transformation && type === "object" ? evolve2(transformation, object[key]) : object[key]; + } + return result; + }); + module.exports = evolve; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xfind.js + var require_xfind = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xfind.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduced = require_reduced(); + var _xfBase = require_xfBase(); + var XFind = /* @__PURE__ */ function() { + function XFind2(f, xf) { + this.xf = xf; + this.f = f; + this.found = false; + } + XFind2.prototype["@@transducer/init"] = _xfBase.init; + XFind2.prototype["@@transducer/result"] = function(result) { + if (!this.found) { + result = this.xf["@@transducer/step"](result, void 0); + } + return this.xf["@@transducer/result"](result); + }; + XFind2.prototype["@@transducer/step"] = function(result, input) { + if (this.f(input)) { + this.found = true; + result = _reduced(this.xf["@@transducer/step"](result, input)); + } + return result; + }; + return XFind2; + }(); + var _xfind = /* @__PURE__ */ _curry2(function _xfind2(f, xf) { + return new XFind(f, xf); + }); + module.exports = _xfind; + } + }); + + // sdk/contracts/node_modules/ramda/src/find.js + var require_find = __commonJS({ + "sdk/contracts/node_modules/ramda/src/find.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xfind = require_xfind(); + var find = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["find"], _xfind, function find2(fn, list) { + var idx = 0; + var len = list.length; + while (idx < len) { + if (fn(list[idx])) { + return list[idx]; + } + idx += 1; + } + }) + ); + module.exports = find; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xfindIndex.js + var require_xfindIndex = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xfindIndex.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduced = require_reduced(); + var _xfBase = require_xfBase(); + var XFindIndex = /* @__PURE__ */ function() { + function XFindIndex2(f, xf) { + this.xf = xf; + this.f = f; + this.idx = -1; + this.found = false; + } + XFindIndex2.prototype["@@transducer/init"] = _xfBase.init; + XFindIndex2.prototype["@@transducer/result"] = function(result) { + if (!this.found) { + result = this.xf["@@transducer/step"](result, -1); + } + return this.xf["@@transducer/result"](result); + }; + XFindIndex2.prototype["@@transducer/step"] = function(result, input) { + this.idx += 1; + if (this.f(input)) { + this.found = true; + result = _reduced(this.xf["@@transducer/step"](result, this.idx)); + } + return result; + }; + return XFindIndex2; + }(); + var _xfindIndex = /* @__PURE__ */ _curry2(function _xfindIndex2(f, xf) { + return new XFindIndex(f, xf); + }); + module.exports = _xfindIndex; + } + }); + + // sdk/contracts/node_modules/ramda/src/findIndex.js + var require_findIndex = __commonJS({ + "sdk/contracts/node_modules/ramda/src/findIndex.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xfindIndex = require_xfindIndex(); + var findIndex = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xfindIndex, function findIndex2(fn, list) { + var idx = 0; + var len = list.length; + while (idx < len) { + if (fn(list[idx])) { + return idx; + } + idx += 1; + } + return -1; + }) + ); + module.exports = findIndex; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xfindLast.js + var require_xfindLast = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xfindLast.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XFindLast = /* @__PURE__ */ function() { + function XFindLast2(f, xf) { + this.xf = xf; + this.f = f; + } + XFindLast2.prototype["@@transducer/init"] = _xfBase.init; + XFindLast2.prototype["@@transducer/result"] = function(result) { + return this.xf["@@transducer/result"](this.xf["@@transducer/step"](result, this.last)); + }; + XFindLast2.prototype["@@transducer/step"] = function(result, input) { + if (this.f(input)) { + this.last = input; + } + return result; + }; + return XFindLast2; + }(); + var _xfindLast = /* @__PURE__ */ _curry2(function _xfindLast2(f, xf) { + return new XFindLast(f, xf); + }); + module.exports = _xfindLast; + } + }); + + // sdk/contracts/node_modules/ramda/src/findLast.js + var require_findLast = __commonJS({ + "sdk/contracts/node_modules/ramda/src/findLast.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xfindLast = require_xfindLast(); + var findLast = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xfindLast, function findLast2(fn, list) { + var idx = list.length - 1; + while (idx >= 0) { + if (fn(list[idx])) { + return list[idx]; + } + idx -= 1; + } + }) + ); + module.exports = findLast; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xfindLastIndex.js + var require_xfindLastIndex = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xfindLastIndex.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XFindLastIndex = /* @__PURE__ */ function() { + function XFindLastIndex2(f, xf) { + this.xf = xf; + this.f = f; + this.idx = -1; + this.lastIdx = -1; + } + XFindLastIndex2.prototype["@@transducer/init"] = _xfBase.init; + XFindLastIndex2.prototype["@@transducer/result"] = function(result) { + return this.xf["@@transducer/result"](this.xf["@@transducer/step"](result, this.lastIdx)); + }; + XFindLastIndex2.prototype["@@transducer/step"] = function(result, input) { + this.idx += 1; + if (this.f(input)) { + this.lastIdx = this.idx; + } + return result; + }; + return XFindLastIndex2; + }(); + var _xfindLastIndex = /* @__PURE__ */ _curry2(function _xfindLastIndex2(f, xf) { + return new XFindLastIndex(f, xf); + }); + module.exports = _xfindLastIndex; + } + }); + + // sdk/contracts/node_modules/ramda/src/findLastIndex.js + var require_findLastIndex = __commonJS({ + "sdk/contracts/node_modules/ramda/src/findLastIndex.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xfindLastIndex = require_xfindLastIndex(); + var findLastIndex = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xfindLastIndex, function findLastIndex2(fn, list) { + var idx = list.length - 1; + while (idx >= 0) { + if (fn(list[idx])) { + return idx; + } + idx -= 1; + } + return -1; + }) + ); + module.exports = findLastIndex; + } + }); + + // sdk/contracts/node_modules/ramda/src/flatten.js + var require_flatten = __commonJS({ + "sdk/contracts/node_modules/ramda/src/flatten.js"(exports, module) { + var _curry1 = require_curry1(); + var _makeFlat = require_makeFlat(); + var flatten = /* @__PURE__ */ _curry1( + /* @__PURE__ */ _makeFlat(true) + ); + module.exports = flatten; + } + }); + + // sdk/contracts/node_modules/ramda/src/flip.js + var require_flip = __commonJS({ + "sdk/contracts/node_modules/ramda/src/flip.js"(exports, module) { + var _curry1 = require_curry1(); + var curryN = require_curryN2(); + var flip = /* @__PURE__ */ _curry1(function flip2(fn) { + return curryN(fn.length, function(a, b) { + var args = Array.prototype.slice.call(arguments, 0); + args[0] = b; + args[1] = a; + return fn.apply(this, args); + }); + }); + module.exports = flip; + } + }); + + // sdk/contracts/node_modules/ramda/src/forEach.js + var require_forEach = __commonJS({ + "sdk/contracts/node_modules/ramda/src/forEach.js"(exports, module) { + var _checkForMethod = require_checkForMethod(); + var _curry2 = require_curry2(); + var forEach = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _checkForMethod("forEach", function forEach2(fn, list) { + var len = list.length; + var idx = 0; + while (idx < len) { + fn(list[idx]); + idx += 1; + } + return list; + }) + ); + module.exports = forEach; + } + }); + + // sdk/contracts/node_modules/ramda/src/forEachObjIndexed.js + var require_forEachObjIndexed = __commonJS({ + "sdk/contracts/node_modules/ramda/src/forEachObjIndexed.js"(exports, module) { + var _curry2 = require_curry2(); + var keys = require_keys(); + var forEachObjIndexed = /* @__PURE__ */ _curry2(function forEachObjIndexed2(fn, obj) { + var keyList = keys(obj); + var idx = 0; + while (idx < keyList.length) { + var key = keyList[idx]; + fn(obj[key], key, obj); + idx += 1; + } + return obj; + }); + module.exports = forEachObjIndexed; + } + }); + + // sdk/contracts/node_modules/ramda/src/fromPairs.js + var require_fromPairs = __commonJS({ + "sdk/contracts/node_modules/ramda/src/fromPairs.js"(exports, module) { + var _curry1 = require_curry1(); + var fromPairs = /* @__PURE__ */ _curry1(function fromPairs2(pairs) { + var result = {}; + var idx = 0; + while (idx < pairs.length) { + result[pairs[idx][0]] = pairs[idx][1]; + idx += 1; + } + return result; + }); + module.exports = fromPairs; + } + }); + + // sdk/contracts/node_modules/ramda/src/groupBy.js + var require_groupBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/groupBy.js"(exports, module) { + var _checkForMethod = require_checkForMethod(); + var _curry2 = require_curry2(); + var reduceBy = require_reduceBy(); + var groupBy = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _checkForMethod( + "groupBy", + /* @__PURE__ */ reduceBy(function(acc, item) { + acc.push(item); + return acc; + }, []) + ) + ); + module.exports = groupBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/groupWith.js + var require_groupWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/groupWith.js"(exports, module) { + var _curry2 = require_curry2(); + var groupWith = /* @__PURE__ */ _curry2(function(fn, list) { + var res = []; + var idx = 0; + var len = list.length; + while (idx < len) { + var nextidx = idx + 1; + while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) { + nextidx += 1; + } + res.push(list.slice(idx, nextidx)); + idx = nextidx; + } + return res; + }); + module.exports = groupWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/gt.js + var require_gt = __commonJS({ + "sdk/contracts/node_modules/ramda/src/gt.js"(exports, module) { + var _curry2 = require_curry2(); + var gt = /* @__PURE__ */ _curry2(function gt2(a, b) { + return a > b; + }); + module.exports = gt; + } + }); + + // sdk/contracts/node_modules/ramda/src/gte.js + var require_gte = __commonJS({ + "sdk/contracts/node_modules/ramda/src/gte.js"(exports, module) { + var _curry2 = require_curry2(); + var gte = /* @__PURE__ */ _curry2(function gte2(a, b) { + return a >= b; + }); + module.exports = gte; + } + }); + + // sdk/contracts/node_modules/ramda/src/hasPath.js + var require_hasPath = __commonJS({ + "sdk/contracts/node_modules/ramda/src/hasPath.js"(exports, module) { + var _curry2 = require_curry2(); + var _has = require_has(); + var isNil = require_isNil(); + var hasPath = /* @__PURE__ */ _curry2(function hasPath2(_path, obj) { + if (_path.length === 0 || isNil(obj)) { + return false; + } + var val = obj; + var idx = 0; + while (idx < _path.length) { + if (!isNil(val) && _has(_path[idx], val)) { + val = val[_path[idx]]; + idx += 1; + } else { + return false; + } + } + return true; + }); + module.exports = hasPath; + } + }); + + // sdk/contracts/node_modules/ramda/src/has.js + var require_has2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/has.js"(exports, module) { + var _curry2 = require_curry2(); + var hasPath = require_hasPath(); + var has = /* @__PURE__ */ _curry2(function has2(prop, obj) { + return hasPath([prop], obj); + }); + module.exports = has; + } + }); + + // sdk/contracts/node_modules/ramda/src/hasIn.js + var require_hasIn = __commonJS({ + "sdk/contracts/node_modules/ramda/src/hasIn.js"(exports, module) { + var _curry2 = require_curry2(); + var isNil = require_isNil(); + var hasIn = /* @__PURE__ */ _curry2(function hasIn2(prop, obj) { + if (isNil(obj)) { + return false; + } + return prop in obj; + }); + module.exports = hasIn; + } + }); + + // sdk/contracts/node_modules/ramda/src/identical.js + var require_identical = __commonJS({ + "sdk/contracts/node_modules/ramda/src/identical.js"(exports, module) { + var _objectIs = require_objectIs(); + var _curry2 = require_curry2(); + var identical = /* @__PURE__ */ _curry2(_objectIs); + module.exports = identical; + } + }); + + // sdk/contracts/node_modules/ramda/src/ifElse.js + var require_ifElse = __commonJS({ + "sdk/contracts/node_modules/ramda/src/ifElse.js"(exports, module) { + var _curry3 = require_curry3(); + var curryN = require_curryN2(); + var ifElse = /* @__PURE__ */ _curry3(function ifElse2(condition, onTrue, onFalse) { + return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() { + return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments); + }); + }); + module.exports = ifElse; + } + }); + + // sdk/contracts/node_modules/ramda/src/inc.js + var require_inc = __commonJS({ + "sdk/contracts/node_modules/ramda/src/inc.js"(exports, module) { + var add = require_add(); + var inc = /* @__PURE__ */ add(1); + module.exports = inc; + } + }); + + // sdk/contracts/node_modules/ramda/src/includes.js + var require_includes2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/includes.js"(exports, module) { + var _includes = require_includes(); + var _curry2 = require_curry2(); + var includes = /* @__PURE__ */ _curry2(_includes); + module.exports = includes; + } + }); + + // sdk/contracts/node_modules/ramda/src/indexBy.js + var require_indexBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/indexBy.js"(exports, module) { + var reduceBy = require_reduceBy(); + var indexBy = /* @__PURE__ */ reduceBy(function(acc, elem) { + return elem; + }, null); + module.exports = indexBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/indexOf.js + var require_indexOf2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/indexOf.js"(exports, module) { + var _curry2 = require_curry2(); + var _indexOf = require_indexOf(); + var _isArray = require_isArray(); + var indexOf = /* @__PURE__ */ _curry2(function indexOf2(target, xs) { + return typeof xs.indexOf === "function" && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0); + }); + module.exports = indexOf; + } + }); + + // sdk/contracts/node_modules/ramda/src/init.js + var require_init = __commonJS({ + "sdk/contracts/node_modules/ramda/src/init.js"(exports, module) { + var slice = require_slice(); + var init = /* @__PURE__ */ slice(0, -1); + module.exports = init; + } + }); + + // sdk/contracts/node_modules/ramda/src/innerJoin.js + var require_innerJoin = __commonJS({ + "sdk/contracts/node_modules/ramda/src/innerJoin.js"(exports, module) { + var _includesWith = require_includesWith(); + var _curry3 = require_curry3(); + var _filter = require_filter(); + var innerJoin = /* @__PURE__ */ _curry3(function innerJoin2(pred, xs, ys) { + return _filter(function(x) { + return _includesWith(pred, x, ys); + }, xs); + }); + module.exports = innerJoin; + } + }); + + // sdk/contracts/node_modules/ramda/src/insert.js + var require_insert = __commonJS({ + "sdk/contracts/node_modules/ramda/src/insert.js"(exports, module) { + var _curry3 = require_curry3(); + var insert = /* @__PURE__ */ _curry3(function insert2(idx, elt, list) { + idx = idx < list.length && idx >= 0 ? idx : list.length; + var result = Array.prototype.slice.call(list, 0); + result.splice(idx, 0, elt); + return result; + }); + module.exports = insert; + } + }); + + // sdk/contracts/node_modules/ramda/src/insertAll.js + var require_insertAll = __commonJS({ + "sdk/contracts/node_modules/ramda/src/insertAll.js"(exports, module) { + var _curry3 = require_curry3(); + var insertAll = /* @__PURE__ */ _curry3(function insertAll2(idx, elts, list) { + idx = idx < list.length && idx >= 0 ? idx : list.length; + return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx)); + }); + module.exports = insertAll; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xuniqBy.js + var require_xuniqBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xuniqBy.js"(exports, module) { + var _curry2 = require_curry2(); + var _Set = require_Set(); + var _xfBase = require_xfBase(); + var XUniqBy = /* @__PURE__ */ function() { + function XUniqBy2(f, xf) { + this.xf = xf; + this.f = f; + this.set = new _Set(); + } + XUniqBy2.prototype["@@transducer/init"] = _xfBase.init; + XUniqBy2.prototype["@@transducer/result"] = _xfBase.result; + XUniqBy2.prototype["@@transducer/step"] = function(result, input) { + return this.set.add(this.f(input)) ? this.xf["@@transducer/step"](result, input) : result; + }; + return XUniqBy2; + }(); + var _xuniqBy = /* @__PURE__ */ _curry2(function _xuniqBy2(f, xf) { + return new XUniqBy(f, xf); + }); + module.exports = _xuniqBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/uniqBy.js + var require_uniqBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/uniqBy.js"(exports, module) { + var _Set = require_Set(); + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xuniqBy = require_xuniqBy(); + var uniqBy = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xuniqBy, function(fn, list) { + var set = new _Set(); + var result = []; + var idx = 0; + var appliedItem, item; + while (idx < list.length) { + item = list[idx]; + appliedItem = fn(item); + if (set.add(appliedItem)) { + result.push(item); + } + idx += 1; + } + return result; + }) + ); + module.exports = uniqBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/uniq.js + var require_uniq = __commonJS({ + "sdk/contracts/node_modules/ramda/src/uniq.js"(exports, module) { + var identity = require_identity2(); + var uniqBy = require_uniqBy(); + var uniq = /* @__PURE__ */ uniqBy(identity); + module.exports = uniq; + } + }); + + // sdk/contracts/node_modules/ramda/src/intersection.js + var require_intersection = __commonJS({ + "sdk/contracts/node_modules/ramda/src/intersection.js"(exports, module) { + var _includes = require_includes(); + var _curry2 = require_curry2(); + var _filter = require_filter(); + var flip = require_flip(); + var uniq = require_uniq(); + var intersection = /* @__PURE__ */ _curry2(function intersection2(list1, list2) { + var lookupList, filteredList; + if (list1.length > list2.length) { + lookupList = list1; + filteredList = list2; + } else { + lookupList = list2; + filteredList = list1; + } + return uniq(_filter(flip(_includes)(lookupList), filteredList)); + }); + module.exports = intersection; + } + }); + + // sdk/contracts/node_modules/ramda/src/intersperse.js + var require_intersperse = __commonJS({ + "sdk/contracts/node_modules/ramda/src/intersperse.js"(exports, module) { + var _checkForMethod = require_checkForMethod(); + var _curry2 = require_curry2(); + var intersperse = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _checkForMethod("intersperse", function intersperse2(separator, list) { + var out = []; + var idx = 0; + var length = list.length; + while (idx < length) { + if (idx === length - 1) { + out.push(list[idx]); + } else { + out.push(list[idx], separator); + } + idx += 1; + } + return out; + }) + ); + module.exports = intersperse; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_objectAssign.js + var require_objectAssign = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_objectAssign.js"(exports, module) { + var _has = require_has(); + function _objectAssign(target) { + if (target == null) { + throw new TypeError("Cannot convert undefined or null to object"); + } + var output = Object(target); + var idx = 1; + var length = arguments.length; + while (idx < length) { + var source = arguments[idx]; + if (source != null) { + for (var nextKey in source) { + if (_has(nextKey, source)) { + output[nextKey] = source[nextKey]; + } + } + } + idx += 1; + } + return output; + } + module.exports = typeof Object.assign === "function" ? Object.assign : _objectAssign; + } + }); + + // sdk/contracts/node_modules/ramda/src/objOf.js + var require_objOf = __commonJS({ + "sdk/contracts/node_modules/ramda/src/objOf.js"(exports, module) { + var _curry2 = require_curry2(); + var objOf = /* @__PURE__ */ _curry2(function objOf2(key, val) { + var obj = {}; + obj[key] = val; + return obj; + }); + module.exports = objOf; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_stepCat.js + var require_stepCat = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_stepCat.js"(exports, module) { + var _objectAssign = require_objectAssign(); + var _identity = require_identity(); + var _isArrayLike = require_isArrayLike(); + var _isTransformer = require_isTransformer(); + var objOf = require_objOf(); + var _stepCatArray = { + "@@transducer/init": Array, + "@@transducer/step": function(xs, x) { + xs.push(x); + return xs; + }, + "@@transducer/result": _identity + }; + var _stepCatString = { + "@@transducer/init": String, + "@@transducer/step": function(a, b) { + return a + b; + }, + "@@transducer/result": _identity + }; + var _stepCatObject = { + "@@transducer/init": Object, + "@@transducer/step": function(result, input) { + return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input); + }, + "@@transducer/result": _identity + }; + function _stepCat(obj) { + if (_isTransformer(obj)) { + return obj; + } + if (_isArrayLike(obj)) { + return _stepCatArray; + } + if (typeof obj === "string") { + return _stepCatString; + } + if (typeof obj === "object") { + return _stepCatObject; + } + throw new Error("Cannot create transformer for " + obj); + } + module.exports = _stepCat; + } + }); + + // sdk/contracts/node_modules/ramda/src/into.js + var require_into = __commonJS({ + "sdk/contracts/node_modules/ramda/src/into.js"(exports, module) { + var _clone = require_clone(); + var _curry3 = require_curry3(); + var _isTransformer = require_isTransformer(); + var _reduce = require_reduce(); + var _stepCat = require_stepCat(); + var into = /* @__PURE__ */ _curry3(function into2(acc, xf, list) { + return _isTransformer(acc) ? _reduce(xf(acc), acc["@@transducer/init"](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list); + }); + module.exports = into; + } + }); + + // sdk/contracts/node_modules/ramda/src/invert.js + var require_invert = __commonJS({ + "sdk/contracts/node_modules/ramda/src/invert.js"(exports, module) { + var _curry1 = require_curry1(); + var _has = require_has(); + var keys = require_keys(); + var invert = /* @__PURE__ */ _curry1(function invert2(obj) { + var props = keys(obj); + var len = props.length; + var idx = 0; + var out = {}; + while (idx < len) { + var key = props[idx]; + var val = obj[key]; + var list = _has(val, out) ? out[val] : out[val] = []; + list[list.length] = key; + idx += 1; + } + return out; + }); + module.exports = invert; + } + }); + + // sdk/contracts/node_modules/ramda/src/invertObj.js + var require_invertObj = __commonJS({ + "sdk/contracts/node_modules/ramda/src/invertObj.js"(exports, module) { + var _curry1 = require_curry1(); + var keys = require_keys(); + var invertObj = /* @__PURE__ */ _curry1(function invertObj2(obj) { + var props = keys(obj); + var len = props.length; + var idx = 0; + var out = {}; + while (idx < len) { + var key = props[idx]; + out[obj[key]] = key; + idx += 1; + } + return out; + }); + module.exports = invertObj; + } + }); + + // sdk/contracts/node_modules/ramda/src/invoker.js + var require_invoker = __commonJS({ + "sdk/contracts/node_modules/ramda/src/invoker.js"(exports, module) { + var _curry2 = require_curry2(); + var _isFunction = require_isFunction(); + var curryN = require_curryN2(); + var toString = require_toString2(); + var invoker = /* @__PURE__ */ _curry2(function invoker2(arity, method) { + return curryN(arity + 1, function() { + var target = arguments[arity]; + if (target != null && _isFunction(target[method])) { + return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity)); + } + throw new TypeError(toString(target) + ' does not have a method named "' + method + '"'); + }); + }); + module.exports = invoker; + } + }); + + // sdk/contracts/node_modules/ramda/src/is.js + var require_is = __commonJS({ + "sdk/contracts/node_modules/ramda/src/is.js"(exports, module) { + var _curry2 = require_curry2(); + var is = /* @__PURE__ */ _curry2(function is2(Ctor, val) { + return val instanceof Ctor || val != null && (val.constructor === Ctor || Ctor.name === "Object" && typeof val === "object"); + }); + module.exports = is; + } + }); + + // sdk/contracts/node_modules/ramda/src/isEmpty.js + var require_isEmpty = __commonJS({ + "sdk/contracts/node_modules/ramda/src/isEmpty.js"(exports, module) { + var _curry1 = require_curry1(); + var empty = require_empty(); + var equals = require_equals2(); + var isEmpty = /* @__PURE__ */ _curry1(function isEmpty2(x) { + return x != null && equals(x, empty(x)); + }); + module.exports = isEmpty; + } + }); + + // sdk/contracts/node_modules/ramda/src/join.js + var require_join = __commonJS({ + "sdk/contracts/node_modules/ramda/src/join.js"(exports, module) { + var invoker = require_invoker(); + var join = /* @__PURE__ */ invoker(1, "join"); + module.exports = join; + } + }); + + // sdk/contracts/node_modules/ramda/src/juxt.js + var require_juxt = __commonJS({ + "sdk/contracts/node_modules/ramda/src/juxt.js"(exports, module) { + var _curry1 = require_curry1(); + var converge = require_converge(); + var juxt = /* @__PURE__ */ _curry1(function juxt2(fns) { + return converge(function() { + return Array.prototype.slice.call(arguments, 0); + }, fns); + }); + module.exports = juxt; + } + }); + + // sdk/contracts/node_modules/ramda/src/keysIn.js + var require_keysIn = __commonJS({ + "sdk/contracts/node_modules/ramda/src/keysIn.js"(exports, module) { + var _curry1 = require_curry1(); + var keysIn = /* @__PURE__ */ _curry1(function keysIn2(obj) { + var prop; + var ks = []; + for (prop in obj) { + ks[ks.length] = prop; + } + return ks; + }); + module.exports = keysIn; + } + }); + + // sdk/contracts/node_modules/ramda/src/lastIndexOf.js + var require_lastIndexOf = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lastIndexOf.js"(exports, module) { + var _curry2 = require_curry2(); + var _isArray = require_isArray(); + var equals = require_equals2(); + var lastIndexOf = /* @__PURE__ */ _curry2(function lastIndexOf2(target, xs) { + if (typeof xs.lastIndexOf === "function" && !_isArray(xs)) { + return xs.lastIndexOf(target); + } else { + var idx = xs.length - 1; + while (idx >= 0) { + if (equals(xs[idx], target)) { + return idx; + } + idx -= 1; + } + return -1; + } + }); + module.exports = lastIndexOf; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isNumber.js + var require_isNumber = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isNumber.js"(exports, module) { + function _isNumber(x) { + return Object.prototype.toString.call(x) === "[object Number]"; + } + module.exports = _isNumber; + } + }); + + // sdk/contracts/node_modules/ramda/src/length.js + var require_length = __commonJS({ + "sdk/contracts/node_modules/ramda/src/length.js"(exports, module) { + var _curry1 = require_curry1(); + var _isNumber = require_isNumber(); + var length = /* @__PURE__ */ _curry1(function length2(list) { + return list != null && _isNumber(list.length) ? list.length : NaN; + }); + module.exports = length; + } + }); + + // sdk/contracts/node_modules/ramda/src/lens.js + var require_lens = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lens.js"(exports, module) { + var _curry2 = require_curry2(); + var map = require_map2(); + var lens = /* @__PURE__ */ _curry2(function lens2(getter, setter) { + return function(toFunctorFn) { + return function(target) { + return map(function(focus) { + return setter(focus, target); + }, toFunctorFn(getter(target))); + }; + }; + }); + module.exports = lens; + } + }); + + // sdk/contracts/node_modules/ramda/src/update.js + var require_update = __commonJS({ + "sdk/contracts/node_modules/ramda/src/update.js"(exports, module) { + var _curry3 = require_curry3(); + var adjust = require_adjust(); + var always = require_always(); + var update = /* @__PURE__ */ _curry3(function update2(idx, x, list) { + return adjust(idx, always(x), list); + }); + module.exports = update; + } + }); + + // sdk/contracts/node_modules/ramda/src/lensIndex.js + var require_lensIndex = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lensIndex.js"(exports, module) { + var _curry1 = require_curry1(); + var lens = require_lens(); + var nth = require_nth(); + var update = require_update(); + var lensIndex = /* @__PURE__ */ _curry1(function lensIndex2(n) { + return lens(nth(n), update(n)); + }); + module.exports = lensIndex; + } + }); + + // sdk/contracts/node_modules/ramda/src/paths.js + var require_paths = __commonJS({ + "sdk/contracts/node_modules/ramda/src/paths.js"(exports, module) { + var _curry2 = require_curry2(); + var _isInteger = require_isInteger(); + var nth = require_nth(); + var paths = /* @__PURE__ */ _curry2(function paths2(pathsArray, obj) { + return pathsArray.map(function(paths3) { + var val = obj; + var idx = 0; + var p; + while (idx < paths3.length) { + if (val == null) { + return; + } + p = paths3[idx]; + val = _isInteger(p) ? nth(p, val) : val[p]; + idx += 1; + } + return val; + }); + }); + module.exports = paths; + } + }); + + // sdk/contracts/node_modules/ramda/src/path.js + var require_path = __commonJS({ + "sdk/contracts/node_modules/ramda/src/path.js"(exports, module) { + var _curry2 = require_curry2(); + var paths = require_paths(); + var path = /* @__PURE__ */ _curry2(function path2(pathAr, obj) { + return paths([pathAr], obj)[0]; + }); + module.exports = path; + } + }); + + // sdk/contracts/node_modules/ramda/src/lensPath.js + var require_lensPath = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lensPath.js"(exports, module) { + var _curry1 = require_curry1(); + var assocPath = require_assocPath(); + var lens = require_lens(); + var path = require_path(); + var lensPath = /* @__PURE__ */ _curry1(function lensPath2(p) { + return lens(path(p), assocPath(p)); + }); + module.exports = lensPath; + } + }); + + // sdk/contracts/node_modules/ramda/src/lensProp.js + var require_lensProp = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lensProp.js"(exports, module) { + var _curry1 = require_curry1(); + var assoc = require_assoc2(); + var lens = require_lens(); + var prop = require_prop(); + var lensProp = /* @__PURE__ */ _curry1(function lensProp2(k) { + return lens(prop(k), assoc(k)); + }); + module.exports = lensProp; + } + }); + + // sdk/contracts/node_modules/ramda/src/lt.js + var require_lt = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lt.js"(exports, module) { + var _curry2 = require_curry2(); + var lt = /* @__PURE__ */ _curry2(function lt2(a, b) { + return a < b; + }); + module.exports = lt; + } + }); + + // sdk/contracts/node_modules/ramda/src/lte.js + var require_lte = __commonJS({ + "sdk/contracts/node_modules/ramda/src/lte.js"(exports, module) { + var _curry2 = require_curry2(); + var lte = /* @__PURE__ */ _curry2(function lte2(a, b) { + return a <= b; + }); + module.exports = lte; + } + }); + + // sdk/contracts/node_modules/ramda/src/mapAccum.js + var require_mapAccum = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mapAccum.js"(exports, module) { + var _curry3 = require_curry3(); + var mapAccum = /* @__PURE__ */ _curry3(function mapAccum2(fn, acc, list) { + var idx = 0; + var len = list.length; + var result = []; + var tuple = [acc]; + while (idx < len) { + tuple = fn(tuple[0], list[idx]); + result[idx] = tuple[1]; + idx += 1; + } + return [tuple[0], result]; + }); + module.exports = mapAccum; + } + }); + + // sdk/contracts/node_modules/ramda/src/mapAccumRight.js + var require_mapAccumRight = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mapAccumRight.js"(exports, module) { + var _curry3 = require_curry3(); + var mapAccumRight = /* @__PURE__ */ _curry3(function mapAccumRight2(fn, acc, list) { + var idx = list.length - 1; + var result = []; + var tuple = [acc]; + while (idx >= 0) { + tuple = fn(tuple[0], list[idx]); + result[idx] = tuple[1]; + idx -= 1; + } + return [tuple[0], result]; + }); + module.exports = mapAccumRight; + } + }); + + // sdk/contracts/node_modules/ramda/src/mapObjIndexed.js + var require_mapObjIndexed = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mapObjIndexed.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduce = require_reduce(); + var keys = require_keys(); + var mapObjIndexed = /* @__PURE__ */ _curry2(function mapObjIndexed2(fn, obj) { + return _reduce(function(acc, key) { + acc[key] = fn(obj[key], key, obj); + return acc; + }, {}, keys(obj)); + }); + module.exports = mapObjIndexed; + } + }); + + // sdk/contracts/node_modules/ramda/src/match.js + var require_match = __commonJS({ + "sdk/contracts/node_modules/ramda/src/match.js"(exports, module) { + var _curry2 = require_curry2(); + var match = /* @__PURE__ */ _curry2(function match2(rx, str) { + return str.match(rx) || []; + }); + module.exports = match; + } + }); + + // sdk/contracts/node_modules/ramda/src/mathMod.js + var require_mathMod = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mathMod.js"(exports, module) { + var _curry2 = require_curry2(); + var _isInteger = require_isInteger(); + var mathMod = /* @__PURE__ */ _curry2(function mathMod2(m, p) { + if (!_isInteger(m)) { + return NaN; + } + if (!_isInteger(p) || p < 1) { + return NaN; + } + return (m % p + p) % p; + }); + module.exports = mathMod; + } + }); + + // sdk/contracts/node_modules/ramda/src/maxBy.js + var require_maxBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/maxBy.js"(exports, module) { + var _curry3 = require_curry3(); + var maxBy = /* @__PURE__ */ _curry3(function maxBy2(f, a, b) { + return f(b) > f(a) ? b : a; + }); + module.exports = maxBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/sum.js + var require_sum = __commonJS({ + "sdk/contracts/node_modules/ramda/src/sum.js"(exports, module) { + var add = require_add(); + var reduce = require_reduce2(); + var sum = /* @__PURE__ */ reduce(add, 0); + module.exports = sum; + } + }); + + // sdk/contracts/node_modules/ramda/src/mean.js + var require_mean = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mean.js"(exports, module) { + var _curry1 = require_curry1(); + var sum = require_sum(); + var mean = /* @__PURE__ */ _curry1(function mean2(list) { + return sum(list) / list.length; + }); + module.exports = mean; + } + }); + + // sdk/contracts/node_modules/ramda/src/median.js + var require_median = __commonJS({ + "sdk/contracts/node_modules/ramda/src/median.js"(exports, module) { + var _curry1 = require_curry1(); + var mean = require_mean(); + var median = /* @__PURE__ */ _curry1(function median2(list) { + var len = list.length; + if (len === 0) { + return NaN; + } + var width = 2 - len % 2; + var idx = (len - width) / 2; + return mean(Array.prototype.slice.call(list, 0).sort(function(a, b) { + return a < b ? -1 : a > b ? 1 : 0; + }).slice(idx, idx + width)); + }); + module.exports = median; + } + }); + + // sdk/contracts/node_modules/ramda/src/memoizeWith.js + var require_memoizeWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/memoizeWith.js"(exports, module) { + var _arity = require_arity(); + var _curry2 = require_curry2(); + var _has = require_has(); + var memoizeWith = /* @__PURE__ */ _curry2(function memoizeWith2(mFn, fn) { + var cache = {}; + return _arity(fn.length, function() { + var key = mFn.apply(this, arguments); + if (!_has(key, cache)) { + cache[key] = fn.apply(this, arguments); + } + return cache[key]; + }); + }); + module.exports = memoizeWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeAll.js + var require_mergeAll = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeAll.js"(exports, module) { + var _objectAssign = require_objectAssign(); + var _curry1 = require_curry1(); + var mergeAll = /* @__PURE__ */ _curry1(function mergeAll2(list) { + return _objectAssign.apply(null, [{}].concat(list)); + }); + module.exports = mergeAll; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeWithKey.js + var require_mergeWithKey = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeWithKey.js"(exports, module) { + var _curry3 = require_curry3(); + var _has = require_has(); + var mergeWithKey = /* @__PURE__ */ _curry3(function mergeWithKey2(fn, l, r) { + var result = {}; + var k; + for (k in l) { + if (_has(k, l)) { + result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k]; + } + } + for (k in r) { + if (_has(k, r) && !_has(k, result)) { + result[k] = r[k]; + } + } + return result; + }); + module.exports = mergeWithKey; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeDeepWithKey.js + var require_mergeDeepWithKey = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeDeepWithKey.js"(exports, module) { + var _curry3 = require_curry3(); + var _isObject = require_isObject(); + var mergeWithKey = require_mergeWithKey(); + var mergeDeepWithKey = /* @__PURE__ */ _curry3(function mergeDeepWithKey2(fn, lObj, rObj) { + return mergeWithKey(function(k, lVal, rVal) { + if (_isObject(lVal) && _isObject(rVal)) { + return mergeDeepWithKey2(fn, lVal, rVal); + } else { + return fn(k, lVal, rVal); + } + }, lObj, rObj); + }); + module.exports = mergeDeepWithKey; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeDeepLeft.js + var require_mergeDeepLeft = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeDeepLeft.js"(exports, module) { + var _curry2 = require_curry2(); + var mergeDeepWithKey = require_mergeDeepWithKey(); + var mergeDeepLeft = /* @__PURE__ */ _curry2(function mergeDeepLeft2(lObj, rObj) { + return mergeDeepWithKey(function(k, lVal, rVal) { + return lVal; + }, lObj, rObj); + }); + module.exports = mergeDeepLeft; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeDeepRight.js + var require_mergeDeepRight = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeDeepRight.js"(exports, module) { + var _curry2 = require_curry2(); + var mergeDeepWithKey = require_mergeDeepWithKey(); + var mergeDeepRight = /* @__PURE__ */ _curry2(function mergeDeepRight2(lObj, rObj) { + return mergeDeepWithKey(function(k, lVal, rVal) { + return rVal; + }, lObj, rObj); + }); + module.exports = mergeDeepRight; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeDeepWith.js + var require_mergeDeepWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeDeepWith.js"(exports, module) { + var _curry3 = require_curry3(); + var mergeDeepWithKey = require_mergeDeepWithKey(); + var mergeDeepWith = /* @__PURE__ */ _curry3(function mergeDeepWith2(fn, lObj, rObj) { + return mergeDeepWithKey(function(k, lVal, rVal) { + return fn(lVal, rVal); + }, lObj, rObj); + }); + module.exports = mergeDeepWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeLeft.js + var require_mergeLeft = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeLeft.js"(exports, module) { + var _objectAssign = require_objectAssign(); + var _curry2 = require_curry2(); + var mergeLeft = /* @__PURE__ */ _curry2(function mergeLeft2(l, r) { + return _objectAssign({}, r, l); + }); + module.exports = mergeLeft; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeRight.js + var require_mergeRight = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeRight.js"(exports, module) { + var _objectAssign = require_objectAssign(); + var _curry2 = require_curry2(); + var mergeRight = /* @__PURE__ */ _curry2(function mergeRight2(l, r) { + return _objectAssign({}, l, r); + }); + module.exports = mergeRight; + } + }); + + // sdk/contracts/node_modules/ramda/src/mergeWith.js + var require_mergeWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/mergeWith.js"(exports, module) { + var _curry3 = require_curry3(); + var mergeWithKey = require_mergeWithKey(); + var mergeWith = /* @__PURE__ */ _curry3(function mergeWith2(fn, l, r) { + return mergeWithKey(function(_2, _l, _r) { + return fn(_l, _r); + }, l, r); + }); + module.exports = mergeWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/min.js + var require_min = __commonJS({ + "sdk/contracts/node_modules/ramda/src/min.js"(exports, module) { + var _curry2 = require_curry2(); + var min = /* @__PURE__ */ _curry2(function min2(a, b) { + return b < a ? b : a; + }); + module.exports = min; + } + }); + + // sdk/contracts/node_modules/ramda/src/minBy.js + var require_minBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/minBy.js"(exports, module) { + var _curry3 = require_curry3(); + var minBy = /* @__PURE__ */ _curry3(function minBy2(f, a, b) { + return f(b) < f(a) ? b : a; + }); + module.exports = minBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_modify.js + var require_modify = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_modify.js"(exports, module) { + var _isArray = require_isArray(); + var _isInteger = require_isInteger(); + function _modify(prop, fn, obj) { + if (_isInteger(prop) && _isArray(obj)) { + var arr = [].concat(obj); + arr[prop] = fn(arr[prop]); + return arr; + } + var result = {}; + for (var p in obj) { + result[p] = obj[p]; + } + result[prop] = fn(result[prop]); + return result; + } + module.exports = _modify; + } + }); + + // sdk/contracts/node_modules/ramda/src/modifyPath.js + var require_modifyPath = __commonJS({ + "sdk/contracts/node_modules/ramda/src/modifyPath.js"(exports, module) { + var _curry3 = require_curry3(); + var _isArray = require_isArray(); + var _isObject = require_isObject(); + var _has = require_has(); + var _assoc = require_assoc(); + var _modify = require_modify(); + var modifyPath = /* @__PURE__ */ _curry3(function modifyPath2(path, fn, object) { + if (!_isObject(object) && !_isArray(object) || path.length === 0) { + return object; + } + var idx = path[0]; + if (!_has(idx, object)) { + return object; + } + if (path.length === 1) { + return _modify(idx, fn, object); + } + var val = modifyPath2(Array.prototype.slice.call(path, 1), fn, object[idx]); + if (val === object[idx]) { + return object; + } + return _assoc(idx, val, object); + }); + module.exports = modifyPath; + } + }); + + // sdk/contracts/node_modules/ramda/src/modify.js + var require_modify2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/modify.js"(exports, module) { + var _curry3 = require_curry3(); + var modifyPath = require_modifyPath(); + var modify = /* @__PURE__ */ _curry3(function modify2(prop, fn, object) { + return modifyPath([prop], fn, object); + }); + module.exports = modify; + } + }); + + // sdk/contracts/node_modules/ramda/src/modulo.js + var require_modulo = __commonJS({ + "sdk/contracts/node_modules/ramda/src/modulo.js"(exports, module) { + var _curry2 = require_curry2(); + var modulo = /* @__PURE__ */ _curry2(function modulo2(a, b) { + return a % b; + }); + module.exports = modulo; + } + }); + + // sdk/contracts/node_modules/ramda/src/move.js + var require_move = __commonJS({ + "sdk/contracts/node_modules/ramda/src/move.js"(exports, module) { + var _curry3 = require_curry3(); + var move = /* @__PURE__ */ _curry3(function(from, to, list) { + var length = list.length; + var result = list.slice(); + var positiveFrom = from < 0 ? length + from : from; + var positiveTo = to < 0 ? length + to : to; + var item = result.splice(positiveFrom, 1); + return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length)); + }); + module.exports = move; + } + }); + + // sdk/contracts/node_modules/ramda/src/multiply.js + var require_multiply = __commonJS({ + "sdk/contracts/node_modules/ramda/src/multiply.js"(exports, module) { + var _curry2 = require_curry2(); + var multiply = /* @__PURE__ */ _curry2(function multiply2(a, b) { + return a * b; + }); + module.exports = multiply; + } + }); + + // sdk/contracts/node_modules/ramda/src/partialObject.js + var require_partialObject = __commonJS({ + "sdk/contracts/node_modules/ramda/src/partialObject.js"(exports, module) { + var mergeDeepRight = require_mergeDeepRight(); + var _curry2 = require_curry2(); + module.exports = /* @__PURE__ */ _curry2((f, o) => (props) => f.call(exports, mergeDeepRight(o, props))); + } + }); + + // sdk/contracts/node_modules/ramda/src/negate.js + var require_negate = __commonJS({ + "sdk/contracts/node_modules/ramda/src/negate.js"(exports, module) { + var _curry1 = require_curry1(); + var negate = /* @__PURE__ */ _curry1(function negate2(n) { + return -n; + }); + module.exports = negate; + } + }); + + // sdk/contracts/node_modules/ramda/src/none.js + var require_none = __commonJS({ + "sdk/contracts/node_modules/ramda/src/none.js"(exports, module) { + var _complement = require_complement2(); + var _curry2 = require_curry2(); + var all = require_all(); + var none = /* @__PURE__ */ _curry2(function none2(fn, input) { + return all(_complement(fn), input); + }); + module.exports = none; + } + }); + + // sdk/contracts/node_modules/ramda/src/nthArg.js + var require_nthArg = __commonJS({ + "sdk/contracts/node_modules/ramda/src/nthArg.js"(exports, module) { + var _curry1 = require_curry1(); + var curryN = require_curryN2(); + var nth = require_nth(); + var nthArg = /* @__PURE__ */ _curry1(function nthArg2(n) { + var arity = n < 0 ? 1 : n + 1; + return curryN(arity, function() { + return nth(n, arguments); + }); + }); + module.exports = nthArg; + } + }); + + // sdk/contracts/node_modules/ramda/src/o.js + var require_o = __commonJS({ + "sdk/contracts/node_modules/ramda/src/o.js"(exports, module) { + var _curry3 = require_curry3(); + var o = /* @__PURE__ */ _curry3(function o2(f, g, x) { + return f(g(x)); + }); + module.exports = o; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_of.js + var require_of = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_of.js"(exports, module) { + function _of(x) { + return [x]; + } + module.exports = _of; + } + }); + + // sdk/contracts/node_modules/ramda/src/of.js + var require_of2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/of.js"(exports, module) { + var _curry1 = require_curry1(); + var _of = require_of(); + var of = /* @__PURE__ */ _curry1(_of); + module.exports = of; + } + }); + + // sdk/contracts/node_modules/ramda/src/omit.js + var require_omit = __commonJS({ + "sdk/contracts/node_modules/ramda/src/omit.js"(exports, module) { + var _curry2 = require_curry2(); + var omit = /* @__PURE__ */ _curry2(function omit2(names, obj) { + var result = {}; + var index = {}; + var idx = 0; + var len = names.length; + while (idx < len) { + index[names[idx]] = 1; + idx += 1; + } + for (var prop in obj) { + if (!index.hasOwnProperty(prop)) { + result[prop] = obj[prop]; + } + } + return result; + }); + module.exports = omit; + } + }); + + // sdk/contracts/node_modules/ramda/src/on.js + var require_on = __commonJS({ + "sdk/contracts/node_modules/ramda/src/on.js"(exports, module) { + var curryN = require_curryN(); + var on = /* @__PURE__ */ curryN(4, [], function on2(f, g, a, b) { + return f(g(a), g(b)); + }); + module.exports = on; + } + }); + + // sdk/contracts/node_modules/ramda/src/once.js + var require_once = __commonJS({ + "sdk/contracts/node_modules/ramda/src/once.js"(exports, module) { + var _arity = require_arity(); + var _curry1 = require_curry1(); + var once = /* @__PURE__ */ _curry1(function once2(fn) { + var called = false; + var result; + return _arity(fn.length, function() { + if (called) { + return result; + } + called = true; + result = fn.apply(this, arguments); + return result; + }); + }); + module.exports = once; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_assertPromise.js + var require_assertPromise = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_assertPromise.js"(exports, module) { + var _isFunction = require_isFunction(); + var _toString = require_toString(); + function _assertPromise(name, p) { + if (p == null || !_isFunction(p.then)) { + throw new TypeError("`" + name + "` expected a Promise, received " + _toString(p, [])); + } + } + module.exports = _assertPromise; + } + }); + + // sdk/contracts/node_modules/ramda/src/otherwise.js + var require_otherwise = __commonJS({ + "sdk/contracts/node_modules/ramda/src/otherwise.js"(exports, module) { + var _curry2 = require_curry2(); + var _assertPromise = require_assertPromise(); + var otherwise = /* @__PURE__ */ _curry2(function otherwise2(f, p) { + _assertPromise("otherwise", p); + return p.then(null, f); + }); + module.exports = otherwise; + } + }); + + // sdk/contracts/node_modules/ramda/src/over.js + var require_over = __commonJS({ + "sdk/contracts/node_modules/ramda/src/over.js"(exports, module) { + var _curry3 = require_curry3(); + var Identity = function(x) { + return { + value: x, + map: function(f) { + return Identity(f(x)); + } + }; + }; + var over = /* @__PURE__ */ _curry3(function over2(lens, f, x) { + return lens(function(y) { + return Identity(f(y)); + })(x).value; + }); + module.exports = over; + } + }); + + // sdk/contracts/node_modules/ramda/src/pair.js + var require_pair = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pair.js"(exports, module) { + var _curry2 = require_curry2(); + var pair = /* @__PURE__ */ _curry2(function pair2(fst, snd) { + return [fst, snd]; + }); + module.exports = pair; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_createPartialApplicator.js + var require_createPartialApplicator = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_createPartialApplicator.js"(exports, module) { + var _arity = require_arity(); + var _curry2 = require_curry2(); + function _createPartialApplicator(concat) { + return _curry2(function(fn, args) { + return _arity(Math.max(0, fn.length - args.length), function() { + return fn.apply(this, concat(args, arguments)); + }); + }); + } + module.exports = _createPartialApplicator; + } + }); + + // sdk/contracts/node_modules/ramda/src/partial.js + var require_partial = __commonJS({ + "sdk/contracts/node_modules/ramda/src/partial.js"(exports, module) { + var _concat = require_concat(); + var _createPartialApplicator = require_createPartialApplicator(); + var partial = /* @__PURE__ */ _createPartialApplicator(_concat); + module.exports = partial; + } + }); + + // sdk/contracts/node_modules/ramda/src/partialRight.js + var require_partialRight = __commonJS({ + "sdk/contracts/node_modules/ramda/src/partialRight.js"(exports, module) { + var _concat = require_concat(); + var _createPartialApplicator = require_createPartialApplicator(); + var flip = require_flip(); + var partialRight = /* @__PURE__ */ _createPartialApplicator( + /* @__PURE__ */ flip(_concat) + ); + module.exports = partialRight; + } + }); + + // sdk/contracts/node_modules/ramda/src/partition.js + var require_partition = __commonJS({ + "sdk/contracts/node_modules/ramda/src/partition.js"(exports, module) { + var filter = require_filter2(); + var juxt = require_juxt(); + var reject = require_reject(); + var partition = /* @__PURE__ */ juxt([filter, reject]); + module.exports = partition; + } + }); + + // sdk/contracts/node_modules/ramda/src/pathEq.js + var require_pathEq = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pathEq.js"(exports, module) { + var _curry3 = require_curry3(); + var equals = require_equals2(); + var path = require_path(); + var pathEq = /* @__PURE__ */ _curry3(function pathEq2(_path, val, obj) { + return equals(path(_path, obj), val); + }); + module.exports = pathEq; + } + }); + + // sdk/contracts/node_modules/ramda/src/pathOr.js + var require_pathOr = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pathOr.js"(exports, module) { + var _curry3 = require_curry3(); + var defaultTo = require_defaultTo(); + var path = require_path(); + var pathOr = /* @__PURE__ */ _curry3(function pathOr2(d, p, obj) { + return defaultTo(d, path(p, obj)); + }); + module.exports = pathOr; + } + }); + + // sdk/contracts/node_modules/ramda/src/pathSatisfies.js + var require_pathSatisfies = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pathSatisfies.js"(exports, module) { + var _curry3 = require_curry3(); + var path = require_path(); + var pathSatisfies = /* @__PURE__ */ _curry3(function pathSatisfies2(pred, propPath, obj) { + return pred(path(propPath, obj)); + }); + module.exports = pathSatisfies; + } + }); + + // sdk/contracts/node_modules/ramda/src/pick.js + var require_pick = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pick.js"(exports, module) { + var _curry2 = require_curry2(); + var pick = /* @__PURE__ */ _curry2(function pick2(names, obj) { + var result = {}; + var idx = 0; + while (idx < names.length) { + if (names[idx] in obj) { + result[names[idx]] = obj[names[idx]]; + } + idx += 1; + } + return result; + }); + module.exports = pick; + } + }); + + // sdk/contracts/node_modules/ramda/src/pickAll.js + var require_pickAll = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pickAll.js"(exports, module) { + var _curry2 = require_curry2(); + var pickAll = /* @__PURE__ */ _curry2(function pickAll2(names, obj) { + var result = {}; + var idx = 0; + var len = names.length; + while (idx < len) { + var name = names[idx]; + result[name] = obj[name]; + idx += 1; + } + return result; + }); + module.exports = pickAll; + } + }); + + // sdk/contracts/node_modules/ramda/src/pickBy.js + var require_pickBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/pickBy.js"(exports, module) { + var _curry2 = require_curry2(); + var pickBy = /* @__PURE__ */ _curry2(function pickBy2(test, obj) { + var result = {}; + for (var prop in obj) { + if (test(obj[prop], prop, obj)) { + result[prop] = obj[prop]; + } + } + return result; + }); + module.exports = pickBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/prepend.js + var require_prepend = __commonJS({ + "sdk/contracts/node_modules/ramda/src/prepend.js"(exports, module) { + var _concat = require_concat(); + var _curry2 = require_curry2(); + var prepend = /* @__PURE__ */ _curry2(function prepend2(el, list) { + return _concat([el], list); + }); + module.exports = prepend; + } + }); + + // sdk/contracts/node_modules/ramda/src/product.js + var require_product = __commonJS({ + "sdk/contracts/node_modules/ramda/src/product.js"(exports, module) { + var multiply = require_multiply(); + var reduce = require_reduce2(); + var product = /* @__PURE__ */ reduce(multiply, 1); + module.exports = product; + } + }); + + // sdk/contracts/node_modules/ramda/src/useWith.js + var require_useWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/useWith.js"(exports, module) { + var _curry2 = require_curry2(); + var curryN = require_curryN2(); + var useWith = /* @__PURE__ */ _curry2(function useWith2(fn, transformers) { + return curryN(transformers.length, function() { + var args = []; + var idx = 0; + while (idx < transformers.length) { + args.push(transformers[idx].call(this, arguments[idx])); + idx += 1; + } + return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length))); + }); + }); + module.exports = useWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/project.js + var require_project = __commonJS({ + "sdk/contracts/node_modules/ramda/src/project.js"(exports, module) { + var _map = require_map(); + var identity = require_identity2(); + var pickAll = require_pickAll(); + var useWith = require_useWith(); + var project = /* @__PURE__ */ useWith(_map, [pickAll, identity]); + module.exports = project; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_promap.js + var require_promap = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_promap.js"(exports, module) { + function _promap(f, g, profunctor) { + return function(x) { + return g(profunctor(f(x))); + }; + } + module.exports = _promap; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xpromap.js + var require_xpromap = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xpromap.js"(exports, module) { + var _curry3 = require_curry3(); + var _xfBase = require_xfBase(); + var _promap = require_promap(); + var XPromap = /* @__PURE__ */ function() { + function XPromap2(f, g, xf) { + this.xf = xf; + this.f = f; + this.g = g; + } + XPromap2.prototype["@@transducer/init"] = _xfBase.init; + XPromap2.prototype["@@transducer/result"] = _xfBase.result; + XPromap2.prototype["@@transducer/step"] = function(result, input) { + return this.xf["@@transducer/step"](result, _promap(this.f, this.g, input)); + }; + return XPromap2; + }(); + var _xpromap = /* @__PURE__ */ _curry3(function _xpromap2(f, g, xf) { + return new XPromap(f, g, xf); + }); + module.exports = _xpromap; + } + }); + + // sdk/contracts/node_modules/ramda/src/promap.js + var require_promap2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/promap.js"(exports, module) { + var _curry3 = require_curry3(); + var _dispatchable = require_dispatchable(); + var _promap = require_promap(); + var _xpromap = require_xpromap(); + var promap = /* @__PURE__ */ _curry3( + /* @__PURE__ */ _dispatchable(["fantasy-land/promap", "promap"], _xpromap, _promap) + ); + module.exports = promap; + } + }); + + // sdk/contracts/node_modules/ramda/src/propEq.js + var require_propEq = __commonJS({ + "sdk/contracts/node_modules/ramda/src/propEq.js"(exports, module) { + var _curry3 = require_curry3(); + var prop = require_prop(); + var equals = require_equals2(); + var propEq = /* @__PURE__ */ _curry3(function propEq2(name, val, obj) { + return equals(val, prop(name, obj)); + }); + module.exports = propEq; + } + }); + + // sdk/contracts/node_modules/ramda/src/propIs.js + var require_propIs = __commonJS({ + "sdk/contracts/node_modules/ramda/src/propIs.js"(exports, module) { + var _curry3 = require_curry3(); + var prop = require_prop(); + var is = require_is(); + var propIs = /* @__PURE__ */ _curry3(function propIs2(type, name, obj) { + return is(type, prop(name, obj)); + }); + module.exports = propIs; + } + }); + + // sdk/contracts/node_modules/ramda/src/propOr.js + var require_propOr = __commonJS({ + "sdk/contracts/node_modules/ramda/src/propOr.js"(exports, module) { + var _curry3 = require_curry3(); + var defaultTo = require_defaultTo(); + var prop = require_prop(); + var propOr = /* @__PURE__ */ _curry3(function propOr2(val, p, obj) { + return defaultTo(val, prop(p, obj)); + }); + module.exports = propOr; + } + }); + + // sdk/contracts/node_modules/ramda/src/propSatisfies.js + var require_propSatisfies = __commonJS({ + "sdk/contracts/node_modules/ramda/src/propSatisfies.js"(exports, module) { + var _curry3 = require_curry3(); + var prop = require_prop(); + var propSatisfies = /* @__PURE__ */ _curry3(function propSatisfies2(pred, name, obj) { + return pred(prop(name, obj)); + }); + module.exports = propSatisfies; + } + }); + + // sdk/contracts/node_modules/ramda/src/props.js + var require_props = __commonJS({ + "sdk/contracts/node_modules/ramda/src/props.js"(exports, module) { + var _curry2 = require_curry2(); + var path = require_path(); + var props = /* @__PURE__ */ _curry2(function props2(ps, obj) { + return ps.map(function(p) { + return path([p], obj); + }); + }); + module.exports = props; + } + }); + + // sdk/contracts/node_modules/ramda/src/range.js + var require_range = __commonJS({ + "sdk/contracts/node_modules/ramda/src/range.js"(exports, module) { + var _curry2 = require_curry2(); + var _isNumber = require_isNumber(); + var range = /* @__PURE__ */ _curry2(function range2(from, to) { + if (!(_isNumber(from) && _isNumber(to))) { + throw new TypeError("Both arguments to range must be numbers"); + } + var result = []; + var n = from; + while (n < to) { + result.push(n); + n += 1; + } + return result; + }); + module.exports = range; + } + }); + + // sdk/contracts/node_modules/ramda/src/reduceRight.js + var require_reduceRight = __commonJS({ + "sdk/contracts/node_modules/ramda/src/reduceRight.js"(exports, module) { + var _curry3 = require_curry3(); + var reduceRight = /* @__PURE__ */ _curry3(function reduceRight2(fn, acc, list) { + var idx = list.length - 1; + while (idx >= 0) { + acc = fn(list[idx], acc); + if (acc && acc["@@transducer/reduced"]) { + acc = acc["@@transducer/value"]; + break; + } + idx -= 1; + } + return acc; + }); + module.exports = reduceRight; + } + }); + + // sdk/contracts/node_modules/ramda/src/reduceWhile.js + var require_reduceWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/reduceWhile.js"(exports, module) { + var _curryN = require_curryN(); + var _reduce = require_reduce(); + var _reduced = require_reduced(); + var reduceWhile = /* @__PURE__ */ _curryN(4, [], function _reduceWhile(pred, fn, a, list) { + return _reduce(function(acc, x) { + return pred(acc, x) ? fn(acc, x) : _reduced(acc); + }, a, list); + }); + module.exports = reduceWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/reduced.js + var require_reduced2 = __commonJS({ + "sdk/contracts/node_modules/ramda/src/reduced.js"(exports, module) { + var _curry1 = require_curry1(); + var _reduced = require_reduced(); + var reduced = /* @__PURE__ */ _curry1(_reduced); + module.exports = reduced; + } + }); + + // sdk/contracts/node_modules/ramda/src/times.js + var require_times = __commonJS({ + "sdk/contracts/node_modules/ramda/src/times.js"(exports, module) { + var _curry2 = require_curry2(); + var times = /* @__PURE__ */ _curry2(function times2(fn, n) { + var len = Number(n); + var idx = 0; + var list; + if (len < 0 || isNaN(len)) { + throw new RangeError("n must be a non-negative number"); + } + list = new Array(len); + while (idx < len) { + list[idx] = fn(idx); + idx += 1; + } + return list; + }); + module.exports = times; + } + }); + + // sdk/contracts/node_modules/ramda/src/repeat.js + var require_repeat = __commonJS({ + "sdk/contracts/node_modules/ramda/src/repeat.js"(exports, module) { + var _curry2 = require_curry2(); + var always = require_always(); + var times = require_times(); + var repeat = /* @__PURE__ */ _curry2(function repeat2(value, n) { + return times(always(value), n); + }); + module.exports = repeat; + } + }); + + // sdk/contracts/node_modules/ramda/src/replace.js + var require_replace = __commonJS({ + "sdk/contracts/node_modules/ramda/src/replace.js"(exports, module) { + var _curry3 = require_curry3(); + var replace = /* @__PURE__ */ _curry3(function replace2(regex, replacement, str) { + return str.replace(regex, replacement); + }); + module.exports = replace; + } + }); + + // sdk/contracts/node_modules/ramda/src/scan.js + var require_scan = __commonJS({ + "sdk/contracts/node_modules/ramda/src/scan.js"(exports, module) { + var _curry3 = require_curry3(); + var scan = /* @__PURE__ */ _curry3(function scan2(fn, acc, list) { + var idx = 0; + var len = list.length; + var result = [acc]; + while (idx < len) { + acc = fn(acc, list[idx]); + result[idx + 1] = acc; + idx += 1; + } + return result; + }); + module.exports = scan; + } + }); + + // sdk/contracts/node_modules/ramda/src/sequence.js + var require_sequence = __commonJS({ + "sdk/contracts/node_modules/ramda/src/sequence.js"(exports, module) { + var _curry2 = require_curry2(); + var ap = require_ap(); + var map = require_map2(); + var prepend = require_prepend(); + var reduceRight = require_reduceRight(); + var sequence = /* @__PURE__ */ _curry2(function sequence2(of, traversable) { + return typeof traversable.sequence === "function" ? traversable.sequence(of) : reduceRight(function(x, acc) { + return ap(map(prepend, x), acc); + }, of([]), traversable); + }); + module.exports = sequence; + } + }); + + // sdk/contracts/node_modules/ramda/src/set.js + var require_set = __commonJS({ + "sdk/contracts/node_modules/ramda/src/set.js"(exports, module) { + var _curry3 = require_curry3(); + var always = require_always(); + var over = require_over(); + var set = /* @__PURE__ */ _curry3(function set2(lens, v, x) { + return over(lens, always(v), x); + }); + module.exports = set; + } + }); + + // sdk/contracts/node_modules/ramda/src/sort.js + var require_sort = __commonJS({ + "sdk/contracts/node_modules/ramda/src/sort.js"(exports, module) { + var _curry2 = require_curry2(); + var sort = /* @__PURE__ */ _curry2(function sort2(comparator, list) { + return Array.prototype.slice.call(list, 0).sort(comparator); + }); + module.exports = sort; + } + }); + + // sdk/contracts/node_modules/ramda/src/sortBy.js + var require_sortBy = __commonJS({ + "sdk/contracts/node_modules/ramda/src/sortBy.js"(exports, module) { + var _curry2 = require_curry2(); + var sortBy = /* @__PURE__ */ _curry2(function sortBy2(fn, list) { + return Array.prototype.slice.call(list, 0).sort(function(a, b) { + var aa = fn(a); + var bb = fn(b); + return aa < bb ? -1 : aa > bb ? 1 : 0; + }); + }); + module.exports = sortBy; + } + }); + + // sdk/contracts/node_modules/ramda/src/sortWith.js + var require_sortWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/sortWith.js"(exports, module) { + var _curry2 = require_curry2(); + var sortWith = /* @__PURE__ */ _curry2(function sortWith2(fns, list) { + return Array.prototype.slice.call(list, 0).sort(function(a, b) { + var result = 0; + var i = 0; + while (result === 0 && i < fns.length) { + result = fns[i](a, b); + i += 1; + } + return result; + }); + }); + module.exports = sortWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/split.js + var require_split = __commonJS({ + "sdk/contracts/node_modules/ramda/src/split.js"(exports, module) { + var invoker = require_invoker(); + var split = /* @__PURE__ */ invoker(1, "split"); + module.exports = split; + } + }); + + // sdk/contracts/node_modules/ramda/src/splitAt.js + var require_splitAt = __commonJS({ + "sdk/contracts/node_modules/ramda/src/splitAt.js"(exports, module) { + var _curry2 = require_curry2(); + var length = require_length(); + var slice = require_slice(); + var splitAt = /* @__PURE__ */ _curry2(function splitAt2(index, array) { + return [slice(0, index, array), slice(index, length(array), array)]; + }); + module.exports = splitAt; + } + }); + + // sdk/contracts/node_modules/ramda/src/splitEvery.js + var require_splitEvery = __commonJS({ + "sdk/contracts/node_modules/ramda/src/splitEvery.js"(exports, module) { + var _curry2 = require_curry2(); + var slice = require_slice(); + var splitEvery = /* @__PURE__ */ _curry2(function splitEvery2(n, list) { + if (n <= 0) { + throw new Error("First argument to splitEvery must be a positive integer"); + } + var result = []; + var idx = 0; + while (idx < list.length) { + result.push(slice(idx, idx += n, list)); + } + return result; + }); + module.exports = splitEvery; + } + }); + + // sdk/contracts/node_modules/ramda/src/splitWhen.js + var require_splitWhen = __commonJS({ + "sdk/contracts/node_modules/ramda/src/splitWhen.js"(exports, module) { + var _curry2 = require_curry2(); + var splitWhen = /* @__PURE__ */ _curry2(function splitWhen2(pred, list) { + var idx = 0; + var len = list.length; + var prefix = []; + while (idx < len && !pred(list[idx])) { + prefix.push(list[idx]); + idx += 1; + } + return [prefix, Array.prototype.slice.call(list, idx)]; + }); + module.exports = splitWhen; + } + }); + + // sdk/contracts/node_modules/ramda/src/splitWhenever.js + var require_splitWhenever = __commonJS({ + "sdk/contracts/node_modules/ramda/src/splitWhenever.js"(exports, module) { + var _curryN = require_curryN(); + var splitWhenever = /* @__PURE__ */ _curryN(2, [], function splitWhenever2(pred, list) { + var acc = []; + var curr = []; + for (var i = 0; i < list.length; i = i + 1) { + if (!pred(list[i])) { + curr.push(list[i]); + } + if ((i < list.length - 1 && pred(list[i + 1]) || i === list.length - 1) && curr.length > 0) { + acc.push(curr); + curr = []; + } + } + return acc; + }); + module.exports = splitWhenever; + } + }); + + // sdk/contracts/node_modules/ramda/src/startsWith.js + var require_startsWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/startsWith.js"(exports, module) { + var _curry2 = require_curry2(); + var equals = require_equals2(); + var take = require_take(); + var startsWith = /* @__PURE__ */ _curry2(function(prefix, list) { + return equals(take(prefix.length, list), prefix); + }); + module.exports = startsWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/subtract.js + var require_subtract = __commonJS({ + "sdk/contracts/node_modules/ramda/src/subtract.js"(exports, module) { + var _curry2 = require_curry2(); + var subtract = /* @__PURE__ */ _curry2(function subtract2(a, b) { + return Number(a) - Number(b); + }); + module.exports = subtract; + } + }); + + // sdk/contracts/node_modules/ramda/src/symmetricDifference.js + var require_symmetricDifference = __commonJS({ + "sdk/contracts/node_modules/ramda/src/symmetricDifference.js"(exports, module) { + var _curry2 = require_curry2(); + var concat = require_concat2(); + var difference = require_difference(); + var symmetricDifference = /* @__PURE__ */ _curry2(function symmetricDifference2(list1, list2) { + return concat(difference(list1, list2), difference(list2, list1)); + }); + module.exports = symmetricDifference; + } + }); + + // sdk/contracts/node_modules/ramda/src/symmetricDifferenceWith.js + var require_symmetricDifferenceWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/symmetricDifferenceWith.js"(exports, module) { + var _curry3 = require_curry3(); + var concat = require_concat2(); + var differenceWith = require_differenceWith(); + var symmetricDifferenceWith = /* @__PURE__ */ _curry3(function symmetricDifferenceWith2(pred, list1, list2) { + return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1)); + }); + module.exports = symmetricDifferenceWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/takeLastWhile.js + var require_takeLastWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/takeLastWhile.js"(exports, module) { + var _curry2 = require_curry2(); + var slice = require_slice(); + var takeLastWhile = /* @__PURE__ */ _curry2(function takeLastWhile2(fn, xs) { + var idx = xs.length - 1; + while (idx >= 0 && fn(xs[idx])) { + idx -= 1; + } + return slice(idx + 1, Infinity, xs); + }); + module.exports = takeLastWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xtakeWhile.js + var require_xtakeWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xtakeWhile.js"(exports, module) { + var _curry2 = require_curry2(); + var _reduced = require_reduced(); + var _xfBase = require_xfBase(); + var XTakeWhile = /* @__PURE__ */ function() { + function XTakeWhile2(f, xf) { + this.xf = xf; + this.f = f; + } + XTakeWhile2.prototype["@@transducer/init"] = _xfBase.init; + XTakeWhile2.prototype["@@transducer/result"] = _xfBase.result; + XTakeWhile2.prototype["@@transducer/step"] = function(result, input) { + return this.f(input) ? this.xf["@@transducer/step"](result, input) : _reduced(result); + }; + return XTakeWhile2; + }(); + var _xtakeWhile = /* @__PURE__ */ _curry2(function _xtakeWhile2(f, xf) { + return new XTakeWhile(f, xf); + }); + module.exports = _xtakeWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/takeWhile.js + var require_takeWhile = __commonJS({ + "sdk/contracts/node_modules/ramda/src/takeWhile.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xtakeWhile = require_xtakeWhile(); + var slice = require_slice(); + var takeWhile = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable(["takeWhile"], _xtakeWhile, function takeWhile2(fn, xs) { + var idx = 0; + var len = xs.length; + while (idx < len && fn(xs[idx])) { + idx += 1; + } + return slice(0, idx, xs); + }) + ); + module.exports = takeWhile; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xtap.js + var require_xtap = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xtap.js"(exports, module) { + var _curry2 = require_curry2(); + var _xfBase = require_xfBase(); + var XTap = /* @__PURE__ */ function() { + function XTap2(f, xf) { + this.xf = xf; + this.f = f; + } + XTap2.prototype["@@transducer/init"] = _xfBase.init; + XTap2.prototype["@@transducer/result"] = _xfBase.result; + XTap2.prototype["@@transducer/step"] = function(result, input) { + this.f(input); + return this.xf["@@transducer/step"](result, input); + }; + return XTap2; + }(); + var _xtap = /* @__PURE__ */ _curry2(function _xtap2(f, xf) { + return new XTap(f, xf); + }); + module.exports = _xtap; + } + }); + + // sdk/contracts/node_modules/ramda/src/tap.js + var require_tap = __commonJS({ + "sdk/contracts/node_modules/ramda/src/tap.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _xtap = require_xtap(); + var tap = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xtap, function tap2(fn, x) { + fn(x); + return x; + }) + ); + module.exports = tap; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_isRegExp.js + var require_isRegExp = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_isRegExp.js"(exports, module) { + function _isRegExp(x) { + return Object.prototype.toString.call(x) === "[object RegExp]"; + } + module.exports = _isRegExp; + } + }); + + // sdk/contracts/node_modules/ramda/src/test.js + var require_test = __commonJS({ + "sdk/contracts/node_modules/ramda/src/test.js"(exports, module) { + var _cloneRegExp = require_cloneRegExp(); + var _curry2 = require_curry2(); + var _isRegExp = require_isRegExp(); + var toString = require_toString2(); + var test = /* @__PURE__ */ _curry2(function test2(pattern, str) { + if (!_isRegExp(pattern)) { + throw new TypeError("\u2018test\u2019 requires a value of type RegExp as its first argument; received " + toString(pattern)); + } + return _cloneRegExp(pattern).test(str); + }); + module.exports = test; + } + }); + + // sdk/contracts/node_modules/ramda/src/andThen.js + var require_andThen = __commonJS({ + "sdk/contracts/node_modules/ramda/src/andThen.js"(exports, module) { + var _curry2 = require_curry2(); + var _assertPromise = require_assertPromise(); + var andThen = /* @__PURE__ */ _curry2(function andThen2(f, p) { + _assertPromise("andThen", p); + return p.then(f); + }); + module.exports = andThen; + } + }); + + // sdk/contracts/node_modules/ramda/src/toLower.js + var require_toLower = __commonJS({ + "sdk/contracts/node_modules/ramda/src/toLower.js"(exports, module) { + var invoker = require_invoker(); + var toLower = /* @__PURE__ */ invoker(0, "toLowerCase"); + module.exports = toLower; + } + }); + + // sdk/contracts/node_modules/ramda/src/toPairs.js + var require_toPairs = __commonJS({ + "sdk/contracts/node_modules/ramda/src/toPairs.js"(exports, module) { + var _curry1 = require_curry1(); + var _has = require_has(); + var toPairs = /* @__PURE__ */ _curry1(function toPairs2(obj) { + var pairs = []; + for (var prop in obj) { + if (_has(prop, obj)) { + pairs[pairs.length] = [prop, obj[prop]]; + } + } + return pairs; + }); + module.exports = toPairs; + } + }); + + // sdk/contracts/node_modules/ramda/src/toPairsIn.js + var require_toPairsIn = __commonJS({ + "sdk/contracts/node_modules/ramda/src/toPairsIn.js"(exports, module) { + var _curry1 = require_curry1(); + var toPairsIn = /* @__PURE__ */ _curry1(function toPairsIn2(obj) { + var pairs = []; + for (var prop in obj) { + pairs[pairs.length] = [prop, obj[prop]]; + } + return pairs; + }); + module.exports = toPairsIn; + } + }); + + // sdk/contracts/node_modules/ramda/src/toUpper.js + var require_toUpper = __commonJS({ + "sdk/contracts/node_modules/ramda/src/toUpper.js"(exports, module) { + var invoker = require_invoker(); + var toUpper = /* @__PURE__ */ invoker(0, "toUpperCase"); + module.exports = toUpper; + } + }); + + // sdk/contracts/node_modules/ramda/src/transduce.js + var require_transduce = __commonJS({ + "sdk/contracts/node_modules/ramda/src/transduce.js"(exports, module) { + var _reduce = require_reduce(); + var _xwrap = require_xwrap(); + var curryN = require_curryN2(); + var transduce = /* @__PURE__ */ curryN(4, function transduce2(xf, fn, acc, list) { + return _reduce(xf(typeof fn === "function" ? _xwrap(fn) : fn), acc, list); + }); + module.exports = transduce; + } + }); + + // sdk/contracts/node_modules/ramda/src/transpose.js + var require_transpose = __commonJS({ + "sdk/contracts/node_modules/ramda/src/transpose.js"(exports, module) { + var _curry1 = require_curry1(); + var transpose = /* @__PURE__ */ _curry1(function transpose2(outerlist) { + var i = 0; + var result = []; + while (i < outerlist.length) { + var innerlist = outerlist[i]; + var j = 0; + while (j < innerlist.length) { + if (typeof result[j] === "undefined") { + result[j] = []; + } + result[j].push(innerlist[j]); + j += 1; + } + i += 1; + } + return result; + }); + module.exports = transpose; + } + }); + + // sdk/contracts/node_modules/ramda/src/traverse.js + var require_traverse = __commonJS({ + "sdk/contracts/node_modules/ramda/src/traverse.js"(exports, module) { + var _curry3 = require_curry3(); + var map = require_map2(); + var sequence = require_sequence(); + var traverse = /* @__PURE__ */ _curry3(function traverse2(of, f, traversable) { + return typeof traversable["fantasy-land/traverse"] === "function" ? traversable["fantasy-land/traverse"](f, of) : typeof traversable.traverse === "function" ? traversable.traverse(f, of) : sequence(of, map(f, traversable)); + }); + module.exports = traverse; + } + }); + + // sdk/contracts/node_modules/ramda/src/trim.js + var require_trim = __commonJS({ + "sdk/contracts/node_modules/ramda/src/trim.js"(exports, module) { + var _curry1 = require_curry1(); + var ws = " \n\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF"; + var zeroWidth = "\u200B"; + var hasProtoTrim = typeof String.prototype.trim === "function"; + var trim = !hasProtoTrim || /* @__PURE__ */ ws.trim() || !/* @__PURE__ */ zeroWidth.trim() ? /* @__PURE__ */ _curry1(function trim2(str) { + var beginRx = new RegExp("^[" + ws + "][" + ws + "]*"); + var endRx = new RegExp("[" + ws + "][" + ws + "]*$"); + return str.replace(beginRx, "").replace(endRx, ""); + }) : /* @__PURE__ */ _curry1(function trim2(str) { + return str.trim(); + }); + module.exports = trim; + } + }); + + // sdk/contracts/node_modules/ramda/src/tryCatch.js + var require_tryCatch = __commonJS({ + "sdk/contracts/node_modules/ramda/src/tryCatch.js"(exports, module) { + var _arity = require_arity(); + var _concat = require_concat(); + var _curry2 = require_curry2(); + var tryCatch = /* @__PURE__ */ _curry2(function _tryCatch(tryer, catcher) { + return _arity(tryer.length, function() { + try { + return tryer.apply(this, arguments); + } catch (e) { + return catcher.apply(this, _concat([e], arguments)); + } + }); + }); + module.exports = tryCatch; + } + }); + + // sdk/contracts/node_modules/ramda/src/unapply.js + var require_unapply = __commonJS({ + "sdk/contracts/node_modules/ramda/src/unapply.js"(exports, module) { + var _curry1 = require_curry1(); + var unapply = /* @__PURE__ */ _curry1(function unapply2(fn) { + return function() { + return fn(Array.prototype.slice.call(arguments, 0)); + }; + }); + module.exports = unapply; + } + }); + + // sdk/contracts/node_modules/ramda/src/unary.js + var require_unary = __commonJS({ + "sdk/contracts/node_modules/ramda/src/unary.js"(exports, module) { + var _curry1 = require_curry1(); + var nAry = require_nAry(); + var unary = /* @__PURE__ */ _curry1(function unary2(fn) { + return nAry(1, fn); + }); + module.exports = unary; + } + }); + + // sdk/contracts/node_modules/ramda/src/uncurryN.js + var require_uncurryN = __commonJS({ + "sdk/contracts/node_modules/ramda/src/uncurryN.js"(exports, module) { + var _curry2 = require_curry2(); + var curryN = require_curryN2(); + var uncurryN = /* @__PURE__ */ _curry2(function uncurryN2(depth, fn) { + return curryN(depth, function() { + var currentDepth = 1; + var value = fn; + var idx = 0; + var endIdx; + while (currentDepth <= depth && typeof value === "function") { + endIdx = currentDepth === depth ? arguments.length : idx + value.length; + value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx)); + currentDepth += 1; + idx = endIdx; + } + return value; + }); + }); + module.exports = uncurryN; + } + }); + + // sdk/contracts/node_modules/ramda/src/unfold.js + var require_unfold = __commonJS({ + "sdk/contracts/node_modules/ramda/src/unfold.js"(exports, module) { + var _curry2 = require_curry2(); + var unfold = /* @__PURE__ */ _curry2(function unfold2(fn, seed) { + var pair = fn(seed); + var result = []; + while (pair && pair.length) { + result[result.length] = pair[0]; + pair = fn(pair[1]); + } + return result; + }); + module.exports = unfold; + } + }); + + // sdk/contracts/node_modules/ramda/src/union.js + var require_union = __commonJS({ + "sdk/contracts/node_modules/ramda/src/union.js"(exports, module) { + var _concat = require_concat(); + var _curry2 = require_curry2(); + var compose = require_compose(); + var uniq = require_uniq(); + var union = /* @__PURE__ */ _curry2( + /* @__PURE__ */ compose(uniq, _concat) + ); + module.exports = union; + } + }); + + // sdk/contracts/node_modules/ramda/src/internal/_xuniqWith.js + var require_xuniqWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/internal/_xuniqWith.js"(exports, module) { + var _curry2 = require_curry2(); + var _includesWith = require_includesWith(); + var _xfBase = require_xfBase(); + var XUniqWith = /* @__PURE__ */ function() { + function XUniqWith2(pred, xf) { + this.xf = xf; + this.pred = pred; + this.items = []; + } + XUniqWith2.prototype["@@transducer/init"] = _xfBase.init; + XUniqWith2.prototype["@@transducer/result"] = _xfBase.result; + XUniqWith2.prototype["@@transducer/step"] = function(result, input) { + if (_includesWith(this.pred, input, this.items)) { + return result; + } else { + this.items.push(input); + return this.xf["@@transducer/step"](result, input); + } + }; + return XUniqWith2; + }(); + var _xuniqWith = /* @__PURE__ */ _curry2(function _xuniqWith2(pred, xf) { + return new XUniqWith(pred, xf); + }); + module.exports = _xuniqWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/uniqWith.js + var require_uniqWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/uniqWith.js"(exports, module) { + var _curry2 = require_curry2(); + var _dispatchable = require_dispatchable(); + var _includesWith = require_includesWith(); + var _xuniqWith = require_xuniqWith(); + var uniqWith = /* @__PURE__ */ _curry2( + /* @__PURE__ */ _dispatchable([], _xuniqWith, function(pred, list) { + var idx = 0; + var len = list.length; + var result = []; + var item; + while (idx < len) { + item = list[idx]; + if (!_includesWith(pred, item, result)) { + result[result.length] = item; + } + idx += 1; + } + return result; + }) + ); + module.exports = uniqWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/unionWith.js + var require_unionWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/unionWith.js"(exports, module) { + var _concat = require_concat(); + var _curry3 = require_curry3(); + var uniqWith = require_uniqWith(); + var unionWith = /* @__PURE__ */ _curry3(function unionWith2(pred, list1, list2) { + return uniqWith(pred, _concat(list1, list2)); + }); + module.exports = unionWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/unless.js + var require_unless = __commonJS({ + "sdk/contracts/node_modules/ramda/src/unless.js"(exports, module) { + var _curry3 = require_curry3(); + var unless = /* @__PURE__ */ _curry3(function unless2(pred, whenFalseFn, x) { + return pred(x) ? x : whenFalseFn(x); + }); + module.exports = unless; + } + }); + + // sdk/contracts/node_modules/ramda/src/unnest.js + var require_unnest = __commonJS({ + "sdk/contracts/node_modules/ramda/src/unnest.js"(exports, module) { + var _identity = require_identity(); + var chain = require_chain(); + var unnest = /* @__PURE__ */ chain(_identity); + module.exports = unnest; + } + }); + + // sdk/contracts/node_modules/ramda/src/until.js + var require_until = __commonJS({ + "sdk/contracts/node_modules/ramda/src/until.js"(exports, module) { + var _curry3 = require_curry3(); + var until = /* @__PURE__ */ _curry3(function until2(pred, fn, init) { + var val = init; + while (!pred(val)) { + val = fn(val); + } + return val; + }); + module.exports = until; + } + }); + + // sdk/contracts/node_modules/ramda/src/unwind.js + var require_unwind = __commonJS({ + "sdk/contracts/node_modules/ramda/src/unwind.js"(exports, module) { + var _curry2 = require_curry2(); + var _isArray = require_isArray(); + var _map = require_map(); + var _assoc = require_assoc(); + var unwind = /* @__PURE__ */ _curry2(function(key, object) { + if (!(key in object && _isArray(object[key]))) { + return [object]; + } + return _map(function(item) { + return _assoc(key, item, object); + }, object[key]); + }); + module.exports = unwind; + } + }); + + // sdk/contracts/node_modules/ramda/src/valuesIn.js + var require_valuesIn = __commonJS({ + "sdk/contracts/node_modules/ramda/src/valuesIn.js"(exports, module) { + var _curry1 = require_curry1(); + var valuesIn = /* @__PURE__ */ _curry1(function valuesIn2(obj) { + var prop; + var vs = []; + for (prop in obj) { + vs[vs.length] = obj[prop]; + } + return vs; + }); + module.exports = valuesIn; + } + }); + + // sdk/contracts/node_modules/ramda/src/view.js + var require_view = __commonJS({ + "sdk/contracts/node_modules/ramda/src/view.js"(exports, module) { + var _curry2 = require_curry2(); + var Const = function(x) { + return { + value: x, + "fantasy-land/map": function() { + return this; + } + }; + }; + var view = /* @__PURE__ */ _curry2(function view2(lens, x) { + return lens(Const)(x).value; + }); + module.exports = view; + } + }); + + // sdk/contracts/node_modules/ramda/src/when.js + var require_when = __commonJS({ + "sdk/contracts/node_modules/ramda/src/when.js"(exports, module) { + var _curry3 = require_curry3(); + var when = /* @__PURE__ */ _curry3(function when2(pred, whenTrueFn, x) { + return pred(x) ? whenTrueFn(x) : x; + }); + module.exports = when; + } + }); + + // sdk/contracts/node_modules/ramda/src/where.js + var require_where = __commonJS({ + "sdk/contracts/node_modules/ramda/src/where.js"(exports, module) { + var _curry2 = require_curry2(); + var _has = require_has(); + var where = /* @__PURE__ */ _curry2(function where2(spec, testObj) { + for (var prop in spec) { + if (_has(prop, spec) && !spec[prop](testObj[prop])) { + return false; + } + } + return true; + }); + module.exports = where; + } + }); + + // sdk/contracts/node_modules/ramda/src/whereAny.js + var require_whereAny = __commonJS({ + "sdk/contracts/node_modules/ramda/src/whereAny.js"(exports, module) { + var _curry2 = require_curry2(); + var _has = require_has(); + var whereAny = /* @__PURE__ */ _curry2(function whereAny2(spec, testObj) { + for (var prop in spec) { + if (_has(prop, spec) && spec[prop](testObj[prop])) { + return true; + } + } + return false; + }); + module.exports = whereAny; + } + }); + + // sdk/contracts/node_modules/ramda/src/whereEq.js + var require_whereEq = __commonJS({ + "sdk/contracts/node_modules/ramda/src/whereEq.js"(exports, module) { + var _curry2 = require_curry2(); + var equals = require_equals2(); + var map = require_map2(); + var where = require_where(); + var whereEq = /* @__PURE__ */ _curry2(function whereEq2(spec, testObj) { + return where(map(equals, spec), testObj); + }); + module.exports = whereEq; + } + }); + + // sdk/contracts/node_modules/ramda/src/without.js + var require_without = __commonJS({ + "sdk/contracts/node_modules/ramda/src/without.js"(exports, module) { + var _includes = require_includes(); + var _curry2 = require_curry2(); + var flip = require_flip(); + var reject = require_reject(); + var without = /* @__PURE__ */ _curry2(function(xs, list) { + return reject(flip(_includes)(xs), list); + }); + module.exports = without; + } + }); + + // sdk/contracts/node_modules/ramda/src/xor.js + var require_xor = __commonJS({ + "sdk/contracts/node_modules/ramda/src/xor.js"(exports, module) { + var _curry2 = require_curry2(); + var xor = /* @__PURE__ */ _curry2(function xor2(a, b) { + return Boolean(!a ^ !b); + }); + module.exports = xor; + } + }); + + // sdk/contracts/node_modules/ramda/src/xprod.js + var require_xprod = __commonJS({ + "sdk/contracts/node_modules/ramda/src/xprod.js"(exports, module) { + var _curry2 = require_curry2(); + var xprod = /* @__PURE__ */ _curry2(function xprod2(a, b) { + var idx = 0; + var ilen = a.length; + var j; + var jlen = b.length; + var result = []; + while (idx < ilen) { + j = 0; + while (j < jlen) { + result[result.length] = [a[idx], b[j]]; + j += 1; + } + idx += 1; + } + return result; + }); + module.exports = xprod; + } + }); + + // sdk/contracts/node_modules/ramda/src/zip.js + var require_zip = __commonJS({ + "sdk/contracts/node_modules/ramda/src/zip.js"(exports, module) { + var _curry2 = require_curry2(); + var zip = /* @__PURE__ */ _curry2(function zip2(a, b) { + var rv = []; + var idx = 0; + var len = Math.min(a.length, b.length); + while (idx < len) { + rv[idx] = [a[idx], b[idx]]; + idx += 1; + } + return rv; + }); + module.exports = zip; + } + }); + + // sdk/contracts/node_modules/ramda/src/zipObj.js + var require_zipObj = __commonJS({ + "sdk/contracts/node_modules/ramda/src/zipObj.js"(exports, module) { + var _curry2 = require_curry2(); + var zipObj = /* @__PURE__ */ _curry2(function zipObj2(keys, values) { + var idx = 0; + var len = Math.min(keys.length, values.length); + var out = {}; + while (idx < len) { + out[keys[idx]] = values[idx]; + idx += 1; + } + return out; + }); + module.exports = zipObj; + } + }); + + // sdk/contracts/node_modules/ramda/src/zipWith.js + var require_zipWith = __commonJS({ + "sdk/contracts/node_modules/ramda/src/zipWith.js"(exports, module) { + var _curry3 = require_curry3(); + var zipWith = /* @__PURE__ */ _curry3(function zipWith2(fn, a, b) { + var rv = []; + var idx = 0; + var len = Math.min(a.length, b.length); + while (idx < len) { + rv[idx] = fn(a[idx], b[idx]); + idx += 1; + } + return rv; + }); + module.exports = zipWith; + } + }); + + // sdk/contracts/node_modules/ramda/src/thunkify.js + var require_thunkify = __commonJS({ + "sdk/contracts/node_modules/ramda/src/thunkify.js"(exports, module) { + var curryN = require_curryN2(); + var _curry1 = require_curry1(); + var thunkify = /* @__PURE__ */ _curry1(function thunkify2(fn) { + return curryN(fn.length, function createThunk() { + var fnArgs = arguments; + return function invokeThunk() { + return fn.apply(this, fnArgs); + }; + }); + }); + module.exports = thunkify; + } + }); + + // sdk/contracts/node_modules/ramda/src/index.js + var require_src = __commonJS({ + "sdk/contracts/node_modules/ramda/src/index.js"(exports, module) { + module.exports = {}; + module.exports.F = require_F(); + module.exports.T = require_T(); + module.exports.__ = require__(); + module.exports.add = require_add(); + module.exports.addIndex = require_addIndex(); + module.exports.adjust = require_adjust(); + module.exports.all = require_all(); + module.exports.allPass = require_allPass(); + module.exports.always = require_always(); + module.exports.and = require_and(); + module.exports.any = require_any(); + module.exports.anyPass = require_anyPass(); + module.exports.ap = require_ap(); + module.exports.aperture = require_aperture2(); + module.exports.append = require_append(); + module.exports.apply = require_apply(); + module.exports.applySpec = require_applySpec(); + module.exports.applyTo = require_applyTo(); + module.exports.ascend = require_ascend(); + module.exports.assoc = require_assoc2(); + module.exports.assocPath = require_assocPath(); + module.exports.binary = require_binary(); + module.exports.bind = require_bind(); + module.exports.both = require_both(); + module.exports.call = require_call(); + module.exports.chain = require_chain(); + module.exports.clamp = require_clamp(); + module.exports.clone = require_clone2(); + module.exports.collectBy = require_collectBy(); + module.exports.comparator = require_comparator(); + module.exports.complement = require_complement(); + module.exports.compose = require_compose(); + module.exports.composeWith = require_composeWith(); + module.exports.concat = require_concat2(); + module.exports.cond = require_cond(); + module.exports.construct = require_construct(); + module.exports.constructN = require_constructN(); + module.exports.converge = require_converge(); + module.exports.count = require_count(); + module.exports.countBy = require_countBy(); + module.exports.curry = require_curry(); + module.exports.curryN = require_curryN2(); + module.exports.dec = require_dec(); + module.exports.defaultTo = require_defaultTo(); + module.exports.descend = require_descend(); + module.exports.difference = require_difference(); + module.exports.differenceWith = require_differenceWith(); + module.exports.dissoc = require_dissoc2(); + module.exports.dissocPath = require_dissocPath(); + module.exports.divide = require_divide(); + module.exports.drop = require_drop(); + module.exports.dropLast = require_dropLast2(); + module.exports.dropLastWhile = require_dropLastWhile2(); + module.exports.dropRepeats = require_dropRepeats(); + module.exports.dropRepeatsWith = require_dropRepeatsWith(); + module.exports.dropWhile = require_dropWhile(); + module.exports.either = require_either(); + module.exports.empty = require_empty(); + module.exports.endsWith = require_endsWith(); + module.exports.eqBy = require_eqBy(); + module.exports.eqProps = require_eqProps(); + module.exports.equals = require_equals2(); + module.exports.evolve = require_evolve(); + module.exports.filter = require_filter2(); + module.exports.find = require_find(); + module.exports.findIndex = require_findIndex(); + module.exports.findLast = require_findLast(); + module.exports.findLastIndex = require_findLastIndex(); + module.exports.flatten = require_flatten(); + module.exports.flip = require_flip(); + module.exports.forEach = require_forEach(); + module.exports.forEachObjIndexed = require_forEachObjIndexed(); + module.exports.fromPairs = require_fromPairs(); + module.exports.groupBy = require_groupBy(); + module.exports.groupWith = require_groupWith(); + module.exports.gt = require_gt(); + module.exports.gte = require_gte(); + module.exports.has = require_has2(); + module.exports.hasIn = require_hasIn(); + module.exports.hasPath = require_hasPath(); + module.exports.head = require_head(); + module.exports.identical = require_identical(); + module.exports.identity = require_identity2(); + module.exports.ifElse = require_ifElse(); + module.exports.inc = require_inc(); + module.exports.includes = require_includes2(); + module.exports.indexBy = require_indexBy(); + module.exports.indexOf = require_indexOf2(); + module.exports.init = require_init(); + module.exports.innerJoin = require_innerJoin(); + module.exports.insert = require_insert(); + module.exports.insertAll = require_insertAll(); + module.exports.intersection = require_intersection(); + module.exports.intersperse = require_intersperse(); + module.exports.into = require_into(); + module.exports.invert = require_invert(); + module.exports.invertObj = require_invertObj(); + module.exports.invoker = require_invoker(); + module.exports.is = require_is(); + module.exports.isEmpty = require_isEmpty(); + module.exports.isNil = require_isNil(); + module.exports.join = require_join(); + module.exports.juxt = require_juxt(); + module.exports.keys = require_keys(); + module.exports.keysIn = require_keysIn(); + module.exports.last = require_last(); + module.exports.lastIndexOf = require_lastIndexOf(); + module.exports.length = require_length(); + module.exports.lens = require_lens(); + module.exports.lensIndex = require_lensIndex(); + module.exports.lensPath = require_lensPath(); + module.exports.lensProp = require_lensProp(); + module.exports.lift = require_lift(); + module.exports.liftN = require_liftN(); + module.exports.lt = require_lt(); + module.exports.lte = require_lte(); + module.exports.map = require_map2(); + module.exports.mapAccum = require_mapAccum(); + module.exports.mapAccumRight = require_mapAccumRight(); + module.exports.mapObjIndexed = require_mapObjIndexed(); + module.exports.match = require_match(); + module.exports.mathMod = require_mathMod(); + module.exports.max = require_max(); + module.exports.maxBy = require_maxBy(); + module.exports.mean = require_mean(); + module.exports.median = require_median(); + module.exports.memoizeWith = require_memoizeWith(); + module.exports.mergeAll = require_mergeAll(); + module.exports.mergeDeepLeft = require_mergeDeepLeft(); + module.exports.mergeDeepRight = require_mergeDeepRight(); + module.exports.mergeDeepWith = require_mergeDeepWith(); + module.exports.mergeDeepWithKey = require_mergeDeepWithKey(); + module.exports.mergeLeft = require_mergeLeft(); + module.exports.mergeRight = require_mergeRight(); + module.exports.mergeWith = require_mergeWith(); + module.exports.mergeWithKey = require_mergeWithKey(); + module.exports.min = require_min(); + module.exports.minBy = require_minBy(); + module.exports.modify = require_modify2(); + module.exports.modifyPath = require_modifyPath(); + module.exports.modulo = require_modulo(); + module.exports.move = require_move(); + module.exports.multiply = require_multiply(); + module.exports.nAry = require_nAry(); + module.exports.partialObject = require_partialObject(); + module.exports.negate = require_negate(); + module.exports.none = require_none(); + module.exports.not = require_not(); + module.exports.nth = require_nth(); + module.exports.nthArg = require_nthArg(); + module.exports.o = require_o(); + module.exports.objOf = require_objOf(); + module.exports.of = require_of2(); + module.exports.omit = require_omit(); + module.exports.on = require_on(); + module.exports.once = require_once(); + module.exports.or = require_or(); + module.exports.otherwise = require_otherwise(); + module.exports.over = require_over(); + module.exports.pair = require_pair(); + module.exports.partial = require_partial(); + module.exports.partialRight = require_partialRight(); + module.exports.partition = require_partition(); + module.exports.path = require_path(); + module.exports.paths = require_paths(); + module.exports.pathEq = require_pathEq(); + module.exports.pathOr = require_pathOr(); + module.exports.pathSatisfies = require_pathSatisfies(); + module.exports.pick = require_pick(); + module.exports.pickAll = require_pickAll(); + module.exports.pickBy = require_pickBy(); + module.exports.pipe = require_pipe2(); + module.exports.pipeWith = require_pipeWith(); + module.exports.pluck = require_pluck(); + module.exports.prepend = require_prepend(); + module.exports.product = require_product(); + module.exports.project = require_project(); + module.exports.promap = require_promap2(); + module.exports.prop = require_prop(); + module.exports.propEq = require_propEq(); + module.exports.propIs = require_propIs(); + module.exports.propOr = require_propOr(); + module.exports.propSatisfies = require_propSatisfies(); + module.exports.props = require_props(); + module.exports.range = require_range(); + module.exports.reduce = require_reduce2(); + module.exports.reduceBy = require_reduceBy(); + module.exports.reduceRight = require_reduceRight(); + module.exports.reduceWhile = require_reduceWhile(); + module.exports.reduced = require_reduced2(); + module.exports.reject = require_reject(); + module.exports.remove = require_remove(); + module.exports.repeat = require_repeat(); + module.exports.replace = require_replace(); + module.exports.reverse = require_reverse(); + module.exports.scan = require_scan(); + module.exports.sequence = require_sequence(); + module.exports.set = require_set(); + module.exports.slice = require_slice(); + module.exports.sort = require_sort(); + module.exports.sortBy = require_sortBy(); + module.exports.sortWith = require_sortWith(); + module.exports.split = require_split(); + module.exports.splitAt = require_splitAt(); + module.exports.splitEvery = require_splitEvery(); + module.exports.splitWhen = require_splitWhen(); + module.exports.splitWhenever = require_splitWhenever(); + module.exports.startsWith = require_startsWith(); + module.exports.subtract = require_subtract(); + module.exports.sum = require_sum(); + module.exports.symmetricDifference = require_symmetricDifference(); + module.exports.symmetricDifferenceWith = require_symmetricDifferenceWith(); + module.exports.tail = require_tail(); + module.exports.take = require_take(); + module.exports.takeLast = require_takeLast(); + module.exports.takeLastWhile = require_takeLastWhile(); + module.exports.takeWhile = require_takeWhile(); + module.exports.tap = require_tap(); + module.exports.test = require_test(); + module.exports.andThen = require_andThen(); + module.exports.times = require_times(); + module.exports.toLower = require_toLower(); + module.exports.toPairs = require_toPairs(); + module.exports.toPairsIn = require_toPairsIn(); + module.exports.toString = require_toString2(); + module.exports.toUpper = require_toUpper(); + module.exports.transduce = require_transduce(); + module.exports.transpose = require_transpose(); + module.exports.traverse = require_traverse(); + module.exports.trim = require_trim(); + module.exports.tryCatch = require_tryCatch(); + module.exports.type = require_type(); + module.exports.unapply = require_unapply(); + module.exports.unary = require_unary(); + module.exports.uncurryN = require_uncurryN(); + module.exports.unfold = require_unfold(); + module.exports.union = require_union(); + module.exports.unionWith = require_unionWith(); + module.exports.uniq = require_uniq(); + module.exports.uniqBy = require_uniqBy(); + module.exports.uniqWith = require_uniqWith(); + module.exports.unless = require_unless(); + module.exports.unnest = require_unnest(); + module.exports.until = require_until(); + module.exports.unwind = require_unwind(); + module.exports.update = require_update(); + module.exports.useWith = require_useWith(); + module.exports.values = require_values(); + module.exports.valuesIn = require_valuesIn(); + module.exports.view = require_view(); + module.exports.when = require_when(); + module.exports.where = require_where(); + module.exports.whereAny = require_whereAny(); + module.exports.whereEq = require_whereEq(); + module.exports.without = require_without(); + module.exports.xor = require_xor(); + module.exports.xprod = require_xprod(); + module.exports.zip = require_zip(); + module.exports.zipObj = require_zipObj(); + module.exports.zipWith = require_zipWith(); + module.exports.thunkify = require_thunkify(); + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getCrons.js + var require_getCrons = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getCrons.js"(exports, module) { + var { isNil } = require_src(); + var getCrons = async (state, action) => { + if (isNil(state.crons)) { + state.crons = { lastExecuted: Math.round(Date.now() / 1e3), crons: {} }; + } + return { + result: state.crons + }; + }; + module.exports = { getCrons }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getAlgorithms.js + var require_getAlgorithms = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getAlgorithms.js"(exports, module) { + var { isNil } = require_src(); + var getAlgorithms = async (state, action) => { + if (isNil(state.auth.algorithms)) { + state.auth.algorithms = ["secp256k1", "ed25519", "rsa256", "poseidon"]; + } + return { result: state.auth.algorithms }; + }; + module.exports = { getAlgorithms }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getLinkedContract.js + var require_getLinkedContract = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getLinkedContract.js"(exports, module) { + var getLinkedContract = async (state, action) => { + const contracts = state.contracts || {}; + return { result: contracts[action.input.query[0]] || null }; + }; + module.exports = { getLinkedContract }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getOwner.js + var require_getOwner = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getOwner.js"(exports, module) { + var { is, of } = require_src(); + var getOwner = async (state, action) => { + let owner = state.owner || []; + if (is(String)(owner)) + owner = of(owner); + return { result: owner }; + }; + module.exports = { getOwner }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getRelayerJob.js + var require_getRelayerJob = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getRelayerJob.js"(exports, module) { + var getRelayerJob = async (state, action) => { + const jobs = state.relayers || {}; + return { result: jobs[action.input.query[0]] || null }; + }; + module.exports = { getRelayerJob }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/listRelayerJobs.js + var require_listRelayerJobs = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/listRelayerJobs.js"(exports, module) { + var { keys } = require_src(); + var listRelayerJobs = async (state, action) => { + return { result: keys(state.relayers || {}) }; + }; + module.exports = { listRelayerJobs }; + } + }); + + // sdk/contracts/node_modules/fpjson-lang/dist/cjs/index.js + var require_cjs = __commonJS({ + "sdk/contracts/node_modules/fpjson-lang/dist/cjs/index.js"(exports, module) { + var m = Object.create; + var u = Object.defineProperty; + var v = Object.getOwnPropertyDescriptor; + var A = Object.getOwnPropertyNames; + var j = Object.getPrototypeOf; + var $ = Object.prototype.hasOwnProperty; + var p = (i, s) => { + for (var R in s) + u(i, R, { get: s[R], enumerable: true }); + }; + var b = (i, s, R, o) => { + if (s && typeof s == "object" || typeof s == "function") + for (let f of A(s)) + !$.call(i, f) && f !== R && u(i, f, { get: () => s[f], enumerable: !(o = v(s, f)) || o.enumerable }); + return i; + }; + var O = (i, s, R) => (R = i != null ? m(j(i)) : {}, b(s || !i || !i.__esModule ? u(R, "default", { value: i, enumerable: true }) : R, i)); + var S = (i) => b(u({}, "__esModule", { value: true }), i); + var x = {}; + p(x, { default: () => w }); + module.exports = S(x); + var e = O(require_src(), 1); + var N = { Object, Array, String, Number, Boolean }; + var g = (i) => typeof i == "function"; + var c = (i, s = {}) => { + if (e.isNil(i)) + return i; + let R = e.curry((t) => { + if (e.is(Array, t)) { + let r = []; + for (let n of t) + r.push(R(n)); + return r; + } else if (e.is(Object, t)) { + let r = {}; + for (let n in t) + r[n] = R(t[n]); + return r; + } else + return e.is(String, t) ? t[0] === "%" ? e.tail(t) : (/^\$/.test(t) && (t = o(e.tail(t), true)), e.path(t.split("."))(s)) : t; + }), o = e.curry((t, r) => R(t)), f = e.curry((t, r) => { + let n = s; + /^\$/.test(t) && (t = o(e.tail(t), true)); + let _2 = t.split("."); + for (let y of e.init(_2)) + e.isNil(n[y]) && (n[y] = {}), n = n[y]; + return n[e.last(_2)] = r, r; + }), l = null; + if (g(i[0])) { + let t = e.tail(i); + l = i[0](...t); + } else + e.is(Array)(i) && i.length === 1 && i[0] === "__" ? l = e.__ : i[0] === "typ" ? l = N[i[1]] : i[0] === "reg" ? l = new RegExp(...e.tail(i)) : e.is(Array)(i) && (e.includes(i[0])(["let", "var", "$"]) || g(e[i[0]])) ? (l = e.compose(e.ifElse(e.o(e.gt(e.__, 0), e.length), e.apply(i[0] === "$" ? R : i[0] === "var" ? o : i[0] === "let" ? f : e[i[0]]), e.always(e[i[0]])), e.map((t) => c(t, s)), e.tail)(i), l = typeof l > "u" ? [] : l) : e.is(Object)(i) && e.is(String)(i.var) ? l = e.path(i.var.split("."))(s) : e.is(Array)(i) || e.is(Object)(i) ? l = e.map((t) => c(t, s))(i) : l = i; + let a = null; + return e.is(Array)(l) && e.is(String)(l[0]) && l[0] === "[]" ? a = e.tail(l) : a = g(l?.[0]) ? c(l, s) : l, a; + }; + var w = c; + } + }); + + // sdk/contracts/weavedb-bpt/lib/md5.js + var require_md5 = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/md5.js"(exports, module) { + var md5 = function(e) { + function h(a2, b2) { + var c2, d2, e2, f2, g; + e2 = a2 & 2147483648; + f2 = b2 & 2147483648; + c2 = a2 & 1073741824; + d2 = b2 & 1073741824; + g = (a2 & 1073741823) + (b2 & 1073741823); + return c2 & d2 ? g ^ 2147483648 ^ e2 ^ f2 : c2 | d2 ? g & 1073741824 ? g ^ 3221225472 ^ e2 ^ f2 : g ^ 1073741824 ^ e2 ^ f2 : g ^ e2 ^ f2; + } + function k(a2, b2, c2, d2, e2, f2, g) { + a2 = h(a2, h(h(b2 & c2 | ~b2 & d2, e2), g)); + return h(a2 << f2 | a2 >>> 32 - f2, b2); + } + function l(a2, b2, c2, d2, e2, f2, g) { + a2 = h(a2, h(h(b2 & d2 | c2 & ~d2, e2), g)); + return h(a2 << f2 | a2 >>> 32 - f2, b2); + } + function m(a2, b2, d2, c2, e2, f2, g) { + a2 = h(a2, h(h(b2 ^ d2 ^ c2, e2), g)); + return h(a2 << f2 | a2 >>> 32 - f2, b2); + } + function n(a2, b2, d2, c2, e2, f2, g) { + a2 = h(a2, h(h(d2 ^ (b2 | ~c2), e2), g)); + return h(a2 << f2 | a2 >>> 32 - f2, b2); + } + function p(a2) { + var b2 = "", d2 = "", c2; + for (c2 = 0; 3 >= c2; c2++) + d2 = a2 >>> 8 * c2 & 255, d2 = "0" + d2.toString(16), b2 += d2.substr(d2.length - 2, 2); + return b2; + } + var f = [], q, r, s, t, a, b, c, d; + e = function(a2) { + a2 = a2.replace(/\r\n/g, "\n"); + for (var b2 = "", d2 = 0; d2 < a2.length; d2++) { + var c2 = a2.charCodeAt(d2); + 128 > c2 ? b2 += String.fromCharCode(c2) : (127 < c2 && 2048 > c2 ? b2 += String.fromCharCode(c2 >> 6 | 192) : (b2 += String.fromCharCode(c2 >> 12 | 224), b2 += String.fromCharCode(c2 >> 6 & 63 | 128)), b2 += String.fromCharCode(c2 & 63 | 128)); + } + return b2; + }(e); + f = function(b2) { + var a2, c2 = b2.length; + a2 = c2 + 8; + for (var d2 = 16 * ((a2 - a2 % 64) / 64 + 1), e2 = Array(d2 - 1), f2 = 0, g = 0; g < c2; ) + a2 = (g - g % 4) / 4, f2 = g % 4 * 8, e2[a2] |= b2.charCodeAt(g) << f2, g++; + a2 = (g - g % 4) / 4; + e2[a2] |= 128 << g % 4 * 8; + e2[d2 - 2] = c2 << 3; + e2[d2 - 1] = c2 >>> 29; + return e2; + }(e); + a = 1732584193; + b = 4023233417; + c = 2562383102; + d = 271733878; + for (e = 0; e < f.length; e += 16) + q = a, r = b, s = c, t = d, a = k(a, b, c, d, f[e + 0], 7, 3614090360), d = k(d, a, b, c, f[e + 1], 12, 3905402710), c = k(c, d, a, b, f[e + 2], 17, 606105819), b = k(b, c, d, a, f[e + 3], 22, 3250441966), a = k(a, b, c, d, f[e + 4], 7, 4118548399), d = k(d, a, b, c, f[e + 5], 12, 1200080426), c = k(c, d, a, b, f[e + 6], 17, 2821735955), b = k(b, c, d, a, f[e + 7], 22, 4249261313), a = k(a, b, c, d, f[e + 8], 7, 1770035416), d = k(d, a, b, c, f[e + 9], 12, 2336552879), c = k(c, d, a, b, f[e + 10], 17, 4294925233), b = k(b, c, d, a, f[e + 11], 22, 2304563134), a = k(a, b, c, d, f[e + 12], 7, 1804603682), d = k(d, a, b, c, f[e + 13], 12, 4254626195), c = k(c, d, a, b, f[e + 14], 17, 2792965006), b = k(b, c, d, a, f[e + 15], 22, 1236535329), a = l(a, b, c, d, f[e + 1], 5, 4129170786), d = l(d, a, b, c, f[e + 6], 9, 3225465664), c = l(c, d, a, b, f[e + 11], 14, 643717713), b = l(b, c, d, a, f[e + 0], 20, 3921069994), a = l(a, b, c, d, f[e + 5], 5, 3593408605), d = l(d, a, b, c, f[e + 10], 9, 38016083), c = l(c, d, a, b, f[e + 15], 14, 3634488961), b = l(b, c, d, a, f[e + 4], 20, 3889429448), a = l(a, b, c, d, f[e + 9], 5, 568446438), d = l(d, a, b, c, f[e + 14], 9, 3275163606), c = l(c, d, a, b, f[e + 3], 14, 4107603335), b = l(b, c, d, a, f[e + 8], 20, 1163531501), a = l(a, b, c, d, f[e + 13], 5, 2850285829), d = l(d, a, b, c, f[e + 2], 9, 4243563512), c = l(c, d, a, b, f[e + 7], 14, 1735328473), b = l(b, c, d, a, f[e + 12], 20, 2368359562), a = m(a, b, c, d, f[e + 5], 4, 4294588738), d = m(d, a, b, c, f[e + 8], 11, 2272392833), c = m(c, d, a, b, f[e + 11], 16, 1839030562), b = m(b, c, d, a, f[e + 14], 23, 4259657740), a = m(a, b, c, d, f[e + 1], 4, 2763975236), d = m(d, a, b, c, f[e + 4], 11, 1272893353), c = m(c, d, a, b, f[e + 7], 16, 4139469664), b = m(b, c, d, a, f[e + 10], 23, 3200236656), a = m(a, b, c, d, f[e + 13], 4, 681279174), d = m(d, a, b, c, f[e + 0], 11, 3936430074), c = m(c, d, a, b, f[e + 3], 16, 3572445317), b = m(b, c, d, a, f[e + 6], 23, 76029189), a = m(a, b, c, d, f[e + 9], 4, 3654602809), d = m(d, a, b, c, f[e + 12], 11, 3873151461), c = m(c, d, a, b, f[e + 15], 16, 530742520), b = m(b, c, d, a, f[e + 2], 23, 3299628645), a = n(a, b, c, d, f[e + 0], 6, 4096336452), d = n(d, a, b, c, f[e + 7], 10, 1126891415), c = n(c, d, a, b, f[e + 14], 15, 2878612391), b = n(b, c, d, a, f[e + 5], 21, 4237533241), a = n(a, b, c, d, f[e + 12], 6, 1700485571), d = n(d, a, b, c, f[e + 3], 10, 2399980690), c = n(c, d, a, b, f[e + 10], 15, 4293915773), b = n(b, c, d, a, f[e + 1], 21, 2240044497), a = n(a, b, c, d, f[e + 8], 6, 1873313359), d = n(d, a, b, c, f[e + 15], 10, 4264355552), c = n(c, d, a, b, f[e + 6], 15, 2734768916), b = n(b, c, d, a, f[e + 13], 21, 1309151649), a = n(a, b, c, d, f[e + 4], 6, 4149444226), d = n(d, a, b, c, f[e + 11], 10, 3174756917), c = n(c, d, a, b, f[e + 2], 15, 718787259), b = n(b, c, d, a, f[e + 9], 21, 3951481745), a = h(a, q), b = h(b, r), c = h(c, s), d = h(d, t); + return (p(a) + p(b) + p(c) + p(d)).toLowerCase(); + }; + module.exports = md5; + } + }); + + // sdk/contracts/weavedb-bpt/lib/pure.js + var require_pure = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/pure.js"(exports, module) { + var { + complement, + concat, + without, + split, + uniq, + path: _path, + map, + isNil, + keys, + difference, + intersection, + is, + tail + } = require_src(); + var fpjson = require_cjs(); + fpjson = fpjson.default || fpjson; + var isValidID = (str) => /^[^\/]+$/.test(str) && !/^__.*__+$/.test(str) && !/^\.{1,2}$/.test(str); + var isValidLen = (str, len) => len ? len >= str.length : Buffer.byteLength(str, "utf8") <= 1500; + var isReserved = (str) => str === "__tokens__" || str === "__bridge__"; + var isValidDocName = (str, state) => { + return isValidID(str) && isValidLen(str, state.max_doc_id_length); + }; + var isValidName = (str, state) => { + return isReserved(str) || isValidID(str) && isValidLen(str, state.max_collection_id_length); + }; + var clone = (state) => JSON.parse(JSON.stringify(state)); + var replace$ = (arrs) => { + if (typeof arrs === "string") { + return arrs.slice(0, 2) === "l$" ? ["toLower", { var: arrs.slice(2) }] : arrs.slice(0, 2) === "u$" ? ["toUpper", { var: arrs.slice(2) }] : arrs.slice(0, 2) === "o$" ? [["complement", ["isNil"]], { var: arrs.slice(2) }] : arrs.slice(0, 2) === "x$" ? ["isNil", { var: arrs.slice(2) }] : arrs.slice(0, 2) === "!$" ? ["not", { var: arrs.slice(2) }] : arrs.slice(0, 2) === "$$" ? tail(arrs) : arrs[0] === "$" ? { var: tail(arrs) } : arrs; + } else if (is(Array, arrs)) { + if (arrs[0] === "toBatchAll") { + return [ + [ + "pipe", + ["var", "batch"], + ["concat", ["__"], arrs[1]], + ["let", "batch"] + ] + ]; + } else if (arrs[0] === "toBatch") { + return [ + "pipe", + ["var", "batch"], + ["append", ["[]", ...arrs[1]]], + ["let", "batch"] + ]; + } else { + for (const [i, v] of arrs.entries()) + arrs[i] = replace$(v); + } + } else if (typeof arrs === "object") { + for (let k in arrs) + arrs[k] = replace$(arrs[k]); + } + return arrs; + }; + function bigIntFromBytes(byteArr) { + let hexString = ""; + for (const byte of byteArr) { + hexString += byte.toString(16).padStart(2, "0"); + } + return BigInt("0x" + hexString); + } + var setElm = (k, d, rule_data) => { + let obj = rule_data; + let elm_path = k.split("#")[0].split("."); + for (const [i, field] of elm_path.entries()) { + if (i === elm_path.length - 1) { + if (is(Object)(d) && d.__op === "data") { + obj[field] = rule_data.request.auth.extra[d.key] ?? null; + } else if (is(Object)(d) && d.__op === "arrayUnion") { + if (complement(is)(Array, d.arr)) + throw Error("field is not array"); + if (complement(is)(Array, obj[field])) + obj[field] = []; + obj[field] = concat(obj[field], d.arr); + } else if (is(Object)(d) && d.__op === "arrayRemove") { + if (complement(is)(Array, d.arr)) + throw Error("field is not array"); + if (complement(is)(Array, obj[field])) + obj[field] = []; + obj[field] = without(d.arr, obj[field]); + } else if (is(Object)(d) && d.__op === "inc") { + if (isNaN(d.n)) + throw Error("field is not number"); + if (isNil(obj[field])) + obj[field] = 0; + obj[field] += d.n; + } else if (is(Object)(d) && d.__op === "del") { + delete obj[field]; + } else if (is(Object)(d) && d.__op === "ts") { + obj[field] = rule_data.ts; + } else if (is(Object)(d) && d.__op === "ms") { + obj[field] = rule_data.ms; + } else if (is(Object)(d) && d.__op === "signer") { + obj[field] = rule_data.signer; + } else { + obj[field] = d; + } + break; + } else if (isNil(obj[field])) + obj[field] = {}; + obj = obj[field]; + } + return obj; + }; + var parse = (query, vars) => { + if (is(Array, query)) { + query = map((v) => is(Object, v) ? parse(v, vars) : v)(query); + } else if (is(Object, query)) { + if (is(String, query.var)) { + return _path(query.var.split("."))(vars); + } else { + query = map((v) => parse(v, vars))(query); + } + } + return query; + }; + async function fpj(arr = [], obj = {}, fn = {}) { + const exec = (v) => fpjson(replace$(clone(v)), obj); + const cmd = async (arr2, ctx = {}) => { + let val = null; + let isBreak = false; + if (!is(Array, arr2)) { + val = exec(arr2); + } else if (/^=\$/.test(arr2[0])) { + ; + [val, isBreak] = await cmd(arr2[1]); + if (!isBreak) + setElm(arr2[0].replace(/^=\$/, ""), val, obj); + } else if (/^.+\(\)$/.test(arr2[0])) { + if (!isNil(fn[arr2[0].slice(0, -2)])) { + ; + [val, isBreak] = await fn[arr2[0].slice(0, -2)]( + parse(replace$(arr2[1]), obj), + obj, + setElm + ); + } else { + throw Error(`unknown function ${arr2[0]}`); + } + } else if (arr2[0] === "break") { + isBreak = true; + } else if (arr2[0] === "[]") { + for (let v of tail(arr2)) + await cmd(v); + } else if (arr2[0] === "if") { + if (exec(arr2[1])) { + if (typeof arr2[2] === "undefined") { + throw Error("wrong fpjson"); + } else { + ; + [val, isBreak] = await cmd(arr2[2]); + } + } else { + ; + [val, isBreak] = await cmd(arr2.slice(3), { if: true }); + } + } else if (arr2[0] === "else") { + if (ctx.if) { + ; + [val, isBreak] = await cmd(arr2[1]); + } else { + throw Error("wrong fpjson"); + } + } else if (arr2[0] === "elif") { + if (ctx.if) { + if (exec(arr2[1])) { + ; + [val, isBreak] = await cmd(arr2[2]); + } else { + ; + [val, isBreak] = await cmd(arr2.slice(3), { if: true }); + } + } else { + throw Error("wrong fpjson"); + } + } else { + val = exec(arr2); + } + return [val, isBreak]; + }; + for (const v of arr) { + const [val, isBreak] = await cmd(v); + if (isBreak) + break; + } + } + var ac_funcs = { + split: (v, obj, set) => { + let val = null; + let isBreak = false; + const elms = split(v[0], fpjson(v[1], obj)); + if (is(Array, v[2])) { + for (const [i2, v2] of elms.entries()) { + if (!isNil(v[2][i2]) && typeof v[2][i2] === "string" && /^=\$.+$/.test(v[2][i2])) { + set(v[2][i2].replace(/^=\$/, ""), v2, obj); + } + } + } + return [val, isBreak]; + }, + mod: (v, obj, set) => { + let val = null; + let isBreak = false; + for (const k3 in v) { + set(`new.${k3}`, fpjson(v[k3], obj), obj); + } + return [val, isBreak]; + }, + fields: (v, obj, set) => { + let val = null; + let isBreak = false; + let _keys = keys(obj.req); + let fields = []; + let required = []; + for (let v2 of v) { + const field = v2.replace(/^\*/, ""); + fields.push(field); + if (/^\*/.test(v2)) + required.push(field); + } + if (difference(_keys, fields).length > 0 || difference(required, _keys).length > 0) { + obj.request.allow = false; + isBreak = true; + } + return [val, isBreak]; + }, + required_fields: (v, obj, set) => { + let val = null; + let isBreak = false; + let _keys = keys(obj.req); + let fields = v; + if (difference(fields, _keys).length > 0) { + obj.request.allow = false; + isBreak = true; + } + return [val, isBreak]; + }, + disallowed_fields: (v, obj, set) => { + let val = null; + let isBreak = false; + let _keys = keys(obj.req); + let fields = v; + if (intersection(_keys, fields).length > 0) { + obj.request.allow = false; + isBreak = true; + } + return [val, isBreak]; + }, + denyifall: (v, obj, set) => { + let val = null; + let isBreak = false; + if (fpjson(["all", ["equals", true], v], obj)) { + obj.request.allow = false; + isBreak = true; + } + return [val, isBreak]; + }, + denyifany: (v, obj, set) => { + let val = null; + let isBreak = false; + if (fpjson(["any", ["equals", true], v], obj)) { + obj.request.allow = false; + isBreak = true; + } + return [val, isBreak]; + }, + allowifall: (v, obj, set) => { + let val = null; + let isBreak = false; + if (fpjson(["all", ["equals", true], v], obj)) { + obj.request.allow = true; + isBreak = true; + } + return [val, isBreak]; + }, + allow: (v, obj, set) => { + let val = null; + let isBreak = false; + obj.request.allow = true; + isBreak = true; + return [val, isBreak]; + }, + deny: (v, obj, set) => { + let val = null; + let isBreak = false; + obj.request.allow = false; + isBreak = true; + return [val, isBreak]; + }, + allowifany: (v, obj, set) => { + let val = null; + let isBreak = false; + if (fpjson(["any", ["equals", true], v], obj)) { + obj.request.allow = true; + isBreak = true; + } + return [val, isBreak]; + }, + denyif: (v, obj, set) => { + let val = null; + let isBreak = false; + if (fpjson(v, obj)) { + obj.request.allow = false; + isBreak = true; + } + return [val, isBreak]; + }, + allowif: (v, obj, set) => { + let val = null; + let isBreak = false; + if (fpjson(v, obj)) { + obj.request.allow = true; + isBreak = true; + } + return [val, isBreak]; + }, + breakif: (v, obj, set) => { + let val = null; + let isBreak = false; + if (fpjson(v, obj)) + isBreak = true; + return [val, isBreak]; + } + }; + module.exports = { + isValidName, + isValidDocName, + clone, + bigIntFromBytes, + replace$, + fpj, + ac_funcs, + setElm, + parse + }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/keccak.js + var require_keccak = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/keccak.js"(exports, module) { + function encode(str) { + var out = [], p = 0; + for (var i = 0; i < str.length; i++) { + var c = str.charCodeAt(i); + if (c < 128) { + out[p++] = c; + } else if (c < 2048) { + out[p++] = c >> 6 | 192; + out[p++] = c & 63 | 128; + } else if ((c & 64512) == 55296 && i + 1 < str.length && (str.charCodeAt(i + 1) & 64512) == 56320) { + c = 65536 + ((c & 1023) << 10) + (str.charCodeAt(++i) & 1023); + out[p++] = c >> 18 | 240; + out[p++] = c >> 12 & 63 | 128; + out[p++] = c >> 6 & 63 | 128; + out[p++] = c & 63 | 128; + } else { + out[p++] = c >> 12 | 224; + out[p++] = c >> 6 & 63 | 128; + out[p++] = c & 63 | 128; + } + } + return new Uint8Array(out); + } + function number(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error(`Wrong positive integer: ${n}`); + } + function bool(b) { + if (typeof b !== "boolean") + throw new Error(`Expected boolean, not ${b}`); + } + function bytes(b, ...lengths) { + if (!(b instanceof Uint8Array)) + throw new TypeError("Expected Uint8Array"); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new TypeError( + `Expected Uint8Array of length ${lengths}, not of length=${b.length}` + ); + } + function hash(hash2) { + if (typeof hash2 !== "function" || typeof hash2.create !== "function") + throw new Error("Hash should be wrapped by utils.wrapConstructor"); + number(hash2.outputLen); + number(hash2.blockLen); + } + function exists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error("Hash instance has been destroyed"); + if (checkFinished && instance.finished) + throw new Error("Hash#digest() has already been called"); + } + function output(out, instance) { + bytes(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error( + `digestInto() expects output buffer of length at least ${min}` + ); + } + } + var assert = { + number, + bool, + bytes, + hash, + exists, + output + }; + function utf8ToBytes(str) { + if (typeof str !== "string") { + throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`); + } + return encode(str); + } + function toBytes(data) { + if (typeof data === "string") + data = utf8ToBytes(data); + if (!(data instanceof Uint8Array)) + throw new TypeError( + `Expected input type is Uint8Array (got ${typeof data})` + ); + return data; + } + function wrapConstructor(hashConstructor) { + const hashC = (message) => { + return hashConstructor().update(toBytes(message)).digest(); + }; + const tmp = hashConstructor(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashConstructor(); + return hashC; + } + var U32_MASK64 = BigInt(2 ** 32 - 1); + var _32n = BigInt(32); + function fromBig(n, le = false) { + if (le) + return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) }; + return { + h: Number(n >> _32n & U32_MASK64) | 0, + l: Number(n & U32_MASK64) | 0 + }; + } + function split(lst, le = false) { + let Ah = new Uint32Array(lst.length); + let Al = new Uint32Array(lst.length); + for (let i = 0; i < lst.length; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; + } + var toBig = (h, l) => BigInt(h >>> 0) << _32n | BigInt(l >>> 0); + var shrSH = (h, l, s) => h >>> s; + var shrSL = (h, l, s) => h << 32 - s | l >>> s; + var rotrSH = (h, l, s) => h >>> s | l << 32 - s; + var rotrSL = (h, l, s) => h << 32 - s | l >>> s; + var rotrBH = (h, l, s) => h << 64 - s | l >>> s - 32; + var rotrBL = (h, l, s) => h >>> s - 32 | l << 64 - s; + var rotr32H = (h, l) => l; + var rotr32L = (h, l) => h; + var rotlSH = (h, l, s) => h << s | l >>> 32 - s; + var rotlSL = (h, l, s) => l << s | h >>> 32 - s; + var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s; + var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s; + function add(Ah, Al, Bh, Bl) { + const l = (Al >>> 0) + (Bl >>> 0); + return { h: Ah + Bh + (l / 2 ** 32 | 0) | 0, l: l | 0 }; + } + var add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0); + var add3H = (low, Ah, Bh, Ch) => Ah + Bh + Ch + (low / 2 ** 32 | 0) | 0; + var add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0); + var add4H = (low, Ah, Bh, Ch, Dh) => Ah + Bh + Ch + Dh + (low / 2 ** 32 | 0) | 0; + var add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0); + var add5H = (low, Ah, Bh, Ch, Dh, Eh) => Ah + Bh + Ch + Dh + Eh + (low / 2 ** 32 | 0) | 0; + var u64 = { + fromBig, + split, + toBig, + shrSH, + shrSL, + rotrSH, + rotrSL, + rotrBH, + rotrBL, + rotr32H, + rotr32L, + rotlSH, + rotlSL, + rotlBH, + rotlBL, + add, + add3L, + add3H, + add4L, + add4H, + add5H, + add5L + }; + var [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []]; + var _0n = BigInt(0); + var _1n = BigInt(1); + var _2n = BigInt(2); + var _7n = BigInt(7); + var _256n = BigInt(256); + var _0x71n = BigInt(113); + for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) { + ; + [x, y] = [y, (2 * x + 3 * y) % 5]; + SHA3_PI.push(2 * (5 * y + x)); + SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64); + let t = _0n; + for (let j = 0; j < 7; j++) { + R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n; + if (R & _2n) + t ^= _1n << (_1n << BigInt(j)) - _1n; + } + _SHA3_IOTA.push(t); + } + var [SHA3_IOTA_H, SHA3_IOTA_L] = u64.split(_SHA3_IOTA, true); + var rotlH = (h, l, s) => s > 32 ? u64.rotlBH(h, l, s) : u64.rotlSH(h, l, s); + var rotlL = (h, l, s) => s > 32 ? u64.rotlBL(h, l, s) : u64.rotlSL(h, l, s); + var u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); + function keccakP(s, rounds = 24) { + const B = new Uint32Array(5 * 2); + for (let round = 24 - rounds; round < 24; round++) { + for (let x = 0; x < 10; x++) + B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40]; + for (let x = 0; x < 10; x += 2) { + const idx1 = (x + 8) % 10; + const idx0 = (x + 2) % 10; + const B0 = B[idx0]; + const B1 = B[idx0 + 1]; + const Th = rotlH(B0, B1, 1) ^ B[idx1]; + const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1]; + for (let y = 0; y < 50; y += 10) { + s[x + y] ^= Th; + s[x + y + 1] ^= Tl; + } + } + let curH = s[2]; + let curL = s[3]; + for (let t = 0; t < 24; t++) { + const shift = SHA3_ROTL[t]; + const Th = rotlH(curH, curL, shift); + const Tl = rotlL(curH, curL, shift); + const PI = SHA3_PI[t]; + curH = s[PI]; + curL = s[PI + 1]; + s[PI] = Th; + s[PI + 1] = Tl; + } + for (let y = 0; y < 50; y += 10) { + for (let x = 0; x < 10; x++) + B[x] = s[y + x]; + for (let x = 0; x < 10; x++) + s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10]; + } + s[0] ^= SHA3_IOTA_H[round]; + s[1] ^= SHA3_IOTA_L[round]; + } + B.fill(0); + } + var Hash = class { + clone() { + return this._cloneInto(); + } + }; + var Keccak = class extends Hash { + constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) { + super(); + this.blockLen = blockLen; + this.suffix = suffix; + this.outputLen = outputLen; + this.enableXOF = enableXOF; + this.rounds = rounds; + this.pos = 0; + this.posOut = 0; + this.finished = false; + this.destroyed = false; + assert.number(outputLen); + if (0 >= this.blockLen || this.blockLen >= 200) + throw new Error("Sha3 supports only keccak-f1600 function"); + this.state = new Uint8Array(200); + this.state32 = u32(this.state); + } + keccak() { + keccakP(this.state32, this.rounds); + this.posOut = 0; + this.pos = 0; + } + update(data) { + assert.exists(this); + const { blockLen, state } = this; + data = toBytes(data); + const len = data.length; + for (let pos = 0; pos < len; ) { + const take = Math.min(blockLen - this.pos, len - pos); + for (let i = 0; i < take; i++) + state[this.pos++] ^= data[pos++]; + if (this.pos === blockLen) + this.keccak(); + } + return this; + } + finish() { + if (this.finished) + return; + this.finished = true; + const { state, suffix, pos, blockLen } = this; + state[pos] ^= suffix; + if ((suffix & 128) !== 0 && pos === blockLen - 1) + this.keccak(); + state[blockLen - 1] ^= 128; + this.keccak(); + } + writeInto(out) { + assert.exists(this, false); + assert.bytes(out); + this.finish(); + const bufferOut = this.state; + const { blockLen } = this; + for (let pos = 0, len = out.length; pos < len; ) { + if (this.posOut >= blockLen) + this.keccak(); + const take = Math.min(blockLen - this.posOut, len - pos); + out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos); + this.posOut += take; + pos += take; + } + return out; + } + xofInto(out) { + if (!this.enableXOF) + throw new Error("XOF is not possible for this instance"); + return this.writeInto(out); + } + xof(bytes2) { + assert.number(bytes2); + return this.xofInto(new Uint8Array(bytes2)); + } + digestInto(out) { + assert.output(out, this); + if (this.finished) + throw new Error("digest() was already called"); + this.writeInto(out); + this.destroy(); + return out; + } + digest() { + return this.digestInto(new Uint8Array(this.outputLen)); + } + destroy() { + this.destroyed = true; + this.state.fill(0); + } + _cloneInto(to) { + const { blockLen, suffix, outputLen, rounds, enableXOF } = this; + to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds)); + to.state32.set(this.state32); + to.pos = this.pos; + to.posOut = this.posOut; + to.finished = this.finished; + to.rounds = rounds; + to.suffix = suffix; + to.outputLen = outputLen; + to.enableXOF = enableXOF; + to.destroyed = this.destroyed; + return to; + } + }; + var gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen)); + var keccak_256 = gen(1, 136, 256 / 8); + function wrapHash(hash2) { + return (msg) => { + assert.bytes(msg); + return hash2(msg); + }; + } + var __ = () => { + const k = wrapHash(keccak_256); + k.create = keccak_256.create; + return k; + }; + var keccak256 = __(); + module.exports = { + keccak256, + output, + exists + }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/fn.js + var require_fn = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/fn.js"(exports, module) { + var { is, concat, map } = require_src(); + var { keccak256 } = require_keccak(); + function hash([bufs, bytes = 20]) { + let _bufs = map((v) => { + let type = "utf8"; + let val = v; + if (is(Array, v)) { + val = v[0]; + type = v[1] ?? "utf8"; + } + if (type === "hex" && val.startsWith("0x")) + val = val.slice(2); + return Buffer.from(val, type); + })(bufs); + return to64(keccak256(Buffer.concat(_bufs))); + } + function to64(from, type, bytes = 20) { + return Buffer.from(from, type).slice(0, bytes).toString("base64").replace(/\//g, "_").replace(/\+/g, "-"); + } + function toBase64([str, type = "hex", bytes = 20]) { + if (str.startsWith("0x")) + str = str.slice(2); + return to64(str, type, bytes); + } + module.exports = { + parse: async (str) => [JSON.parse(str), false], + stringfy: async (json) => [JSON.stringify(json), false], + toBatchAll: async (query, obj) => { + obj.batch = concat(obj.batch, query); + return [null, false]; + }, + toBatch: async (query, obj) => { + obj.batch.push(query); + return [null, false]; + }, + upsert: (execQuery) => async (query) => [await execQuery("upsert", query), false], + delete: (execQuery) => async (query) => [await execQuery("delete", query), false], + update: (execQuery) => async (query) => [await execQuery("update", query), false], + set: (execQuery) => async (query) => [await execQuery("set", query), false], + add: (execQuery) => async (query) => [await execQuery("add", query), false], + batch: (execQuery) => async (query, obj) => { + obj.batchExecuted = true; + return [await execQuery("batch", query), false]; + }, + toBase64: (query) => [toBase64(query), false], + hash: (query) => [hash(query), false] + }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/base.js + var require_base = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/base.js"(exports, module) { + var read = async (contract, param, SmartWeave2) => { + return (await SmartWeave2.contracts.viewContractState(contract, param)).result; + }; + var err = (msg = `The wrong query`, contractErr = false) => { + if (contractErr) { + const error = typeof ContractError === "undefined" ? Error : ContractError; + throw new error(msg); + } else { + throw msg; + } + }; + module.exports = { read, err }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/BPT.js + var require_BPT = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/BPT.js"(exports, module) { + var { + path, + is, + assoc, + compose, + pickAll, + pluck, + equals, + init, + concat, + without, + addIndex, + range, + splitAt, + tail, + indexOf, + last, + splitWhen, + lt, + objOf, + flatten, + zip, + median, + prop, + isNil, + map + } = require_src(); + var BPT = class { + constructor(order = 5, sort_fields = "number", kv, prefix, onCommit) { + this.kv = kv; + this.onCommit = onCommit; + this.order = order; + this.sort_fields = sort_fields; + this.max_vals = this.order - 1; + this.min_vals = Math.ceil(this.order / 2) - 1; + this.prefix = prefix; + } + get = async (key, stats, _prefix) => stats?.[key] ?? await this.kv.get(key, _prefix ?? `${this.prefix}/`); + put = async (key, val, stats, _prefix, nosave) => { + if (!isNil(stats)) { + stats[key] = val; + } else { + await this.kv.put(key, val, _prefix ?? `${this.prefix}/`, nosave); + } + }; + del = async (key, stats, _prefix, nosave) => { + if (!isNil(stats)) { + stats[key] = { __del__: true }; + } else { + await this.kv.del(key, _prefix ?? `${this.prefix}/`, nosave); + } + }; + putData = async (key, val, stats, signer = null) => { + const obj = { setter: signer, val }; + if (!isNil(stats)) { + stats[`data/${key}`] = obj; + } else { + await this.put(`data/${key}`, obj, stats, ""); + } + }; + delData = async (key, stats) => { + if (!isNil(stats)) { + stats[`data/${key}`] = { __del__: true }; + } else { + await this.del(`data/${key}`, stats, ""); + } + }; + putNode = async (node, stats) => await this.put(node.id, node, stats); + data = async (key, cache = {}, stats) => { + if (typeof cache[key] !== "undefined") + return { + key, + val: cache[key]?.val ?? null, + setter: cache[key]?.setter ?? null + }; + let _data = await this.get(`data/${key}`, stats, "") ?? null; + cache[key] = _data; + return { key, val: _data?.val ?? null, setter: _data?.setter ?? null }; + }; + root = async (stats) => await this.get("root", stats) ?? null; + setRoot = async (id, stats) => await this.put("root", id, stats) ?? null; + isOver = (node, plus = 0) => node.vals.length + plus > this.max_vals; + isUnder = (node, plus = 0) => node.vals.length + plus < this.min_vals; + wrap = (val, key) => { + let obj = { val }; + if (!isNil(val.__id__)) + obj.key = val.__id__; + if (!isNil(key)) + obj.key = key; + return obj; + }; + compArr(va, vb) { + const _va = is(Array, va) ? va : [va]; + const _vb = is(Array, vb) ? vb : [vb]; + let i = 0; + while (true) { + if (!equals(_va[i], _vb[i])) + return _va[i] < _vb[i] ? 1 : -1; + if (typeof _va[i] === "undefined" || typeof _vb[i] === "undefined") + break; + i++; + } + return 0; + } + comp(a, b, null_last = false, fields) { + fields ??= this.sort_fields; + if (typeof fields === "string") { + return a.val === b.val ? 0 : a.val < b.val ? 1 : -1; + } else { + for (const v of fields) { + const va = v[0] === "__id__" ? a.key : path(v[0].split("."), a.val) ?? null; + const vb = v[0] === "__id__" ? b.key : path(v[0].split("."), b.val) ?? null; + const bareComp = this.compArr(va, vb); + if (bareComp !== 0) { + return (isNil(va) ? (v[1] === "desc" ? -1 : 1) * (null_last ? -1 : 1) : isNil(vb) ? (v[1] === "desc" ? -1 : 1) * (null_last ? 1 : -1) : bareComp === 1 ? 1 : -1) * (v[1] === "desc" ? -1 : 1); + } + } + return 0; + } + } + async id(stats) { + const count = (await this.get("count", stats) ?? -1) + 1; + await this.put("count", count, stats); + return count.toString(); + } + async init(key, stats) { + let new_node = { + leaf: true, + id: await this.id(stats), + vals: [key], + parent: null, + next: null, + prev: null + }; + await this.putNode(new_node, stats); + await this.setRoot(new_node.id, stats); + } + async search(val, key, stats, after = false) { + let node = await this.get(key ?? await this.root(stats) ?? "0", stats); + if (isNil(node)) + return null; + if (node.leaf) + return node; + let i = 0; + for (const v of node.vals) { + if (isNil(val) || this.comp(val, node.leaf ? v : this.wrap(v), after) === 1) { + return await this.search(val, node.children[i], stats, after); + } + i++; + } + return await this.search(val, node.children[i], stats, after); + } + async rsearch(val, key, stats, after = false) { + let node = await this.get(key ?? await this.root(stats) ?? "0", stats); + if (isNil(node)) + return null; + if (node.leaf) + return node; + let i = node.vals.length - 1; + while (i >= 0) { + let v = node.vals[i]; + if (isNil(val) || this.comp(val, node.leaf ? v : this.wrap(v), !after) <= 0) { + return await this.rsearch(val, node.children[i + 1], stats, after); + } + i--; + } + return await this.rsearch(val, node.children[0], stats, after); + } + async read(key) { + let stats = {}; + const doc = (await this.searchByKey(key, stats))[0]; + return { key, val: doc?.val ?? null }; + } + async getValsReverse(node, vals, index = 0, opt, cache = {}, inRange = null, stats) { + for (let i = index; i >= 0; i--) { + const v = node.vals[i]; + const val = await this.data(v, cache, stats); + if (!isNil(opt.endAt)) { + if (this.comp(val, this.wrap(opt.endAt)) > 0) + return; + } else if (!isNil(opt.endBefore)) { + if (this.comp(val, this.wrap(opt.endBefore), true) >= 0) + return; + } + vals.push(val); + if (!isNil(opt.limit) && vals.length === opt.limit) + return; + } + if (!isNil(node.prev)) { + const prev = await this.get(node.prev, stats); + await this.getValsReverse( + prev, + vals, + prev.vals.length - 1, + opt, + cache, + null, + stats + ); + } + } + async getVals(node, vals, index = 0, opt, cache = {}, inRange = null, stats) { + for (let i = index; i < node.vals.length; i++) { + const v = node.vals[i]; + const val = await this.data(v, cache, stats); + if (!isNil(opt.endAt)) { + if (this.comp(val, this.wrap(opt.endAt), true) < 0) + return; + } else if (!isNil(opt.endBefore)) { + if (this.comp(val, this.wrap(opt.endBefore)) <= 0) + return; + } + vals.push(val); + if (!isNil(opt.limit) && vals.length === opt.limit) + return; + } + if (!isNil(node.next)) { + const next = await this.get(node.next, stats); + await this.getVals(next, vals, 0, opt, cache, null, stats); + } + } + async getValsReverseCursor(node, vals, index = 0, opt, cache = {}, inRange = null, stats) { + let i = index; + let vals_len = 0; + return async () => { + let ret = null; + const getVal = async () => { + while (i >= 0) { + const v = node.vals[i]; + const val = await this.data(v, cache, stats); + if (!isNil(opt.endAt)) { + if (this.comp(val, this.wrap(opt.endAt)) > 0) { + node = null; + return; + } + } else if (!isNil(opt.endBefore)) { + if (this.comp(val, this.wrap(opt.endBefore), true) >= 0) { + node = null; + return; + } + } + ret = val; + if (!isNil(opt.limit) && vals.length === opt.limit) { + node = null; + break; + } + i--; + break; + } + if (isNil(ret)) { + if (!isNil(node?.prev)) { + node = await this.get(node.prev, stats); + i = node.vals.length - 1; + } else { + node = null; + } + } + }; + while (!isNil(node) && isNil(ret)) + await getVal(); + return ret; + }; + } + async getValsCursor(node, vals, index = 0, opt, cache = {}, inRange = null, stats) { + let i = index; + let vals_len = 0; + return async () => { + let ret = null; + const getVal = async () => { + while (i < node.vals.length) { + const v = node.vals[i]; + const val = await this.data(v, cache, stats); + if (!isNil(opt.endAt)) { + if (this.comp(val, this.wrap(opt.endAt), true) < 0) { + node = null; + break; + } + } else if (!isNil(opt.endBefore)) { + if (this.comp(val, this.wrap(opt.endBefore)) <= 0) { + node = null; + break; + } + } + ret = val; + vals_len++; + if (!isNil(opt.limit) && vals_len === opt.limit) { + node = null; + break; + } + i++; + break; + } + if (isNil(ret)) { + if (!isNil(node?.next)) { + node = await this.get(node.next, stats); + i = 0; + } else { + node = null; + } + } + }; + while (!isNil(node) && isNil(ret)) + await getVal(); + return ret; + }; + } + async findIndex(_index, node, val, cache, stats) { + let index = _index; + let isPrev = false; + if (_index === 0) { + isPrev = !isNil(node.prev); + } else { + _index ??= node.vals.length; + for (let i = _index - 1; i >= 0; i--) { + const _val = await this.data(node.vals[i], cache, stats); + if (this.comp(_val, val) !== 0) + break; + index = i; + if (i === 0) + isPrev = !isNil(node.prev); + } + } + if (isPrev) { + let prev = await this.get(node.prev, stats); + const [new_index, new_node] = await this.findIndex( + null, + prev, + val, + cache, + stats + ); + return !isNil(new_index) ? [new_index, new_node] : [_index, node]; + } else { + return [index, node]; + } + } + async findLastIndex(_index, node, val, cache, stats) { + let index = null; + let isNext = false; + if (_index >= node.vals.length - 1) { + isNext = !isNil(node.next); + } else { + for (let i = _index + 1; i < node.vals.length; i++) { + const _val = await this.data(node.vals[i], cache, stats); + if (this.comp(_val, val) !== 0) { + index = i; + break; + } + if (i === node.vals.length - 1) + isNext = !isNil(node.next); + } + } + if (isNext) { + let next = await this.get(node.next, stats); + const [new_index, new_node] = await this.findLastIndex( + -1, + next, + val, + cache, + stats + ); + return !isNil(new_index) ? [new_index, new_node] : [_index, node]; + } else { + return [index, node]; + } + } + async findLastGtIndex(_index, node, val, cache, stats) { + let index = null; + let isNext = false; + if (_index >= node.vals.length - 1) { + isNext = !isNil(node.next); + } else { + for (let i = _index + 1; i < node.vals.length; i++) { + const _val = await this.data(node.vals[i], cache, stats); + if (this.comp(_val, val) === -1) { + index = i; + break; + } + if (i === node.vals.length - 1) + isNext = !isNil(node.next); + } + } + if (isNext) { + let next = await this.get(node.next, stats); + const [new_index, new_node] = await this.findLastGtIndex( + -1, + next, + val, + cache, + stats + ); + return !isNil(new_index) ? [new_index, new_node] : [_index, node]; + } else { + return [index, node]; + } + } + async findFirstLtIndex(_index, node, val, cache, stats) { + let index = null; + let isPrev = false; + if (_index <= 0) { + isPrev = !isNil(node.prev); + } else { + for (let i = _index - 1; i >= 0; i--) { + const _val = await this.data(node.vals[i], cache, stats); + if (this.comp(_val, val, true) === 1) { + index = i; + break; + } + if (i === 0) + isPrev = !isNil(node.prev); + } + } + if (isPrev) { + let prev = await this.get(node.prev, stats); + const [new_index, new_node] = await this.findFirstLtIndex( + prev.vals.length, + prev, + val, + cache, + stats + ); + return !isNil(new_index) ? [new_index, new_node] : [_index, node]; + } else { + return [index, node]; + } + } + async range(opt = {}, cursor = false) { + opt.limit ??= 1e3; + if (opt.limit > 1e3) + opt.limit = 1e3; + let stats = {}; + let start = opt.startAt ?? opt.startAfter; + if (!isNil(start)) + start = this.wrap(start); + const after = isNil(opt.startAt) && !isNil(opt.startAfter); + const first_node = await this[opt.reverse === true ? "rsearch" : "search"]( + start ?? void 0, + void 0, + stats, + after + ); + if (isNil(first_node)) + return cursor ? async () => null : []; + let vals = []; + let cache = {}; + let _node = first_node; + let index = opt.reverse === true ? _node.vals.length - 1 : 0; + let _index = index; + if (opt.reverse === true) { + if (!isNil(start)) { + let [index2, smaller, greater] = await this.binarySearch( + first_node, + start, + cache, + stats, + !after + ); + if (!isNil(opt.startAt)) { + _index = index2; + if (!isNil(smaller)) + _index = smaller; + } else if (!isNil(opt.startAfter)) { + _index = null; + if (!isNil(smaller)) { + _index = smaller; + } else if (!isNil(index2)) { + const [new_index, new_node] = await this.findFirstLtIndex( + index2, + first_node, + start, + cache, + stats + ); + if (!isNil(new_index)) { + _index = new_index; + _node = new_node; + } + } + } + } + } else if (!isNil(start)) { + let [index2, smaller, greater] = await this.binarySearch( + first_node, + start, + cache, + stats, + after + ); + if (!isNil(opt.startAt)) { + _index = index2; + if (!isNil(greater)) { + _index = greater; + } else if (!isNil(index2)) { + const [new_index, new_node] = await this.findIndex( + _index, + first_node, + start, + cache, + stats + ); + if (!isNil(new_index)) { + _index = new_index; + _node = new_node; + } + } else if (!isNil(smaller) && !isNil(first_node.next)) { + const next = await this.get(first_node.next, stats); + const [new_index, new_node] = await this.findLastGtIndex( + -1, + next, + start, + cache, + stats + ); + if (!isNil(new_index)) { + _index = new_index; + _node = new_node; + } + } + } else if (!isNil(opt.startAfter)) { + _index = null; + if (!isNil(greater)) { + _index = greater; + } else if (!isNil(index2)) { + const [new_index, new_node] = await this.findLastIndex( + index2, + first_node, + start, + cache, + stats + ); + if (!isNil(new_index)) { + _index = new_index; + _node = new_node; + } + } else if (!isNil(smaller) && !isNil(first_node.next)) { + const next = await this.get(first_node.next, stats); + const [new_index, new_node] = await this.findLastGtIndex( + -1, + next, + start, + cache, + stats + ); + if (!isNil(new_index)) { + _index = new_index; + _node = new_node; + } + } + } + } + if (!cursor) { + if (!isNil(_index)) + await this[`getVals${opt.reverse === true ? "Reverse" : ""}`]( + _node, + vals, + _index, + opt, + cache, + null, + stats + ); + return vals; + } else { + return await this[`getVals${opt.reverse === true ? "Reverse" : ""}Cursor`](_node, vals, _index, opt, cache, null, stats); + } + } + async searchByKey(key, stats) { + const val = await this.data(key, void 0, stats); + if (isNil(val.val)) + return [null, null, null]; + let node = await this.search(val, void 0, stats); + if (isNil(node)) + return [val, null, null]; + return [ + val, + ...await this.searchNode(node, key, val, true, void 0, stats) + ]; + } + async binarySearch(node, val, cache = {}, stats, reverse) { + let left = 0; + let right = node.vals.length - 1; + while (left <= right) { + let mid = Math.floor((left + right) / 2); + let midval = await this.data(node.vals[mid], cache, stats); + if (this.comp(midval, val, reverse) === 0) { + return [mid, null, null]; + } else if (this.comp(midval, val, reverse) === 1) { + left = mid + 1; + } else { + right = mid - 1; + } + } + return [ + null, + right >= 0 ? right : null, + left < node.vals.length ? left : null + ]; + } + async searchNode(node, key, val, first = false, cache = {}, stats) { + let start = 0; + let greater = null; + let smaller = null; + if (first) { + ; + [start, smaller, greater] = await this.binarySearch( + node, + val, + cache, + stats + ); + } + let isPrev = start === 0; + if (start === null) + return [null, null]; + if (start > 0) { + for (let i = start - 1; i >= 0; i--) { + const v = node.vals[i]; + if (v === key) + return [i, node]; + const _val = await this.data(v, cache, stats); + if (this.comp(_val, val) === 1) + break; + if (i === 0) + isPrev = true; + } + } + for (let i = 0; i < node.vals.length; i++) { + const v = node.vals[i]; + if (v === key) + return [i, node]; + const _val = await this.data(v, cache, stats); + if (this.comp(val, _val) === 1) { + if (isPrev) + break; + return [null, null]; + } + } + return isPrev && !isNil(node.prev) ? await this.searchNode( + await this.get(node.prev, stats), + key, + val, + false, + cache, + stats + ) : [null, null]; + } + async rmIndex(val_index, child_index, node, stats) { + node.vals.splice(val_index, 1); + node.children.splice(child_index, 1); + if (node.vals.length === 0 || !isNil(node.parent) && this.isUnder(node)) { + if (!isNil(node.parent)) { + let parent = await this.get(node.parent, stats); + let index = indexOf(node.id, parent.children); + let isMerged = false; + const isPrev = index > 0; + const isNext = index + 1 < parent.children.length; + let prev = null; + let next = null; + if (isPrev) { + prev = await this.get(parent.children[index - 1], stats); + if (!this.isUnder(prev, -1)) { + node.vals.unshift(parent.vals[index - 1]); + node.children.unshift(prev.children.pop()); + parent.vals[index - 1] = prev.vals.pop(); + await this.putNode(node, stats); + await this.putNode(prev, stats); + await this.putNode(parent, stats); + let child = await this.get(node.children[0], stats); + child.parent = node.id; + await this.putNode(child, stats); + isMerged = true; + } + } + if (!isMerged && isNext) { + next = await this.get(parent.children[index + 1], stats); + if (!this.isUnder(next, -1)) { + node.vals.push(parent.vals[index]); + node.children.push(next.children.shift()); + parent.vals[index] = next.vals.shift(); + await this.putNode(node, stats); + await this.putNode(next, stats); + await this.putNode(parent, stats); + let child = await this.get(last(node.children), stats); + child.parent = node.id; + await this.putNode(child, stats); + isMerged = true; + } + } + if (!isMerged && isPrev) { + if (!this.isOver(prev, node.vals.length + 1)) { + prev.children = concat(prev.children, node.children); + for (const c of node.children) { + let child = await this.get(c, stats); + child.parent = prev.id; + await this.putNode(child, stats); + } + prev.vals.push(parent.vals[index - 1]); + prev.vals = concat(prev.vals, node.vals); + prev.next = node.next || null; + if (!isNil(node.next)) { + let next2 = await this.get(node.next, stats); + next2.prev = node.prev || null; + await this.putNode(next2, stats); + } + await this.putNode(prev, stats); + await this.rmIndex(index - 1, index, parent, stats); + isMerged = true; + } + } + if (!isMerged && isNext) { + if (!this.isOver(next, node.vals.length + 1)) { + next.children = concat(node.children, next.children); + for (const c of node.children) { + let child = await this.get(c, stats); + child.parent = next.id; + await this.putNode(child, stats); + } + next.vals.unshift(parent.vals[index]); + next.vals = concat(node.vals, next.vals); + next.prev = node.prev || null; + if (!isNil(node.prev)) { + let prev2 = await this.get(node.prev, stats); + prev2.next = node.next || null; + await this.putNode(prev2, stats); + } + await this.putNode(next, stats); + await this.rmIndex(index, index, parent, stats); + isMerged = true; + } + } + } else if (node.vals.length === 0) { + let root = null; + for (const c of node.children) { + let child = await this.get(c, stats); + child.parent = null; + root = c; + await this.putNode(child, stats); + } + if (await this.root(stats) === node.id) { + this.setRoot(root, stats); + this.del(node.id, stats); + } + } + } else { + await this.putNode(node, stats); + } + } + async updateIndexes(index, node, val, changed, stats) { + if (index === 0 && !isNil(node.parent)) { + let parent = await this.get(node.parent, stats); + if (isNil(parent)) + return; + let parent_index = indexOf(node.id, parent.children); + if (node.leaf) { + if (node.vals.length > 0) { + val = this.pick(await this.data(node.vals[0], void 0, stats)); + } else if (!isNil(node.next)) { + let next = await this.get(node.next, stats); + val = this.pick(await this.data(next.vals[0], void 0, stats)); + } else { + return; + } + } + if (equals(val, changed) && parent_index > 0) { + parent.vals[parent_index - 1] = val; + await this.putNode(parent, stats); + } else if (val !== changed && parent_index > 0) { + parent.vals[parent_index - 1] = val; + await this.putNode(parent, stats); + } else if (parent_index === 0) { + await this.updateIndexes(0, parent, val, changed, stats); + } + } + } + async balance(val, child_index, node, stats) { + let merge_node = node; + let merge_child_index = child_index; + if (this.isUnder(node)) { + if (!isNil(node.parent)) { + let parent = await this.get(node.parent, stats); + let index = indexOf(node.id, parent.children); + let isMerged = false; + const isPrev = index > 0; + const isNext = index + 1 < parent.children.length; + let prev = null; + let next = null; + if (isPrev) { + prev ??= await this.get(parent.children[index - 1], stats); + if (!this.isUnder(prev, -1)) { + isMerged = true; + node.vals.unshift(prev.vals.pop()); + parent.vals[index - 1] = this.pick( + await this.data(node.vals[0], void 0, stats) + ); + await this.putNode(prev, stats); + await this.putNode(node, stats); + } + } + if (!isMerged && isNext) { + next ??= await this.get(parent.children[index + 1], stats); + if (!this.isUnder(next, -1)) { + isMerged = true; + node.vals.push(next.vals.shift()); + parent.vals[index] = this.pick( + await this.data(next.vals[0], void 0, stats) + ); + await this.putNode(next, stats); + await this.putNode(node, stats); + } + } + if (!isMerged && isPrev) { + if (!this.isOver(prev, node.vals.length)) { + prev.vals = concat(prev.vals, node.vals); + prev.next = node.next ?? null; + if (!isNil(node.prev) && !isNil(node.next)) { + let next2 = await this.get(node.next, stats); + next2.prev = node.prev; + await this.putNode(next2, stats); + } + await this.putNode(prev, stats); + await this.rmIndex(index - 1, index, parent, stats); + await this.del(node.id, stats); + isMerged = true; + } + } + if (!isMerged && isNext) { + if (!this.isOver(next, node.vals.length)) { + next.vals = concat(node.vals, next.vals); + next.prev = node.prev ?? null; + if (!isNil(node.prev) && !isNil(node.next)) { + let prev2 = await this.get(node.prev, stats); + prev2.next = node.next; + await this.putNode(prev2, stats); + } + merge_node = next; + merge_child_index = 0; + await this.putNode(next, stats); + await this.rmIndex(index, index, parent, stats); + await this.del(node.id, stats); + isMerged = true; + } + } + await this.putNode(parent, stats); + } else if (node.vals.length === 0) { + await this.setRoot(null, stats); + await this.del(node.id, stats); + } + } + await this.updateIndexes(merge_child_index, merge_node, null, val, stats); + } + async delete(key, skipPut = false) { + let stats = {}; + let [val, index, node] = await this.searchByKey(key, stats); + if (isNil(node)) + return; + node.vals = without([key], node.vals); + await this.putNode(node, stats); + await this.delData(key, stats); + await this.balance(val, index, node, stats); + await this.commit(stats, skipPut); + } + async _insert(key, val, node, stats) { + let index = 0; + let exists = false; + for (let v of node.vals) { + if (this.comp(val, await this.data(v, void 0, stats)) >= 0) { + node.vals.splice(index, 0, key); + exists = true; + break; + } + index += 1; + } + if (!exists) + node.vals.push(key); + } + async insert(key, val, skipPut = false, signer) { + let stats = {}; + await this.putData(key, val, stats, signer); + let _val = { key, val }; + let node = await this.search(_val, void 0, stats); + if (isNil(node)) { + await this.init(key, stats); + } else { + await this._insert(key, _val, node, stats); + await this.putNode(node, stats); + if (this.isOver(node)) + await this.split(node, stats); + } + await this.commit(stats, skipPut); + } + async commit(stats, skipPut = false) { + for (let k in stats) { + const prefix = k.match(/^data\//) === null ? `${this.prefix}/` : ""; + if (stats[k]?.__del__) { + if (!skipPut || k.match(/^data\//) === null) { + await this.del(k, void 0, prefix); + } else if (skipPut) { + await this.del(k, void 0, prefix, true); + } + } else { + if (!skipPut || k.match(/^data\//) === null) { + await this.put(k, stats[k], void 0, prefix); + } else if (skipPut) { + await this.put(k, stats[k], void 0, prefix, true); + } + } + } + if (!isNil(this.onCommit)) + this.onCommit(stats); + } + async splitChildren(node, new_node, stats) { + if (!node.leaf) { + const childrens = splitAt(node.vals.length + 1, node.children); + node.children = childrens[0]; + new_node.children = childrens[1]; + for (const v of childrens[1]) { + let child = await this.get(v, stats); + child.parent = new_node.id; + await this.putNode(child, stats); + } + } + } + async _split(node, stats) { + let nodes = splitAt(Math.ceil(node.vals.length / 2))(node.vals); + node.vals = node.leaf ? nodes[0] : init(nodes[0]); + let new_node = { + leaf: node.leaf, + id: await this.id(stats), + vals: nodes[1], + prev: node.id, + next: node.next ?? null + }; + if (!isNil(node.next)) { + let next = await this.get(node.next, stats); + next.prev = new_node.id; + await this.putNode(next, stats); + } + node.next = new_node.id; + const top = node.leaf ? nodes[1][0] : last(nodes[0]); + await this.splitChildren(node, new_node, stats); + return [node.leaf ? await this.data(top, void 0, stats) : top, new_node]; + } + async getParent(node, new_node, top, stats) { + const isNewParent = isNil(node.parent); + let parent = !isNewParent ? await this.get(node.parent, stats) : { + leaf: false, + id: await this.id(stats), + vals: [top], + children: [node.id, new_node.id] + }; + if (!isNewParent) { + const ind = indexOf(node.id, parent.children); + parent.vals.splice(ind, 0, top); + parent.children.splice(ind + 1, 0, new_node.id); + } + return [isNewParent, parent]; + } + pick(obj) { + if (typeof this.sort_fields === "string") { + return obj.val; + } else { + let _obj = {}; + for (let v of pluck(0)(this.sort_fields)) { + _obj[v] = v === "__id__" ? obj.key : obj.val[v] ?? null; + } + return _obj; + } + } + async split(node, stats) { + let [top, new_node] = await this._split(node, stats); + let [isNewParent, parent] = await this.getParent( + node, + new_node, + node.leaf ? this.pick(top) : top, + stats + ); + new_node.parent = parent.id; + node.parent = parent.id; + await this.putNode(new_node, stats); + await this.putNode(parent, stats); + await this.putNode(node, stats); + if (isNewParent) + await this.setRoot(parent.id, stats); + if (this.isOver(parent)) + await this.split(parent, stats); + } + }; + module.exports = BPT; + } + }); + + // sdk/contracts/weavedb-bpt/lib/index.js + var require_lib = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/index.js"(exports, module) { + var { + reverse, + sortBy, + prop, + init, + path, + last, + append, + includes, + o, + concat, + intersection, + keys, + uniq, + is, + clone, + compose, + join, + flatten, + isNil, + without, + map, + difference, + tail, + splitEvery, + equals + } = require_src(); + var { err } = require_base(); + var BPT = require_BPT(); + var md5 = require_md5(); + var idsorter = ["__id__", "asc"]; + var order = 100; + var _KV = (kvs, SW) => ({ + get: async (key) => typeof kvs[key] !== "undefined" ? kvs[key] : await SW.kv.get(key), + put: async (key, val) => kvs[key] = val + }); + var KV = class { + constructor(prefix = "default", kvs) { + this.kvs = kvs; + this.prefix = prefix; + this.store = {}; + } + async get(key, _prefix = "") { + const data = await this.kvs.get(`${this.prefix}/${_prefix}/${key}`) ?? null; + if (!isNil(data)) + this.store[key] = data; + return data; + } + async put(key, val, _prefix = "", nosave = false) { + if (!nosave) + await this.kvs.put(`${this.prefix}/${_prefix}/${key}`, val); + this.store[key] = val; + } + async del(key, _prefix = "", nosave = false) { + if (!nosave) + await this.kvs.put(`${this.prefix}/${_prefix}/${key}`, null); + delete this.store[key]; + } + }; + var getIndexes = async (path2, kvs, SW) => { + const kv = new KV(`${path2.join("/")}/`, _KV(kvs, SW)); + const _sort_fields = [idsorter]; + const prefix = `${compose(join("/"), flatten)(_sort_fields)}`; + const idtree = new BPT(order, _sort_fields, kv, prefix); + return await kv.get("indexes") || {}; + }; + var validateSortFields = (sort_fields) => { + let i = 0; + for (let v of sort_fields) { + if (v[1] === "array") { + if (i !== 0) + return false; + } else if (!includes(v[1], ["asc", "desc"])) { + return false; + } + i++; + } + if (sort_fields.length === 0 || sort_fields.length === 1 && sort_fields[0][0].split(".").length < 2) { + return false; + } + return true; + }; + var addFields = (val, fields, path2, top = false) => { + for (let k in val) { + if (!top) + fields.push(append(k, path2).join(".")); + if (is(Object, val[k]) && !is(Array, val[k])) { + addFields(val[k], fields, append(k, path2)); + } + } + }; + var addIndex = async (sort_fields, path2, kvs, SW) => { + sort_fields = map((v) => v.length > 1 ? v : append("asc", v))(sort_fields); + if (!validateSortFields(sort_fields)) + return; + const kv = new KV(`${path2.join("/")}/`, _KV(kvs, SW)); + const prefix = `${compose(join("/"), flatten)([idsorter])}`; + const idtree = new BPT(order, [idsorter], kv, prefix); + let __indexes = await kv.get("indexes") || {}; + const newIndex = map(join("/"))(sort_fields).join("/"); + if (!isNil(__indexes[newIndex])) + return; + let docs = await idtree.range(); + const i_fields = compose( + without(["__id__"]), + map((v) => v[0]) + )(sort_fields); + if (sort_fields[0][1] === "array") { + let array_indexes = {}; + let kvs2 = {}; + for (let _data of docs) { + const fields = keys(_data.val); + const diff = difference(i_fields, fields); + if (i_fields.length > 0 && diff.length === 0 && is(Array, _data.val[i_fields[0]])) { + for (const v of _data.val[i_fields[0]]) { + const prefix2 = `${compose(join("/"), flatten)(tail(sort_fields))}`; + const _md5 = md5(JSON.stringify(v)); + const _prefix = `${sort_fields[0][0]}/array:${_md5}`; + const key = `${_prefix}/${prefix2}`; + let _tree = null; + const akey = `${sort_fields[0][0]}/array:${_md5}/${map( + (v2) => v2.join("/") + )(tail(sort_fields)).join("/")}`; + if (isNil(kvs2[_md5])) { + array_indexes[_md5] = { order, key: akey }; + _tree = new BPT(order, [...tail(sort_fields), idsorter], kv, key); + } else { + _tree = kvs2[_md5]; + } + await _tree.insert(_data.key, _data.val, true); + } + } + } + __indexes[newIndex] = { + key: newIndex, + items: array_indexes + }; + } else { + __indexes[newIndex] = { order, key: newIndex }; + const prefix2 = `${compose(join("/"), flatten)(sort_fields)}`; + const tree = new BPT(order, [...sort_fields, idsorter], kv, prefix2); + for (let _data of docs) { + let fields = keys(_data.val); + addFields(_data.val, fields, [], true); + const diff = difference(i_fields, fields); + if (i_fields.length > 0 && diff.length === 0) { + await tree.insert(_data.key, _data.val, true); + } + } + } + await kv.put("indexes", __indexes); + }; + var removeIndex = async (sort_fields, path2, kvs, SW) => { + sort_fields = map((v) => v.length > 1 ? v : append("asc", v))(sort_fields); + if (!validateSortFields(sort_fields)) + return; + const kv = new KV(`${path2.join("/")}/`, _KV(kvs, SW)); + const prefix = `${compose(join("/"), flatten)([idsorter])}`; + const idtree = new BPT(order, [idsorter], kv, prefix); + let __indexes = await kv.get("indexes") || {}; + const newIndex = map(join("/"))(sort_fields).join("/"); + if (isNil(__indexes[newIndex])) + return; + let docs = await idtree.range(); + const i_fields = compose( + without(["__id__"]), + map((v) => v[0]) + )(sort_fields); + if (sort_fields[0][1] === "array") { + let array_indexes = {}; + let kvs2 = {}; + for (let _data of docs) { + const fields = keys(_data.val); + const diff = difference(i_fields, fields); + if (i_fields.length > 0 && diff.length === 0 && is(Array, _data.val[i_fields[0]])) { + for (const v of _data.val[i_fields[0]]) { + const prefix2 = `${compose(join("/"), flatten)(tail(sort_fields))}`; + const _md5 = md5(JSON.stringify(v)); + const _prefix = `${sort_fields[0][0]}/array:${_md5}`; + const key = `${_prefix}/${prefix2}`; + let _tree = null; + const akey = `${sort_fields[0][0]}/array:${_md5}/${map( + (v2) => v2.join(":") + )(tail(sort_fields)).join("/")}`; + if (isNil(kvs2[_md5])) { + array_indexes[_md5] = { order, key: akey }; + _tree = new BPT(order, [...tail(sort_fields), idsorter], kv, key); + } else { + _tree = kvs2[_md5]; + } + await _tree.delete(_data.key, true); + } + } + } + } else { + const prefix2 = `${compose(join("/"), flatten)(sort_fields)}`; + const tree = new BPT(order, [...sort_fields, idsorter], kv, prefix2); + for (let _data of docs) { + let fields = keys(_data.val); + addFields(_data.val, fields, [], true); + const diff = difference(i_fields, fields); + if (i_fields.length > 0 && diff.length === 0) { + await tree.delete(_data.key, true); + } + } + } + delete __indexes[newIndex]; + await kv.put("indexes", __indexes); + }; + var del = async (id, path2, kvs, SW) => { + const kv = new KV(`${path2.join("/")}/`, _KV(kvs, SW)); + const sort_fields = [idsorter]; + const prefix = `${compose(join("/"), flatten)(sort_fields)}`; + const idtree = new BPT(order, [...sort_fields, idsorter], kv, prefix); + const __data = await idtree.data(id); + const _data = __data.val; + const indexes = await kv.get("indexes") || {}; + for (const k in indexes) { + const fields = keys(_data); + const sp = splitEvery(2, k.split("/")); + const i_fields = compose( + without(["__id__"]), + map((v) => v[0]), + splitEvery(2) + )(k.split("/")); + const diff = difference(i_fields, fields); + if (i_fields.length > 0 && diff.length === 0) { + if (sp[0][1] === "array") { + if (is(Array, _data[sp[0][0]])) { + for (let v of _data[sp[0][0]]) { + const _md5 = md5(JSON.stringify(v)); + const sort_fields2 = splitEvery(2, k.split("/")); + let akey = `${sort_fields2[0][0]}/array:${_md5}`; + if (sort_fields2.length > 1) { + akey += `/${map((v2) => v2.join("/"))(tail(sort_fields2)).join("/")}`; + } + if (isNil(indexes[k].items[_md5])) + continue; + const ar = sort_fields2[0]; + let prefix2 = `${ar[0]}/array:${_md5}`; + const _sort_fields = sort_fields2.length === 1 ? [idsorter] : tail(sort_fields2); + if (sort_fields2.length > 1) { + prefix2 += "/" + compose(join("/"), flatten)(tail(sort_fields2)); + } + const tree = new BPT(order, [..._sort_fields, idsorter], kv, prefix2); + await tree.delete(id, true); + } + } + } else { + const sort_fields2 = splitEvery(2, k.split("/")); + const prefix2 = `${compose(join("/"), flatten)(sort_fields2)}`; + const tree = new BPT(order, [...sort_fields2, idsorter], kv, prefix2); + await tree.delete(id, true); + } + } + } + await idtree.delete(id); + return { before: __data, after: { key: id, val: null, setter: null } }; + }; + var mod = (prev, next) => { + let dels = []; + let changes = []; + let news = []; + prev ??= {}; + next ??= {}; + const _keys = compose(uniq, flatten, map(keys))([prev, next]); + for (const k of _keys) { + if (!equals(prev[k], next[k])) { + if (isNil(prev[k])) { + news.push(k); + if (is(Array, next[k])) { + for (let v of next[k]) { + news.push(`${k}/array:${md5(JSON.stringify(v))}`); + } + } + } else if (isNil(next[k])) { + dels.push(k); + if (is(Array, prev[k])) { + for (let v of prev[k]) { + dels.push(`${k}/array:${md5(JSON.stringify(v))}`); + } + } + } else { + changes.push(k); + if (is(Array, prev[k]) && is(Array, next[k])) { + const _news = o(uniq, difference(next[k]))(prev[k]); + const _dels = o(uniq, difference(prev[k]))(next[k]); + for (let v of _news) { + news.push(`${k}/array:${md5(JSON.stringify(v))}`); + } + for (let v of _dels) { + dels.push(`${k}/array:${md5(JSON.stringify(v))}`); + } + } else if (is(Array, prev[k])) { + for (let v of uniq(prev[k])) { + dels.push(`${k}/array:${md5(JSON.stringify(v))}`); + } + } else if (is(Array, next[k])) { + for (let v of uniq(next[k])) { + news.push(`${k}/array:${md5(JSON.stringify(v))}`); + } + } + } + } + } + return { dels, changes, news }; + }; + var _update = async (data, id, old_data, idtree, kv, SW, signer) => { + let { dels, changes, news } = mod(old_data.val, data); + const indexes = await kv.get("indexes") || {}; + let _indexes = clone(indexes); + let newkeys = {}; + for (const k of dels) { + const sp = k.split("/"); + const isArray = sp[1]?.split(":")[0] === "array"; + const key = isArray ? k : `${k}/asc`; + const prefix = isArray ? `${sp[0]}/${sp[1]}` : `${k}/asc`; + newkeys[key] = true; + const sort_fields = isArray ? [idsorter] : [[k, "asc"], idsorter]; + const _tree = new BPT(order, sort_fields, kv, prefix); + await _tree.delete(id, true); + } + for (const k of news) { + const sp = k.split("/"); + const isArray = sp[1]?.split(":")[0] === "array"; + const key = isArray ? k : `${k}/asc`; + let prefix = isArray ? `${sp[0]}/${sp[1]}` : `${k}/asc`; + newkeys[key] = true; + if (isArray) { + const akey = `${sp[0]}/array`; + const item = sp[1].split(":")[1] ?? null; + if (isNil(_indexes[akey])) + _indexes[akey] = { key: akey, items: {} }; + if (!isNil(item) && isNil(_indexes[akey].items[item])) { + _indexes[akey].items[item] = { key, order }; + } + const sort_fields = splitEvery(2, k.split("/")); + let _sort_fields = sort_fields.length === 1 ? [idsorter] : [...tail(sort_fields), idsorter]; + if (sort_fields.length > 1) { + prefix += "/" + compose(join("/"), flatten)(tail(sort_fields)); + } + const _tree = new BPT(order, sort_fields, kv, prefix); + await _tree.insert(id, data, true); + } else { + if (isNil(_indexes[key])) + _indexes[key] = { order, key }; + const sort_fields = [[k, "asc"], idsorter]; + const _tree = new BPT(order, sort_fields, kv, prefix); + await _tree.insert(id, data, true); + } + } + await kv.put("indexes", _indexes); + let fields = keys(data); + addFields(data, fields, [], true); + let old_fields = keys(old_data.val); + addFields(old_data.val, old_fields, [], true); + for (const k in _indexes) { + if (isNil(newkeys[k])) { + const sort_fields = splitEvery(2, k.split("/")); + const i_fields = compose( + without(["__id__"]), + map((v) => v[0]), + splitEvery(2) + )(k.split("/")); + if (i_fields.length > 0) { + if (sort_fields[0][1] === "array") { + const arr_name = sort_fields[0][0]; + const new_arr_vals = is(Array, data[arr_name]) ? compose( + uniq, + map((v) => md5(JSON.stringify(v))) + )(data[arr_name]) : []; + const old_arr_vals = is(Array, old_data.val[arr_name]) ? compose( + uniq, + map((v) => md5(JSON.stringify(v))) + )(old_data.val[arr_name]) : []; + const val_added = difference(new_arr_vals, old_arr_vals); + const val_removed = difference(old_arr_vals, new_arr_vals); + const val_unchanged = intersection(old_arr_vals, new_arr_vals); + const _fields = without([arr_name])(fields); + const _old_fields = without([arr_name])(old_fields); + const _i_fields = without([arr_name])(i_fields); + const diff2 = difference(_i_fields, _fields); + const old_diff2 = difference(_i_fields, _old_fields); + if (diff2.length === 0 || old_diff2.length === 0) { + let isAdd = false; + let isDel = false; + if (intersection(_i_fields, news).length > 0) + isAdd = true; + if (intersection(_i_fields, changes).length > 0) { + isDel = true; + isAdd = true; + } + if (intersection(_i_fields, dels).length > 0) { + isDel = true; + isAdd = false; + } + const isChange = isAdd && isDel ? "change" : isAdd ? "add" : isDel ? "del" : "same"; + let _add = []; + let _del = []; + let _change = []; + for (let v of val_added) + _add.push(v); + for (let v of val_removed) + _del.push(v); + for (let v of val_unchanged) { + if (isChange === "add") { + _add.push(v); + } else if (isChange === "del") { + _del.push(v); + } else if (isChange === "change") { + _change.push(v); + } + } + const sort_tail = map(join("/"))(tail(sort_fields)).join("/"); + const getKey = (v) => `${arr_name}/array:${v}/${sort_tail}`; + const getPrefix = (v) => `${arr_name}/array:${v}/${compose( + join("/"), + flatten + )(tail(sort_fields))}`; + const ins = async (tree) => await tree.insert(id, data, true); + const del2 = async (tree) => await tree.delete(id, true); + const getTree = (v) => new BPT(order, [...tail(sort_fields), idsorter], kv, getPrefix(v)); + for (let v of _add) { + const akey = getKey(v); + await ins(getTree(v)); + if (isNil(_indexes[k].items[v])) { + _indexes[k].items[v] = { key: akey, order }; + } + } + for (let v of _del) + await del2(getTree(v)); + for (let v of _change) { + const _tree = getTree(v); + await del2(_tree); + await ins(_tree); + } + } + } + const diff = difference(i_fields, fields); + const old_diff = difference(i_fields, old_fields); + if (diff.length === 0 || old_diff.length === 0) { + let isAdd = false; + let isDel = false; + if (intersection(i_fields, news).length > 0) + isAdd = true; + if (intersection(i_fields, changes).length > 0) { + isDel = true; + isAdd = true; + } + if (intersection(i_fields, dels).length > 0) { + isDel = true; + isAdd = false; + } + for (let v of i_fields) { + const sp = v.split("."); + if (sp.length > 1) { + let ndata = path(sp, data); + let odata = path(sp, old_data.val); + if (!equals(ndata, odata)) { + if (!isNil(odata)) + isDel = true; + if (!isNil(ndata)) + isAdd = true; + break; + } + } + } + if (isDel) { + const prefix = `${compose(join("/"), flatten)(sort_fields)}`; + const tree = new BPT(order, [...sort_fields, idsorter], kv, prefix); + await tree.delete(id, true); + } + if (isAdd) { + const sort_fields2 = splitEvery(2, k.split("/")); + const prefix = `${compose(join("/"), flatten)(sort_fields2)}`; + const tree = new BPT(order, [...sort_fields2, idsorter], kv, prefix); + await tree.insert(id, data, true); + } + } + } + } + } + await idtree.putData(id, data, void 0, signer); + return { before: old_data, after: { key: id, val: data, setter: signer } }; + }; + var put = async (_data, id, path2, kvs, SW, signer, create = false) => { + const kv = new KV(`${path2.join("/")}/`, _KV(kvs, SW)); + const prefix = `${compose(join("/"), flatten)([idsorter])}`; + const idtree = new BPT(order, [idsorter], kv, prefix); + let old_data = await idtree.data(id); + if (!isNil(old_data?.val)) { + if (create) { + await del(id, path2, kvs, SW); + } else { + return await _update(_data, id, old_data, idtree, kv, SW, signer); + } + } + await idtree.insert(id, _data, false, signer); + const indexes = await kv.get("indexes") || {}; + let _indexes = clone(indexes); + let idkey = "__id__/asc"; + if (isNil(_indexes[idkey])) { + _indexes[idkey] = { order, key: idkey }; + } + for (const k in _data) { + const key = `${k}/asc`; + if (isNil(indexes[key])) + _indexes[key] = { order, key }; + const _tree = new BPT(order, [[k, "asc"], idsorter], kv, key); + await _tree.insert(id, _data, true); + if (is(Array, _data[k])) { + for (let v of uniq(_data[k])) { + const _prefix = `${k}/array`; + const _md5 = md5(JSON.stringify(v)); + const key2 = `${_prefix}:${_md5}`; + if (isNil(_indexes[_prefix])) + _indexes[_prefix] = { key: _prefix, items: {} }; + if (isNil(_indexes[_prefix].items[_md5])) { + _indexes[_prefix].items[_md5] = { order, key: key2 }; + } + const _tree2 = new BPT( + order, + [idsorter], + kv, + `${k}/array:${md5(JSON.stringify(v))}`, + function(stats) { + } + ); + await _tree2.insert(id, _data, true); + } + } + } + const fields = keys(_data); + addFields(_data, fields, [], true); + for (const k in indexes) { + const i_fields = compose( + without(["__id__"]), + map((v) => v[0]), + splitEvery(2) + )(k.split("/")); + const diff = difference(i_fields, fields); + const isValid = i_fields.length > 1 || i_fields.length === 1 && i_fields[0].split(".").length > 1; + if (isValid && diff.length === 0) { + const sort_fields = splitEvery(2, k.split("/")); + if (sort_fields[0][1] === "array") { + if (!is(Array, _data[sort_fields[0][0]])) + continue; + for (let v of _data[sort_fields[0][0]]) { + const prefix2 = `${compose(join("/"), flatten)(tail(sort_fields))}`; + const _md5 = md5(JSON.stringify(v)); + const _prefix = `${sort_fields[0][0]}/array:${_md5}`; + const key = `${_prefix}/${prefix2}`; + const akey = `${sort_fields[0][0]}/array:${_md5}/${map( + (v2) => v2.join("/") + )(tail(sort_fields)).join("/")}`; + const _tree = new BPT( + order, + [...tail(sort_fields), idsorter], + kv, + key + ); + if (isNil(_indexes[k].items[_md5])) { + _indexes[k].items[_md5] = { order, key: akey }; + } + await _tree.insert(id, _data, true); + } + } else { + const prefix2 = `${compose(join("/"), flatten)(sort_fields)}`; + const tree = new BPT(order, [...sort_fields, idsorter], kv, prefix2); + await tree.insert(id, _data, true); + } + } + } + await kv.put("indexes", _indexes); + return { before: old_data, after: { key: id, val: _data, setter: signer } }; + }; + var pranges = async (_ranges, limit, kvs, SW, sortByTail = false, cur = {}) => { + let curs = []; + let res = []; + for (let v of _ranges) { + if (!isArrayIndex(v.prefix) && isNil(v.prefix) && v.sort.length === 1 && v.sort[0][1] === "desc") { + v.sort[0][1] = "asc"; + v.opt ??= {}; + v.opt.reverse = true; + } + delete v.opt.limit; + const kv = new KV(`${v.path.join("/")}/`, _KV(kvs, SW)); + let prefix = v.prefix ?? ""; + let suffix = `${compose( + join("/"), + flatten + )(v.sort.length === 0 && prefix === "" ? [idsorter] : v.sort)}`; + if (prefix !== "" && suffix !== "") + suffix = `/${suffix}`; + prefix += suffix; + await checkIndex(prefix, v.path, kvs, SW); + const tree = new BPT(order, [...v.sort, idsorter], kv, prefix); + modOpt(v.opt, cur, tree); + const _cur = { val: null, tree, cur: await tree.range(v.opt, true) }; + curs.push(_cur); + } + const comp = curs[0].tree.comp.bind(curs[0].tree); + let sorter = curs[0].tree.sort_fields; + if (!equals(last(sorter), idsorter)) + sorter.push(idsorter); + if (sortByTail) + sorter = tail(sorter); + while (curs.length > 0) { + const val = await curs[0].cur(); + curs[0].val = val; + const cur2 = curs.shift(); + if (!isNil(val)) { + let pushed2 = false; + for (let i = res.length - 1; i >= 0; i--) { + const _comp = comp(val, res[i], false, sorter); + if (_comp === 0) { + pushed2 = true; + break; + } else if (_comp < 0) { + res.splice(i + 1, 0, val); + pushed2 = true; + break; + } + } + if (!pushed2) + res.unshift(val); + const border = isNil(limit) ? null : res[limit - 1] || null; + if (isNil(border) || comp(border, val) < 0) { + let i = 0; + let pushed = false; + for (const v of curs) { + if (!isNil(v.val)) { + if (comp(val, v.val, false, sorter) >= 0) { + curs.splice(i, 0, cur2); + pushed = true; + break; + } + } + i++; + } + if (!pushed) + curs.push(cur2); + } + } + } + return isNil(limit) ? res : res.slice(0, limit); + }; + var ranges = async (_ranges, limit, path2, kvs, SW, cur = {}) => { + let res = []; + let count = 0; + let __ranges = _ranges; + if (_ranges[0].sort.length === 1 && _ranges[0].sort[0][1] === "desc") { + if (cur.sortRange) { + __ranges = reverse(__ranges); + for (let v of __ranges) { + let new_range = {}; + if (!isNil(v.startAt)) { + new_range["endAt"] = v.startAt; + delete v.startAt; + } + if (!isNil(v.endAt)) { + new_range["startAt"] = v.endAt; + delete v.endAt; + } + if (!isNil(v.startAfter)) { + new_range["endBefore"] = v.startAfter; + delete v.startAfter; + } + if (!isNil(v.endBefore)) { + new_range["startAfter"] = v.endBefore; + delete v.endBefore; + } + for (let k in new_range) { + v[k] = new_range[k]; + } + } + } + } + for (let v of __ranges) { + if (!isNil(limit)) { + v.opt ??= {}; + v.opt.limit = limit - count; + } + res = concat(res, await range(v.sort, v.opt, path2, kvs, SW, false, "", cur)); + count += res.length; + if (!isNil(limit) && count >= limit) + break; + } + return res; + }; + var checkIndex = async (prefix, path2, kvs, SW) => { + const indexes = await getIndexes(path2, kvs, SW); + const sort_fields = compose( + map((v) => { + return [v[0], (v[1] || "asc").split(":")[0]]; + }), + splitEvery(2) + )(prefix.split("/")); + const key = compose(join("/"), flatten)(sort_fields); + if ((sort_fields.length > 1 || sort_fields[0][0].split(".").length > 1) && isNil(indexes[key])) { + err(`missing index ${JSON.stringify(sort_fields)}`); + } + }; + var modOpt = (opt, cur = {}, tree) => { + let reversed = {}; + if (opt.reverse) { + let new_range = {}; + if (cur.reverse.start) { + if (!isNil(opt.startAt)) { + new_range.endAt = opt.startAt; + delete opt.startAt; + reversed.start = true; + } else if (!isNil(opt.startAfter)) { + new_range.endBefore = opt.startAfter; + delete opt.startAfter; + reversed.start = true; + } + } + if (cur.reverse.end) { + if (!isNil(opt.endAt)) { + new_range.startAt = opt.endAt; + delete opt.endAt; + reversed.end = true; + } else if (!isNil(opt.endBefore)) { + new_range.startAfter = opt.endBefore; + delete opt.endBefore; + reversed.end = true; + } + } + for (let k in new_range) { + opt[k] = new_range[k]; + } + } + if (!isNil(cur.start)) { + if (!isNil(opt.startAt)) { + const comp = tree.comp( + { key: cur.start[1].id, val: cur.start[1].data }, + { val: opt.startAt }, + opt.reverse, + init(tree.sort_fields) + ); + if (reversed.end && comp >= 0 || reversed.end !== true && comp <= 0) { + delete opt.startAt; + opt[cur.start[0]] = cur.start[1].data; + } + } else if (!isNil(opt.startAfter)) { + const comp = tree.comp( + { key: cur.start[1].id, val: cur.start[1].data }, + { val: opt.startAfter }, + opt.reverse, + init(tree.sort_fields) + ); + if (cur.start[0] === "startAt") { + if (reversed.end && comp > 0 || reversed.end !== true && comp < 0) { + delete opt.startAfter; + opt[cur.start[0]] = cur.start[1].data; + } + } else { + if (reversed.end && comp >= 0 || reversed.end !== true && comp <= 0) { + opt.startAfter = cur.start[1].data; + } + } + } else { + opt[cur.start[0]] = cur.start[1].data; + } + } + if (!isNil(cur.end)) { + if (!isNil(opt.endAt)) { + const comp = tree.comp( + { key: cur.end[1].id, val: cur.end[1].data }, + { val: opt.endAt }, + opt.reverse, + init(tree.sort_fields) + ); + if (reversed.start && comp <= 0 || reversed.start !== true && comp >= 0) { + delete opt.endAt; + opt[cur.end[0]] = cur.end[1].data; + } + } else if (!isNil(opt.endBefore)) { + const comp = tree.comp( + { key: cur.end[1].id, val: cur.end[1].data }, + { val: opt.endBefore }, + opt.reverse, + init(tree.sort_fields) + ); + if (cur.end[0] === "endAt") { + if (reversed.start && comp < 0 || reversed.start !== true && comp > 0) { + delete opt.endBefore; + opt[cur.end[0]] = cur.end[1].data; + } + } else { + if (reversed.start && comp <= 0 || reversed.start !== true && comp >= 0) { + opt.endBefore = cur.end[1].data; + } + } + } else { + opt[cur.end[0]] = cur.end[1].data; + } + } + return opt; + }; + var isArrayIndex = (prefix) => prefix?.split("/")[1]?.split(":")[0] === "array"; + var range = async (sort_fields, opt = {}, path2, kvs, SW, cursor = false, _prefix = "", cur = {}) => { + const kv = new KV(`${path2.join("/")}/`, _KV(kvs, SW)); + if (!isArrayIndex(_prefix) && sort_fields.length === 1 && sort_fields[0][1] === "desc") { + sort_fields[0][1] = "asc"; + opt.reverse = true; + } + const prefix = `${_prefix}${_prefix === "" || sort_fields.length === 0 ? "" : "/"}${compose( + join("/"), + flatten + )(sort_fields.length === 0 && _prefix === "" ? [idsorter] : sort_fields)}`; + await checkIndex(prefix, path2, kvs, SW); + const tree = new BPT(order, [...sort_fields, idsorter], kv, prefix); + const _opt = modOpt(clone(opt), cur, tree); + return await tree.range(_opt, cursor); + }; + var get = async (id, path2, kvs, SW) => { + const kv = new KV(`${path2.join("/")}/`, _KV(kvs, SW)); + const prefix = `${compose(join("/"), flatten)([idsorter])}`; + const tree = new BPT(order, [idsorter], kv, prefix); + return await tree.data(id); + }; + module.exports = { + put, + range, + get, + del, + addIndex, + getIndexes, + removeIndex, + mod, + ranges, + pranges + }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/jsonschema.js + var require_jsonschema = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/jsonschema.js"(exports, module) { + var { read, err } = require_base(); + module.exports = { + validate: async (data, schema, state, SmartWeave2) => { + let valid = false; + let error = false; + try { + ; + ({ valid, error } = await read( + state.contracts.jsonschema, + { + function: "validate", + data, + schema + }, + SmartWeave2 + )); + } catch (e) { + error = true; + } + return { error, valid }; + } + }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/utils.js + var require_utils = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/utils.js"(exports, module) { + var fpjson = require_cjs(); + fpjson = fpjson.default || fpjson; + var md5 = require_md5(); + var { + of, + mergeLeft, + keys, + symmetricDifference, + uniq, + sortBy, + identity, + reverse, + indexOf, + prop, + assoc, + tail, + pluck, + map, + toString, + splitWhen, + complement, + init, + is, + isNil, + slice, + includes, + last, + intersection, + append, + difference, + path: _path, + concat, + without + } = require_src(); + var { + fpj, + ac_funcs, + clone, + isValidName, + isValidDocName, + setElm, + parse: __parse + } = require_pure(); + var fn = require_fn(); + var { get: _get } = require_lib(); + var { validate } = require_jsonschema(); + var { err, read } = require_base(); + var isEvolving = (state) => !isNil(state.evolveHistory) && !isNil(last(state.evolveHistory)) && isNil(last(state.evolveHistory).newVersion); + var getField = (data, path) => { + if (path.length === 1) { + return [path[0], data]; + } else { + if (isNil(data[path[0]])) + data[path[0]] = {}; + return getField(data[path[0]], tail(path)); + } + }; + var genId = async (action, salt, SmartWeave2) => { + const id = md5( + JSON.stringify({ + input: action.input, + txid: SmartWeave2.transaction?.id ?? SmartWeave2.block?.height, + timestamp: SmartWeave2.transaction?.timestamp ?? SmartWeave2.block?.timestamp + }) + ); + return Buffer.from(id, "hex").toString("base64").replace(/\//g, "_").replace(/\+/g, "-"); + }; + var mergeDataP = async (_data, new_data, extra = {}, overwrite = false, signer, SmartWeave2, action, state) => { + let exists = true; + if (isNil(_data.__data) || overwrite) { + _data.__data = {}; + exists = false; + } + for (let k in new_data) { + const path = exists ? k.split(".") : [k]; + const [field, obj] = getField(_data.__data, path); + const d = new_data[k]; + if (is(Object)(d) && d.__op === "zkp") { + const res = await read( + state.contracts.polygonID, + { + function: "verify", + proof: d.proof, + pub_signals: d.pub_signals + }, + SmartWeave2 + ); + obj[field] = res; + } else if (is(Object)(d) && d.__op === "data") { + obj[field] = extra[d.key] ?? null; + } else if (is(Object)(d) && d.__op === "arrayUnion") { + if (complement(is)(Array, d.arr)) + err(); + if (complement(is)(Array, obj[field])) + obj[field] = []; + obj[field] = concat(obj[field], d.arr); + } else if (is(Object)(d) && d.__op === "arrayRemove") { + if (complement(is)(Array, d.arr)) + err(); + if (complement(is)(Array, obj[field])) + obj[field] = []; + obj[field] = without(d.arr, obj[field]); + } else if (is(Object)(d) && d.__op === "inc") { + if (isNaN(d.n)) + err(); + if (isNil(obj[field])) + obj[field] = 0; + obj[field] += d.n; + } else if (is(Object)(d) && d.__op === "del") { + delete obj[field]; + } else if (is(Object)(d) && d.__op === "ts") { + obj[field] = SmartWeave2.block.timestamp; + } else if (is(Object)(d) && d.__op === "ms") { + obj[field] = action.timestamp ?? SmartWeave2.block.timestamp * 1e3; + } else if (is(Object)(d) && d.__op === "signer") { + obj[field] = signer; + } else { + obj[field] = d; + } + } + return _data; + }; + var _parse = async (state, action, _func, signer, salt, contractErr = true, SmartWeave2, kvs, type, fn2) => { + let func; + if (!isNil(_func)) + func = _func.split(":")[0]; + const { data } = state; + const { query } = action.input; + const { relayer, jobID, extra } = action; + let new_data = null; + let path = null; + let col; + if (includes(func)([ + "delete", + "getSchema", + "getRules", + "getAlgorithms", + "removeRelayerJob", + "getRelayerJob", + "listCollections" + ])) { + path = query; + } else { + ; + [new_data, ...path] = query; + if (func === "add") { + const id = await genId(action, salt, SmartWeave2); + path.push(id); + await fn2.addNewDoc(id, SmartWeave2, state, kvs); + } else if (includes(func)(["setRules", "addTrigger"]) && query.length % 2 === 1) { + path = init(path); + } + } + if (isNil(new_data) && !includes(func)([ + "listCollections", + "delete", + "getSchema", + "getRules", + "getAlgorithms", + "getRelayerJob", + "removeRelayerJob", + "getRelayerJob" + ]) || path.length === 0 && !includes(func)(["setAlgorithms", "listCollections"]) || path.length % 2 !== 0 && !includes(func)([ + "addRelayerJob", + "removeRelayerJob", + "getRelayerJob", + "addIndex", + "addTrigger", + "removeTrigger", + "removeIndex", + "setSchema", + "getSchema", + "getAlgorithms", + "setRules", + "getRules", + "linkContract", + "unlinkContract" + ])) { + err(`the wrong query length[${query.length}] for ${func}`, contractErr); + } + let _data = null; + let schema = null; + let rules = null; + let next_data; + if (includes(func)([ + "addIndex", + "addTrigger", + "removeTrigger", + "removeIndex", + "setSchema", + "getSchema", + "setRules", + "getRules" + ])) { + _data = await fn2.getCol( + data, + path, + signer, + SmartWeave2, + void 0, + kvs, + state + ); + col = _data; + } else if (!includes(func)([ + "setAlgorithms", + "addRelayerJob", + "removeRelayerJob", + "getAlgorithms", + "linkContract", + "unlinkContract" + ]) && path.length !== 0) { + const doc = await fn2.getDoc( + data, + path, + signer, + func, + new_data, + state.secure, + relayer, + jobID, + extra, + state, + action, + SmartWeave2, + void 0, + kvs, + fn2.get, + type, + _func + ); + _data = doc.doc; + ({ next_data, schema, rules, col } = doc); + } + let owner = state.owner || []; + if (is(String)(owner)) + owner = of(owner); + if (!isNil(state.auth) && includes(func)([ + "addRelayerJob", + "removeRelayerJob", + "addIndex", + "addTrigger", + "removeTrigger", + "removeIndex", + "setSchema", + "setAlgorithms", + "setRules", + "unlinkContract", + "linkContract", + "unlinkContract" + ]) && !includes(signer)(owner)) { + err( + `caller[${signer}] is not contract owner[${owner.join(", ")}]`, + contractErr + ); + } + return { data, query, new_data, path, _data, schema, col, next_data }; + }; + var getCol = async (data, path, _signer, SmartWeave2, current_path = [], kvs, state) => await _getCol(path, _signer, SmartWeave2, current_path = [], kvs, state); + var _getCol = async (path, _signer, SmartWeave2, current_path = [], kvs, state) => { + const [col, id] = path; + if (!isValidName(col, state)) + err(`collection id is not valid: ${col}`); + let key = `data.${append(col)(current_path).join("/")}`; + let data = await kv(kvs, SmartWeave2).get(`data.${current_path.join("/")}`) ?? {}; + if (isNil(data[col])) { + await addNewCol(col, current_path, data, kvs, state, SmartWeave2); + } + let _data = await kv(kvs, SmartWeave2).get(key); + if (isNil(_data)) { + _data = { __docs: {} }; + await kv(kvs, SmartWeave2).put(key, _data); + } + if (isNil(id)) { + return _data; + } else { + if (!isValidDocName(id, state)) + err(`doc id is not valid: ${id}`); + current_path.push(col); + current_path.push(id); + return await _getCol( + slice(2, path.length, path), + _signer, + SmartWeave2, + current_path, + kvs, + state + ); + } + }; + var validateData = async ({ + func, + secure, + rules, + doc, + SmartWeave: SmartWeave2, + state, + action, + _signer, + relayer, + jobID, + extra, + new_data, + next_data, + path, + get, + kvs + }) => { + if (!isNil(func)) { + let [_func, ..._method] = func.split(":"); + _method = _method.join(":"); + if (includes(_func)(["set", "add", "update", "upsert", "delete"]) && (secure || !isNil(rules))) { + let op = _func; + if (includes(op)(["set", "add"])) + op = "create"; + if (op === "create" && !isNil(doc.__data)) + op = "update"; + if (op === "upsert") { + if (!isNil(doc.__data)) { + op = "update"; + } else { + op = "create"; + } + } + let allowed = false; + let rule_data = { + contract: { + id: SmartWeave2.contract.id, + version: state.version, + owners: is(Array, state.owner) ? state.owner : [state.owner] + }, + request: { + caller: action.caller, + func: _func, + op, + method: _method === "" ? op : _method, + auth: { signer: _signer, relayer, jobID, extra }, + block: { + height: SmartWeave2.block.height, + timestamp: SmartWeave2.block.timestamp + }, + transaction: { + id: SmartWeave2.transaction.id, + timestamp: action.timestamp ?? SmartWeave2.transaction.timestamp ?? SmartWeave2.block.timestamp * 1e3 + }, + resource: { data: new_data }, + id: last(path), + path + }, + resource: { + data: doc.__data, + setter: doc.setter, + newData: next_data, + id: last(path), + path + } + }; + rule_data.signer = rule_data.request.auth.signer; + rule_data.id = rule_data.request.id; + rule_data.ts = rule_data.request.block.timestamp; + rule_data.ms = rule_data.request.transaction.timestamp; + rule_data.new = rule_data.resource.newData; + rule_data.old = rule_data.resource.data; + rule_data.req = rule_data.request.resource.data; + const isAllowed = (_ops, request) => { + if (_ops === "*") + return true; + const ops = _ops.split(","); + let methods = uniq([ + "write", + request.op, + request.func, + request.method, + `${request.func}:${request.method}`, + `${request.op}:${request.method}`, + `write:${request.method}` + ]); + return intersection(ops)(methods).length > 0; + }; + const _fn = { + hash: fn.hash, + toBase64: fn.toBase64, + parse: fn.parse, + stringify: fn.stringify, + get: async (query) => { + const val = (await get( + state, + { + input: { + function: "get", + query + } + }, + void 0, + SmartWeave2, + kvs + ))?.result ?? null; + return [val, false]; + } + }; + if (!isNil(rules)) { + for (const v of rules || []) { + if (isAllowed(v[0], rule_data.request)) { + await fpj(v[1], rule_data, { ..._fn, ...ac_funcs }); + } + } + allowed = rule_data.request.allow === true; + } + if (!allowed) + err("operation not allowed"); + return rule_data.resource.newData; + } else { + return next_data; + } + } + }; + var getDoc = async (data, path, _signer, func, new_data, secure = false, relayer, jobID, extra, state, action, SmartWeave2, current_path = [], kvs, get, type, _func) => { + return await _getDoc( + null, + path, + _signer, + func, + new_data, + secure, + relayer, + jobID, + extra, + state, + action, + SmartWeave2, + current_path, + kvs, + void 0, + get, + type, + _func + ); + }; + var addNewCol = async (_col, current_path, data, kvs, state, SmartWeave2) => { + const full_path = append(_col, current_path).join("/"); + state.collections ??= {}; + state.collection_count ??= 0; + state.collections[full_path] = { id: state.collection_count++, count: 0 }; + data[_col] = true; + await kv(kvs, SmartWeave2).put(`data.${current_path.join("/")}`, data); + }; + var _getDoc = async (data, path, _signer, func, new_data, secure = false, relayer, jobID, extra, state, action, SmartWeave2, current_path = [], kvs, doc, get, type, _func) => { + data = await kv(kvs, SmartWeave2).get(`data.${current_path.join("/")}`) || {}; + const [_col, id] = path; + if (!isValidName(_col, state)) + err(`collection id is not valid: ${_col}`); + if (!isValidDocName(id, state)) + err(`doc id is not valid: ${id}`); + if (isNil(data[_col])) { + await addNewCol(_col, current_path, data, kvs, state, SmartWeave2); + } + current_path.push(_col); + current_path.push(id); + const col_key = `data.${current_path.slice(0, -1).join("/")}`; + const doc_key = `data.${current_path.join("/")}`; + const col = await kv(kvs, SmartWeave2).get(col_key) || { __docs: {} }; + const { rules, schema } = col; + if (isNil(doc)) { + doc = await _get(last(path), init(path), kvs, SmartWeave2); + doc.__data = doc.val; + doc.subs = {}; + delete doc.val; + } + if (!isNil(_signer) && isNil(doc.setter)) + doc.setter = _signer; + let next_data = null; + if (path.length === 2) { + if (includes(func)(["set", "add"])) { + next_data = (await mergeDataP( + clone(doc), + new_data, + extra, + true, + _signer, + SmartWeave2, + action, + state + )).__data; + } else if (includes(func)(["update", "upsert"])) { + next_data = (await mergeDataP( + clone(doc), + new_data, + extra, + false, + _signer, + SmartWeave2, + action, + state + )).__data; + } + } + if (type !== "cron") { + await validateData({ + func: _func, + secure, + rules, + doc, + SmartWeave: SmartWeave2, + state, + action, + _signer, + relayer, + jobID, + extra, + new_data, + next_data, + path, + get, + kvs + }); + } + return path.length >= 4 ? await _getDoc( + doc.subs, + slice(2, path.length, path), + _signer, + func, + new_data, + secure, + relayer, + jobID, + extra, + state, + action, + SmartWeave2, + current_path, + kvs, + doc, + get, + type, + _func + ) : { + doc, + schema, + rules, + col, + next_data + }; + }; + var addNewDoc = async (id, SmartWeave2, state, kvs) => { + let tx_ids = await kv(kvs, SmartWeave2).get(`tx_ids.${SmartWeave2.transaction.id}`) || []; + tx_ids.push(id); + await kv(kvs, SmartWeave2).put(`tx_ids.${SmartWeave2.transaction.id}`, tx_ids); + }; + var parse = async (state, action, func, signer, salt, contractErr = true, SmartWeave2, kvs, get, type) => { + return await _parse( + state, + action, + func, + signer, + salt, + contractErr, + SmartWeave2, + kvs, + type, + { getDoc, getCol, addNewDoc, get } + ); + }; + var kv = (kvs, SW) => ({ + get: async (key) => typeof kvs[key] !== "undefined" ? kvs[key] : await SW.kv.get(key), + put: async (key, val) => { + kvs[key] = val; + } + }); + var trigger = async (on, state, path, SmartWeave2, kvs, executeCron, depth, vars, timestamp) => { + const trigger_key = `trigger.${init(path).join("/")}`; + state.triggers ??= {}; + const triggers = state.triggers[trigger_key] ??= []; + for (const t of triggers) { + if (!includes(t.on)(on)) + continue; + try { + let _state = clone(state); + let _kvs = clone(kvs); + await executeCron( + { crons: { jobs: t.func, version: t.version, key: t.key } }, + _state, + SmartWeave2, + _kvs, + depth, + { ...vars, batch: [] }, + timestamp + ); + state = _state; + for (const k in _kvs) + kvs[k] = _kvs[k]; + } catch (e) { + console.log(e); + } + } + return state; + }; + var _parser = (query) => { + const [path, opt] = splitWhen(complement(is)(String), query); + if (isNil(path) || path.length === 0) + err(`the wrong path`); + if (!is(Object, opt)) + err(`option must be an object`); + let q = { path }; + let _filter = { "==": [] }; + let _keys = {}; + let _ranges = {}; + let _range_field = null; + let _sort = null; + let _startAt = null; + let _startAfter = null; + let _endAt = null; + let _endBefore = null; + let _startAtCursor = null; + let _startAfterCursor = null; + let _endAtCursor = null; + let _endBeforeCursor = null; + let _array_contains = null; + let _array_contains_any = null; + for (const v of clone(opt)) { + if (is(Number)(v)) { + if (isNil(q.limit)) { + if (v > 1e3) + err(`limit cannot be above 1000 [${v}]`); + if (v !== Math.round(Math.abs(v)) || v < 1) { + err(`limit must be a natural number [${v}]`); + } + q.limit = v; + } else { + err(`only one limit is allowed [${v}]`); + } + } else if (!is(Array)(v)) { + err(`unknown query [${JSON.stringify(v)}]`); + } else { + if (v.length === 0) { + err(`empty query option []`); + } else if (v[0] === "startAt") { + if (!isNil(_startAt) || !isNil(_startAfter) || !isNil(_startAtCursor) || !isNil(_startAfterCursor)) { + err(`only one startAt/startAfter is allowed`); + } else if (v.length <= 1) { + err(`startAt has no value`); + } else { + if (v[1].__cursor__) { + _startAtCursor = v; + _startAtCursor[1].data.__id__ = _startAtCursor[1].id; + } else { + _startAt = v; + } + } + } else if (v[0] === "startAfter") { + if (!isNil(_startAt) || !isNil(_startAfter) || !isNil(_startAtCursor) || !isNil(_startAfterCursor)) { + err(`only one startAt/startAfter is allowed`); + } else if (v.length <= 1) { + err(`startAfter has no value`); + } else { + if (v[1].__cursor__) { + _startAfterCursor = v; + _startAfterCursor[1].data.__id__ = _startAfterCursor[1].id; + } else { + _startAfter = v; + } + } + } else if (v[0] === "endAt") { + if (!isNil(_endAt) || !isNil(_endBefore) || !isNil(_endAtCursor) || !isNil(_endBeforeCursor)) { + err(`only one endAt/endBefore is allowed`); + } else if (v.length <= 1) { + err(`endAt has no value`); + } else { + if (v[1].__cursor__) { + _endAtCursor = v; + _endAtCursor[1].data.__id__ = _endAtCursor[1].id; + } else { + _endAt = v; + } + } + } else if (v[0] === "endBefore") { + if (!isNil(_endAt) || !isNil(_endBefore) || !isNil(_endAtCursor) || !isNil(_endBeforeCursor)) { + err(`only one endAt/endBefore is allowed`); + } else if (v.length <= 1) { + err(`endBefore has no value`); + } else { + if (v[1].__cursor__) { + _endBeforeCursor = v; + _endBeforeCursor[1].data.__id__ = _endBeforeCursor[1].id; + } else { + _endBefore = v; + } + } + } else if (v.length === 3) { + if (includes(v[1])([ + "==", + "!=", + ">", + "<", + ">=", + "<=", + "in", + "not-in", + "array-contains", + "array-contains-any" + ])) { + if (includes(v[1], ["array-contains", "array-contains-any"])) { + if (!isNil(_filter["array-contains"]) || !isNil(_filter["array-contains-any"])) { + err(`only one array-contains/array-contains-any is allowed`); + } + if (v[1] === "array-contains-any" && !is(Array, v[2])) { + err(`array-contains-any must be an array ${JSON.stringify(v[2])}`); + } + _filter[v[1]] = v; + } else if (includes(v[1], ["!=", "in", "not-in", ">", ">=", "<", "<="])) { + if (includes(v[1], ["in", "not-in"]) && !is(Array, v[2])) { + err(`${v[1]} must be an array [${JSON.stringify(v[2])}]`); + } + if (includes(v[1], [">", ">=", "<", "<="])) { + if (!isNil(_filter["!="]) || !isNil(_filter["in"]) || !isNil(_filter["not-in"])) { + err(`only one inequity is allowed [${JSON.stringify(v)}]`); + } + if (!isNil(_range_field) && _range_field !== v[0]) { + err( + `inequity has to be on the same field [${JSON.stringify(v)}]` + ); + } else if (_ranges[v[1]] || v[1] === ">" && _ranges[">="] || v[1] === ">=" && _ranges[">"] || v[1] === "<" && _ranges["<="] || v[1] === "<=" && _ranges["<"]) { + err(`duplicate inequity [${JSON.stringify(v)}]`); + } else { + _filter.range ??= []; + _filter.range.push(v); + _range_field = v[0]; + _ranges[v[1]] = true; + } + } else { + if (!isNil(_filter.range) || !isNil(_filter["!="]) || !isNil(_filter["in"]) || !isNil(_filter["not-in"])) { + err(`only one inequity is allowed [${JSON.stringify(v)}]`); + } + _filter[v[1]] = v; + } + } else if (v[1] === "==") { + if (!isNil(_filter.range) || !isNil(_filter["!="]) || !isNil(_filter["in"]) || !isNil(_filter["not-in"])) { + err(`== must come before inequity [${JSON.stringify(v)}]`); + } else if (_keys[v[0]]) + err(`only one == per field is allowed [${JSON.stringify(v)}]`); + _filter["=="].push(v); + _keys[v[0]] = true; + } else { + if (!isNil(_filter[v[1]])) + err(); + _filter[v[1]] = v; + } + } else { + err(`The wrong where operant [${v[1]}]`); + } + } else if (v.length === 2) { + if (includes(v[1])(["asc", "desc"])) { + if (isNil(_sort)) { + _sort = [v]; + } else { + _sort.push(v); + } + } else { + err(`sort order [${JSON.stringify(v[1])}] must be either asc or desc`); + } + } else if (v.length === 1) { + if (isNil(_sort)) { + _sort = [append("asc", v)]; + } else { + _sort.push(append("asc", v)); + } + } else { + err(`unknown query option [${JSON.stringify(v)}]`); + } + } + } + q.limit ??= 1e3; + q.start = _startAt ?? _startAfter ?? null; + q.end = _endAt ?? _endBefore ?? null; + q.startCursor = _startAtCursor ?? _startAfterCursor ?? null; + q.endCursor = _endAtCursor ?? _endBeforeCursor ?? null; + q.sort = _sort ?? []; + q.reverse = { start: false, end: false }; + q.array = _filter["array-contains"] ?? _filter["array-contains-any"] ?? null; + q.equals = _filter["=="]; + q.range = _filter.range ?? (!isNil(_filter.in) ? [_filter.in] : !isNil(_filter["not-in"]) ? [_filter["not-in"]] : !isNil(_filter["!="]) ? [_filter["!="]] : null); + q.sortByTail = false; + return q; + }; + var checkStartEnd = (q) => { + if (q.equals.length > 0 && !isNil(q.range)) { + if (includes(q.range[0][0], pluck(0, q.equals))) { + err(`== and range field must be different [${JSON.stringify(q.range)}]`); + } + } + if ((!isNil(q.start) || !isNil(q.end)) && (q.equals.length > 0 || !isNil(q.range))) { + err( + `range [${JSON.stringify( + q.start ?? q.end + )}] cannot be used with ==/inequity` + ); + } + let start = null; + let end = null; + if (!isNil(q.start) || !isNil(q.end)) { + if (!isNil(q.start)) { + start ??= []; + start[0] = q.start[0]; + start[1] ??= {}; + if (q.start[1]?.__cursor__) { + start[1] = assoc("__id__", q.start[1].id, q.start[1].data); + } else { + for (const [i, v] of tail(q.start).entries()) { + if (isNil(q.sort[i])) + err(`sort must exist for [${JSON.stringify(v)}]`); + start[1][q.sort[i][0]] = v; + } + } + } else if (!isNil(q.end)) { + end ??= []; + end[0] = q.end[0]; + end[1] ??= {}; + if (q.end[1]?.__cursor__) { + end[1] = assoc("__id__", q.end[1].id, q.end[1].data); + } else { + for (const [i, v] of tail(q.end).entries()) { + if (isNil(q.sort[i])) + err(`sort must exist for [${JSON.stringify(v)}]`); + end[1][q.sort[i][0]] = v; + } + } + } + } else { + for (const v of q.equals) { + start ??= ["startAt"]; + end ??= ["endAt"]; + start[1] ??= {}; + end[1] ??= {}; + start[1][v[0]] = v[2]; + end[1][v[0]] = v[2]; + } + for (const v of q.range || []) { + if (v[1] === "<") { + end ??= ["endBefore"]; + end[1] ??= {}; + if (end[0] === "endAt") + end[0] = "endBefore"; + end[1][v[0]] = v[2]; + q.reverse.end = true; + } else if (v[1] === "<=") { + end ??= ["endAt"]; + end[1] ??= {}; + end[1][v[0]] = v[2]; + q.reverse.end = true; + } else if (v[1] === ">") { + start ??= ["startAfter"]; + start[1] ??= {}; + if (start[0] === "startAt") + start[0] = "startAfter"; + start[1][v[0]] = v[2]; + q.reverse.start = true; + } else if (v[1] === ">=") { + start ??= ["startAt"]; + start[1] ??= {}; + start[1][v[0]] = v[2]; + q.reverse.start = true; + } + } + } + q.start = start; + q.end = end; + }; + var checkSort = (q) => { + let sort = []; + if (q.equals.length > 0) { + const eq_keys = pluck(0, q.equals); + const qkeys = pluck(0, q.sort); + let ex = false; + for (const v of qkeys) { + if (!includes(v, eq_keys)) { + ex = true; + } else if (ex) { + err(`the wrong sort ${JSON.stringify(q.sort)}`); + } + } + const dups = intersection(eq_keys, qkeys); + const imap = indexOf(prop(0), q.sort); + let new_sort = slice(dups.length, q.sort.length, q.sort); + for (const v of reverse(eq_keys)) { + new_sort.unshift(imap[v] ?? [v, "asc"]); + sort.unshift(imap[v] ?? [v, "asc"]); + } + q.sort = new_sort; + } + const next_index = sort.length; + if (!isNil(q.range?.[0][0])) { + if (q.sort.length === sort.length || q.range[0][1] === "in") { + sort.push([q.range[0][0]]); + } else if (!isNil(q.sort[next_index]) && q.range[0][0] !== q.sort[next_index][0]) { + err(`the sort field at [${next_index}] must be [${q.range[0][0]}]`); + } + if (includes(q.range[0][1], ["!=", "in", "not-in"])) { + const qkeys = pluck(0, q.sort); + if (qkeys.length !== 0 && qkeys[next_index] !== q.range[0][0]) { + if (includes(q.range[0][0], qkeys)) { + err(`the wrong sort ${JSON.stringify(q.sort)}`); + } else { + q.sort.splice(q.equals.length, 0, [q.range[0][0], "asc"]); + q.sortByTail = true; + } + } + } + } + for (const [i, v] of (q.sort || []).entries()) { + if (isNil(sort[i])) { + sort[i] = v; + } else if (sort[i][0] === v[0]) { + if (!isNil(sort[i][1]) && !isNil(v[1]) && sort[i][1] !== v[1]) { + err(`the wrong sort ${JSON.stringify(q.sort)}`); + } + if (isNil(sort[i][1]) && !isNil(v[1])) + sort[i][1] = v[1]; + } else { + err(`the wrong sort ${JSON.stringify(q.sort)}`); + } + } + q.sort = map((v) => { + if (isNil(v[1])) + v[1] = "asc"; + return v; + })(sort); + }; + var buildQueries = (q) => { + q.queries = []; + if (!isNil(q.array)) { + let opt = { limit: q.limit }; + if (!isNil(q.start)) + opt[q.start[0]] = q.start[1]; + if (!isNil(q.end)) + opt[q.end[0]] = q.end[1]; + if (q.array[1] === "array-contains-any") { + for (let v of q.array[2]) { + const prefix = `${q.array[0]}/array:${md5(JSON.stringify(v))}`; + q.queries.push({ opt, prefix }); + } + q.type = "pranges"; + } else { + const prefix = `${q.array[0]}/array:${md5(JSON.stringify(q.array[2]))}`; + q.queries.push({ opt, prefix }); + q.type = "range"; + } + } else if (includes(q.range?.[0]?.[1], ["!=", "not-in", "in"])) { + const op = q.range?.[0]?.[1]; + if (op === "!=") { + let opt1 = {}; + let end = clone(q.end); + end ??= ["endBefore"]; + end[1] ??= {}; + if (end[0] !== "endBefore") + end[0] = "endBefore"; + end[1][q.range[0][0]] = q.range[0][2]; + opt1.endBefore = end[1]; + if (!isNil(q.start)) + opt1[q.start[0]] = q.start[1]; + let opt2 = {}; + let start = clone(q.start); + start ??= ["startAfter"]; + start[1] ??= {}; + if (start[0] !== "startAfter") + start[0] = "startAfter"; + start[1][q.range[0][0]] = q.range[0][2]; + opt2.startAfter = start[1]; + if (!isNil(q.end)) + opt2[q.end[0]] = q.end[1]; + q.queries = [{ opt: opt1 }, { opt: opt2 }]; + q.reverse.start = true; + q.reverse.end = true; + q.sortRange = true; + } else if (op === "in") { + let __ranges = sortBy(identity)(q.range[0][2]); + for (let v of __ranges) { + let opt = {}; + let start = clone(q.start); + start ??= ["startAt"]; + start[1] ??= {}; + start[1][q.range[0][0]] = v; + opt.startAt = start[1]; + let end = clone(q.end); + end ??= ["endAt"]; + end[1] ??= {}; + end[1][q.range[0][0]] = v; + opt.endAt = end[1]; + q.queries.push({ opt }); + q.sortRange = true; + q.reverse.start = true; + q.reverse.end = true; + } + } else if (op === "not-in") { + let prev = null; + let __ranges = sortBy(identity)(q.range[0][2]); + for (let [i, v] of __ranges.entries()) { + let opt = {}; + let start = clone(q.start); + if (i !== 0) { + start ??= ["startAfter"]; + start[1] ??= {}; + start[1][q.range[0][0]] = prev; + } + if (!isNil(start)) + opt[start[0]] = start[1]; + let end = clone(q.end); + end ??= ["endBefore"]; + end[1] ??= {}; + end[1][q.range[0][0]] = v; + opt.endBefore = end[1]; + q.queries.push({ opt }); + if (i == q.range[0][2].length - 1) { + let opt2 = {}; + let start2 = clone(q.start); + start2 ??= ["startAfter"]; + start2[1] ??= {}; + start2[1][q.range[0][0]] = v; + opt2.startAfter = start2[1]; + let end2 = clone(q.end); + if (!isNil(end2)) + opt2[end2[0]] = end2[1]; + q.queries.push({ opt: opt2 }); + } + prev = v; + } + q.sortRange = true; + q.reverse.start = true; + q.reverse.end = true; + } + q.type = q.sortByTail ? "pranges" : "ranges"; + } else { + q.type = "range"; + let opt = { limit: q.limit }; + if (!isNil(q.start)) + opt[q.start[0]] = q.start[1]; + if (!isNil(q.end)) + opt[q.end[0]] = q.end[1]; + q.queries.push({ opt }); + } + }; + var parseQuery = (query) => { + const parsed = _parser(query); + checkSort(parsed); + checkStartEnd(parsed); + buildQueries(parsed); + return parsed; + }; + function uint8ArrayToHexString(uint8Array) { + let hexString = "0x"; + for (const e of uint8Array) { + const hex = e.toString(16); + hexString += hex.length === 1 ? `0${hex}` : hex; + } + return hexString; + } + var isHexStrict = (hex) => typeof hex === "string" && /^((-)?0x[0-9a-f]+|(0x))$/i.test(hex); + var isUint8Array = (data) => data instanceof Uint8Array || data?.constructor?.name === "Uint8Array" || data?.constructor?.name === "Buffer"; + var isEVMAddress = (value, checkChecksum = true) => { + if (typeof value !== "string" && !isUint8Array(value)) + return false; + let valueToCheck; + if (isUint8Array(value)) { + valueToCheck = uint8ArrayToHexString(value); + } else if (typeof value === "string" && !isHexStrict(value)) { + valueToCheck = value.toLowerCase().startsWith("0x") ? value : `0x${value}`; + } else { + valueToCheck = value; + } + if (!/^(0x)?[0-9a-f]{40}$/i.test(valueToCheck)) + return false; + if (/^(0x|0X)?[0-9a-f]{40}$/.test(valueToCheck) || /^(0x|0X)?[0-9A-F]{40}$/.test(valueToCheck)) { + return true; + } + return true; + }; + var wrapResult = (state, original_signer, SmartWeave2, extra) => ({ + state, + result: mergeLeft(extra, { + original_signer, + transaction: { + id: SmartWeave2?.transaction?.id || null, + owner: SmartWeave2?.transaction?.owner || null, + tags: SmartWeave2?.transaction?.tags || null, + quantity: SmartWeave2?.transaction?.quantity || null, + target: SmartWeave2?.transaction?.target || null, + reward: SmartWeave2?.transaction?.reward || null, + timestamp: SmartWeave2?.transaction?.timestamp || null + }, + block: { + height: SmartWeave2?.block?.height || null, + timestamp: SmartWeave2?.block?.timestamp || null, + indep_hash: SmartWeave2?.block?.indep_hash || null + } + }) + }); + var isOwner = (signer, state) => { + let owner = state.owner || []; + if (is(String)(owner)) + owner = of(owner); + if (!includes(signer)(owner)) { + err(`Signer[${signer}] is not the owner[${owner.join(", ")}].`); + } + return owner; + }; + var validateSchema = async (schema, data, contractErr, state, SmartWeave2) => { + if (!isNil(schema)) { + const { error, valid } = await validate( + data, + clone(schema), + state, + SmartWeave2 + ); + if (!valid) + err("invalid schema", contractErr); + } + }; + var auth = async (state, action, func, SmartWeave2, use_nonce = true, kvs, fn2) => { + if (isNil(state.auth)) + return { signer: null, original_signer: null }; + const { + query, + nonce, + signature, + caller, + type = "secp256k1", + pubKey + } = action.input; + if (!includes(type)( + state.auth.algorithms || [ + "secp256k1", + "secp256k1-2", + "ed25519", + "rsa256", + "rsa-pss" + ] + )) { + err(`The wrong algorithm`); + } + let _caller = caller; + let original_signer = null; + const EIP712Domain = [ + { name: "name", type: "string" }, + { name: "version", type: "string" }, + { name: "verifyingContract", type: "string" } + ]; + const domain = { + name: state.auth.name, + version: state.auth.version, + verifyingContract: isNil(SmartWeave2.contract) ? "exm" : SmartWeave2.contract.id + }; + const message = { + nonce, + query: JSON.stringify({ func, query }) + }; + const _data = { + types: { + EIP712Domain, + Query: [ + { name: "query", type: "string" }, + { name: "nonce", type: "uint256" } + ] + }, + domain, + primaryType: "Query", + message + }; + let signer = null; + if (state.auth.skip_validation) { + if (!isNil(action.input.signer)) + original_signer = action.input.signer; + signer = caller; + } else if (type === "ed25519") { + const { isValid } = await read( + state.contracts.dfinity, + { + function: "verify", + data: _data, + signature, + signer: caller + }, + SmartWeave2 + ); + if (isValid) { + signer = caller; + } else { + err(`The wrong signature`); + } + } else if (type === "rsa-pss") { + const enc = new TextEncoder(); + const encoded = enc.encode(JSON.stringify(_data)); + const binarySignature = new Uint8Array(signature.length / 2); + for (let i = 0; i < signature.length; i += 2) { + binarySignature[i / 2] = parseInt(signature.substr(i, 2), 16); + } + const hash = await crypto.subtle.digest("SHA-256", encoded); + const publicJWK = { e: "AQAB", ext: true, kty: "RSA", n: pubKey }; + const cryptoKey = await crypto.subtle.importKey( + "jwk", + publicJWK, + { name: "RSA-PSS", hash: "SHA-256" }, + false, + ["verify"] + ); + const isValid = await crypto.subtle.verify( + { name: "RSA-PSS", saltLength: 32 }, + cryptoKey, + binarySignature, + hash + ); + if (isValid) { + signer = caller; + } else { + err(`The wrong signature`); + } + } else if (type === "rsa256") { + let encoded_data = JSON.stringify(_data); + if (typeof TextEncoder !== "undefined") { + const enc = new TextEncoder(); + encoded_data = enc.encode(encoded_data); + } + const _crypto = SmartWeave2.arweave.crypto || SmartWeave2.arweave.wallets.crypto; + const isValid = await _crypto.verify( + pubKey, + encoded_data, + Buffer.from(signature, "hex") + ); + if (isValid) { + signer = caller; + } else { + err(`The wrong signature`); + } + } else if (type == "secp256k1") { + signer = (await read( + state.contracts.ethereum, + { + function: "verify712", + data: _data, + signature + }, + SmartWeave2 + )).signer; + } else if (type == "secp256k1-2") { + signer = (await read( + state.contracts.ethereum, + { + function: "verify", + data: _data, + signature + }, + SmartWeave2 + )).signer; + } + if (includes(type)(["secp256k1", "secp256k1-2"])) { + if (/^0x/.test(signer)) + signer = signer.toLowerCase(); + if (/^0x/.test(_caller)) + _caller = _caller.toLowerCase(); + } + const timestamp = isNil(action.timestamp) ? isNil(SmartWeave2.transaction.timestamp) ? Math.round(SmartWeave2.transaction.timestamp) : SmartWeave2.block.timestamp : Math.round(action.timestamp / 1e3); + original_signer ??= signer; + let _signer = signer; + if (_signer !== _caller) { + const link = await fn2.getAddressLink(_signer, state, kvs, SmartWeave2); + if (!isNil(link)) { + let _address = is(Object, link) ? link.address : link; + let _expiry = is(Object, link) ? link.expiry || 0 : 0; + if (_expiry === 0 || timestamp <= _expiry) + _signer = _address; + } + } + if (_signer !== _caller) + err(`signer[${_signer}] is not caller[${_caller}]`); + if (!isNil(action.input.signer) && action.input.signer !== original_signer) { + err(`signer[${_signer}] is not caller[${_caller}]`); + } + if (use_nonce !== false) + await fn2.useNonce(nonce, original_signer, state, kvs, SmartWeave2); + return { signer: _signer, original_signer }; + }; + module.exports = { + validateSchema, + trigger, + getDoc: _getDoc, + getCol: _getCol, + parse, + kv, + parseQuery, + auth, + isEVMAddress, + err, + isEvolving, + wrapResult, + isOwner, + read + }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getEvolve.js + var require_getEvolve = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getEvolve.js"(exports, module) { + var { pickAll } = require_src(); + var { isEvolving } = require_utils(); + var getEvolve = async (state, action) => { + let evolve = pickAll(["canEvolve", "evolve"])(state); + evolve.history = state.evolveHistory || []; + evolve.isEvolving = isEvolving(state); + return { result: evolve }; + }; + module.exports = { getEvolve }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getTriggers.js + var require_getTriggers = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getTriggers.js"(exports, module) { + var { err } = require_utils(); + var getTriggers = async (state, action, SmartWeave2) => { + const path = action.input.query; + if (path.length % 2 === 0) + err(); + const trigger_key = `trigger.${path.join("/")}`; + return { result: state.triggers?.[trigger_key] ?? [] }; + }; + module.exports = { getTriggers }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getBundlers.js + var require_getBundlers = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getBundlers.js"(exports, module) { + var getBundlers = async (state, action, SmartWeave2, kvs) => { + return { result: state.bundlers ?? [] }; + }; + module.exports = { getBundlers }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getInfo.js + var require_getInfo = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getInfo.js"(exports, module) { + var { pick } = require_src(); + var { isEvolving, kv } = require_utils(); + var getInfo = async (state, action, SmartWeave2, kvs) => { + let info = pick( + [ + "auth", + "canEvolve", + "contracts", + "evolve", + "secure", + "owner", + "contracts", + "bundlers", + "hash", + "rollup" + ], + state + ); + info.version = state.version || null; + info.evolveHistory = state.evolveHistory || []; + info.isEvolving = isEvolving(state); + info.rollup ??= { height: 0, hash: SmartWeave2.contract.id }; + info.bundlers ??= []; + return { result: info }; + }; + module.exports = { getInfo }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getTokens.js + var require_getTokens = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getTokens.js"(exports, module) { + var getTokens = async (state, action, SmartWeave2, kvs) => { + const tokens = state.tokens ?? { available: {}, locked: {} }; + const rollup = state.rollup ?? { height: 0, hash: SmartWeave2.contract.id }; + const last_token_lock_date = state.last_token_lock_date ?? 0; + return { result: { tokens, rollup, last_token_lock_date } }; + }; + module.exports = { getTokens }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getAddressLink.js + var require_getAddressLink = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getAddressLink.js"(exports, module) { + var { is, isNil } = require_src(); + var { kv } = require_utils(); + var getAddressLink = async (state, action, SmartWeave2, kvs) => { + const { address } = action.input.query; + const link = await kv(kvs, SmartWeave2).get(`auth.${address.toLowerCase()}`); + if (isNil(link)) + return { result: null }; + let _address = is(Object, link) ? link.address : link; + let _expiry = is(Object, link) ? link.expiry || 0 : 0; + return { + result: { address: _address, expiry: _expiry } + }; + }; + module.exports = { getAddressLink }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/ids.js + var require_ids = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/ids.js"(exports, module) { + var { kv } = require_utils(); + var ids = async (state, action, SmartWeave2, kvs) => { + const { tx } = action.input; + return { + result: await kv(kvs, SmartWeave2).get(`tx_ids.${tx}`) || null + }; + }; + module.exports = { ids }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/validities.js + var require_validities = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/validities.js"(exports, module) { + var { kv } = require_utils(); + var validities = async (state, action, SmartWeave2, kvs) => { + const { tx } = action.input; + return { + result: await kv(kvs, SmartWeave2).get(`tx_validities.${tx}`) || null + }; + }; + module.exports = { validities }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/nonce.js + var require_nonce = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/nonce.js"(exports, module) { + var { isNil } = require_src(); + var { kv, err } = require_utils(); + var nonce = async (state, action, SmartWeave2, kvs) => { + let { address } = action.input; + if (isNil(address)) + err(`No Address`); + if (/^0x/.test(address)) + address = address.toLowerCase(); + return { result: await kv(kvs, SmartWeave2).get(`nonce.${address}`) || 0 }; + }; + module.exports = { nonce }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/version.js + var require_version = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/version.js"(exports, module) { + var { isNil } = require_src(); + var { err } = require_utils(); + var version = async (state, action) => { + if (isNil(state.version)) + err(`No version assigned`); + return { result: state.version }; + }; + module.exports = { version }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/get.js + var require_get = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/get.js"(exports, module) { + var { + complement, + assoc, + tail, + last, + isNil, + includes, + any, + map, + clone + } = require_src(); + var { kv, getDoc, parseQuery, err } = require_utils(); + var { + ranges: _ranges, + pranges: _pranges, + range: _range + } = require_lib(); + var md5 = require_md5(); + var get = async (state, action, cursor = false, SmartWeave2, kvs) => { + let parsed = parseQuery(action.input.query); + const { data } = state; + if (parsed.path.length % 2 === 0) { + const { doc: _data } = await getDoc( + null, + parsed.path, + null, + null, + null, + null, + null, + null, + null, + state, + null, + SmartWeave2, + void 0, + kvs + ); + return { + result: isNil(_data.__data) ? null : cursor ? { + id: last(parsed.path), + setter: _data.setter, + data: _data.__data || null, + __cursor__: true + } : _data.__data || null + }; + } else { + let res = null; + const { limit, path, sort } = parsed; + if (parsed.type === "range") { + res = await _range( + clone(sort), + parsed.queries[0].opt, + path, + kvs, + SmartWeave2, + false, + parsed.queries[0].prefix, + { + start: parsed.startCursor, + end: parsed.endCursor, + reverse: parsed.reverse + } + ); + } else if (parsed.type === "ranges") { + res = await _ranges( + map((v) => ({ + ...v, + sort: clone(sort) + }))(parsed.queries), + limit, + path, + kvs, + SmartWeave2, + { + start: parsed.startCursor, + end: parsed.endCursor, + reverse: parsed.reverse, + sortRange: parsed.sortRange + } + ); + } else if (parsed.type === "pranges") { + res = await _pranges( + map((v) => ({ + ...v, + sort: clone(sort), + path + }))(parsed.queries), + limit, + kvs, + SmartWeave2, + parsed.sortByTail, + { + start: parsed.startCursor, + end: parsed.endCursor, + reverse: parsed.reverse + } + ); + } + return { + result: map( + (v) => cursor ? { + id: v.key, + setter: v.setter, + data: v.val, + __cursor__: true + } : v.val + )(res) + }; + } + }; + module.exports = { get, parseQuery }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getSchema.js + var require_getSchema = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getSchema.js"(exports, module) { + var { isNil, mergeLeft } = require_src(); + var { parse } = require_utils(); + var getSchema = async (state, action, SmartWeave2, kvs) => { + let { _data, data, query, new_data, path } = await parse( + state, + action, + "getSchema", + void 0, + void 0, + void 0, + SmartWeave2, + kvs + ); + return { result: _data.schema || null }; + }; + module.exports = { getSchema }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getRules.js + var require_getRules = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getRules.js"(exports, module) { + var { parse } = require_utils(); + var getRules = async (state, action, SmartWeave2, kvs) => { + let { _data, data, query, new_data, path } = await parse( + state, + action, + "getRules", + void 0, + void 0, + void 0, + SmartWeave2, + kvs + ); + return { result: _data.rules || null }; + }; + module.exports = { getRules }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getIndexes.js + var require_getIndexes = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getIndexes.js"(exports, module) { + var { keys, map, split, isNil, splitEvery } = require_src(); + var { err } = require_utils(); + var { getIndexes: _getIndexes } = require_lib(); + var getIndexes = async (state, action, SmartWeave2, kvs) => { + const path = action.input.query; + if (path.length % 2 === 0) + err(); + const index = keys(await _getIndexes(path, kvs, SmartWeave2)); + return { + result: map((v) => splitEvery(2, split("/")(v)))(index || []) + }; + }; + module.exports = { getIndexes }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/listCollections.js + var require_listCollections = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/listCollections.js"(exports, module) { + var { keys, isNil, mergeLeft } = require_src(); + var { kv, parse } = require_utils(); + var listCollections = async (state, action, SmartWeave2, kvs) => { + let { _data, data, query, new_data, path } = await parse( + state, + action, + "listCollections", + void 0, + void 0, + void 0, + SmartWeave2, + kvs + ); + return { + result: keys( + await kv(kvs, SmartWeave2).get(`data.${path.join("/")}`) || {} + ) + }; + }; + module.exports = { listCollections }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/read/getCollection.js + var require_getCollection = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/read/getCollection.js"(exports, module) { + var { keys, isNil, mergeLeft } = require_src(); + var { err } = require_utils(); + var getCollection = async (state, action, SmartWeave2, kvs) => { + if (isNil(action.input?.query?.[0])) + err("collection ID not specified"); + return { + result: state.collections?.[action.input.query[0]] ?? null + }; + }; + module.exports = { getCollection }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/validate.js + var require_validate = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/validate.js"(exports, module) { + var { err, auth, kv } = require_utils(); + var getAddressLink = async (_signer, state, kvs, SmartWeave2) => { + return await kv(kvs, SmartWeave2).get(`auth.${_signer}`); + }; + var useNonce = async (nonce, original_signer, state, kvs, SmartWeave2) => { + let next_nonce = (await kv(kvs, SmartWeave2).get(`nonce.${original_signer}`) || 0) + 1; + if (next_nonce !== nonce) { + err( + `The wrong nonce[${nonce}] for ${original_signer}: expected ${next_nonce}` + ); + } + await kv(kvs, SmartWeave2).put(`nonce.${original_signer}`, next_nonce); + }; + var validate = async (state, action, func, SmartWeave2, use_nonce = true, kvs) => await auth(state, action, func, SmartWeave2, use_nonce, kvs, { + useNonce, + getAddressLink + }); + module.exports = { validate }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/zkjson.js + var require_zkjson = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/zkjson.js"(exports, module) { + var { isNil, splitEvery, flatten } = require_src(); + var ops = { + $eq: 10, + $ne: 11, + $gt: 12, + $gte: 13, + $lt: 14, + $lte: 15, + $in: 16, + $nin: 17, + $contains: 18, + $contains_any: 19, + $contains_all: 20, + $contains_none: 21 + }; + var opMap = {}; + for (let k in ops) + opMap[ops[k]] = k; + function encodePath(path) { + const parts = []; + let str = ""; + let num = 0; + for (const s of path) { + if (num == 2 && !(s == "." || s == "[")) + throw Error(); + if (s == ".") { + if (num == 2) { + num = 0; + } else { + parts.push(str); + str = ""; + } + } else if (s == "[") { + if (num != 2) { + if (str != "" || parts.length > 0) + parts.push(str); + str = ""; + } + num = 1; + } else if (s == "]") { + if (num != 1) + throw Error(); + num = 2; + if (str == "" || Number.isNaN(+str)) + throw Error(); + parts.push(+str); + str = ""; + } else { + str += s; + } + } + if (str != "") + parts.push(str); + if (parts.length == 0) + parts.push(""); + let encoded = [parts.length]; + for (const p of parts) { + if (typeof p == "number") { + encoded = encoded.concat([0, 0, p]); + } else { + let plen = [p.length]; + if (p.length == 0) + plen.push(1); + encoded = encoded.concat([ + ...plen, + ...p.split("").map((c) => c.charCodeAt(0)) + ]); + } + } + return encoded; + } + function flattenPath(path) { + let p = [path.length]; + for (const v of path) { + p = p.concat(v); + } + return p; + } + function _encode(v, path = []) { + let vals = []; + if (typeof v == "number") { + vals.push([path, encodeVal(v)]); + } else if (typeof v == "boolean") { + vals.push([path, encodeVal(v)]); + } else if (v == null) { + vals.push([path, encodeVal(v)]); + } else if (typeof v == "string") { + vals.push([path, encodeVal(v)]); + } else if (Array.isArray(v)) { + let i = 0; + for (const v2 of v) { + for (const v3 of _encode(v2, [...path, [0, 0, i]])) + vals.push(v3); + i++; + } + } else if (typeof v == "object") { + for (const k in v) { + const key = k.split("").map((c) => c.charCodeAt(0)); + for (let v4 of _encode(v[k], [ + ...path, + [key.length, ...key.length == 0 ? [1] : key] + ])) { + vals.push(v4); + } + } + } + return vals; + } + function encode(json) { + let flattened = _encode(json); + flattened.sort((a, b) => { + const isUndefined = (v) => typeof v == "undefined"; + const max = Math.max(a[0].length, b[0].length); + if (max > 0) { + for (let i = 0; i < max; i++) { + const exA = !isUndefined(a[0][i]); + const exB = !isUndefined(b[0][i]); + if (exA && !exB) + return 1; + if (!exA && exB) + return -1; + const max2 = Math.max(a[0][i].length, b[0][i].length); + if (max2 > 0) { + for (let i2 = 0; i2 < max2; i2++) { + const vA = a[0][i][i2]; + const vB = b[0][i][i2]; + const exA2 = !isUndefined(vA); + const exB2 = !isUndefined(vB); + if (exA2 && !exB2) + return 1; + if (!exA2 && exB2) + return -1; + if (vA > vB) + return 1; + if (vA < vB) + return -1; + } + } + } + } + return 0; + }); + return flattened.reduce( + (arr, v) => arr.concat([...flattenPath(v[0]), ...v[1]]), + [] + ); + } + function encodeVal(v) { + let vals = []; + if (typeof v == "number" || typeof v == "bigint") { + const int = Number.isInteger(v); + let moved = 0; + let num = v; + while (num % 1 != 0) { + num *= 10; + moved += 1; + } + vals = v < 0 ? [2, 0, moved, -num] : [2, 1, moved, num]; + } else if (typeof v == "boolean") { + vals = [1, v ? 1 : 0]; + } else if (v == null) { + vals = [0]; + } else if (typeof v == "string") { + vals = [3, v.length, ...v.split("").map((c) => c.charCodeAt(0))]; + } else { + vals = [4, ...encode(v)]; + } + return vals; + } + function toSignal(arr) { + const _arr = flatten( + arr.map((n) => { + let str = splitEvery(8, n.toString().split("")); + let i2 = 0; + str = str.map((s) => { + const len = i2 == str.length - 1 ? s.length : 9; + i2++; + return len.toString() + s.join(""); + }); + return str; + }) + ); + let _arr2 = []; + let one = 0; + let i = 0; + let start = null; + for (let v of _arr) { + _arr2.push(v); + if (v.length - 1 == 1) { + if (start == null) + start = i; + one += v.length - 1; + if (one == 9) { + _arr2[start] = `0${one}${_arr2[start][1]}`; + for (let i2 = start + 1; i2 <= i; i2++) + _arr2[i2] = `${_arr2[i2][1]}`; + one = 0; + start = null; + } + } else { + if (one > 2) { + _arr2[start] = `0${one}${_arr2[start][1]}`; + for (let i2 = start + 1; i2 < i; i2++) + _arr2[i2] = `${_arr2[i2][1]}`; + } + one = 0; + start = null; + } + i++; + } + if (one > 2) { + _arr2[start] = `0${one}${_arr2[start][1]}`; + for (let i2 = start + 1; i2 <= i - 1; i2++) + _arr2[i2] = `${_arr2[i2][1]}`; + } + let _arr3 = []; + let chain = null; + let cur = 0; + let num = ""; + for (let v of _arr2) { + if (chain == null && +v[0] == 0) { + chain = +v[1]; + cur = 1; + num = v; + } else if (chain != null) { + num += v; + cur++; + if (chain == cur) { + _arr3.push(num); + chain = null; + num = ""; + cur = 0; + } + } else { + _arr3.push(v); + } + } + if (chain != null) + _arr3.push(num); + let arrs2 = []; + let len2 = 0; + let str2 = ""; + for (let v of _arr3) { + if (len2 + v.length > 75) { + arrs2.push("1" + str2); + if (+v[0] == 0) { + let len3 = 75 - len2; + if (len3 == 2 || len3 == 3) { + arrs2[arrs2.length - 1] += `1${v[2]}`; + let new_len = +v[1] - 1; + if (new_len == 2) { + v = `1${v[3]}1${v[4]}`; + } else { + v = `0${new_len}${v.slice(3)}`; + } + } else if (len3 > 3) { + let new_len = +v[1] - 2; + let old_len = 2; + if (len3 == 4) { + arrs2[arrs2.length - 1] += `1${v[2]}1${v[3]}`; + } else { + old_len = len3 - 2; + new_len = +v[1] - old_len; + arrs2[arrs2.length - 1] += `0${old_len}${v.slice(2, 2 + old_len)}`; + } + if (new_len == 1) { + v = `1${v[old_len + 2]}`; + } else if (new_len == 2) { + v = `1${v[old_len + 2]}1${v[old_len + 3]}`; + } else { + v = `0${new_len}${v.slice(old_len + 2)}`; + } + } + } + len2 = 0; + str2 = ""; + } + len2 += v.length; + str2 += v; + } + if (str2 != "") + arrs2.push("1" + str2); + return arrs2; + } + function encodeQuery(v) { + if (!Array.isArray(v)) + throw Error("query must be an array"); + const op = v[0]; + if (isNil(ops[op])) + throw Error(`query not supported: ${op}`); + return [ops[op], ...encodeVal(v[1])]; + } + module.exports = { + encode, + encodePath, + encodeVal, + _encode, + flattenPath, + toSignal, + encodeQuery + }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/add.js + var require_add2 = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/add.js"(exports, module) { + var { includes, isNil, init, last } = require_src(); + var { + parse, + trigger, + err, + validateSchema, + wrapResult + } = require_utils(); + var { validate } = require_validate(); + var { put } = require_lib(); + var { encode, toSignal } = require_zkjson(); + var add = async (state, action, signer, salt = 0, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "add", + SmartWeave2, + true, + kvs + )); + } + let { _data, path, schema, next_data } = await parse( + state, + action, + action.input.function, + signer, + salt, + contractErr, + SmartWeave2, + kvs, + get, + type + ); + if (type !== "cron" && includes(path[0])(["__tokens__", "__bridge__"])) { + err(`${path[0]} cannot be updated directly`); + } + if (!isNil(_data.__data)) + err("doc already exists"); + await validateSchema(schema, next_data, contractErr, state, SmartWeave2); + let { before, after } = await put( + next_data, + last(path), + init(path), + kvs, + SmartWeave2, + signer + ); + if (!isNil(state.max_doc_size)) { + let doc_size = null; + try { + const zkjson = toSignal(encode(after.val)); + doc_size = zkjson.length; + } catch (e) { + err("doc cannot be encoded"); + } + if (doc_size !== null && doc_size > state.max_doc_size) + err("doc too large"); + } + if (isNil(before.val)) + state.collections[init(path).join("/")].count += 1; + if (depth < 10) { + state = await trigger( + ["create"], + state, + path, + SmartWeave2, + kvs, + executeCron, + depth, + { + data: { + path: init(path), + before: before.val, + after: after.val, + id: last(path), + setter: _data.setter + } + }, + action.timestamp + ); + } + return wrapResult(state, original_signer, SmartWeave2, { + docID: last(path), + doc: next_data, + path: init(path) + }); + }; + module.exports = { add }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/set.js + var require_set2 = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/set.js"(exports, module) { + var { includes, init, last, isNil } = require_src(); + var { encode, toSignal } = require_zkjson(); + var { + validateSchema, + wrapResult, + err, + parse, + trigger + } = require_utils(); + var { validate } = require_validate(); + var { put } = require_lib(); + var set = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "set", + SmartWeave2, + true, + kvs + )); + } + let { path, schema, next_data } = await parse( + state, + action, + action.input.function, + signer, + 0, + contractErr, + SmartWeave2, + kvs, + get, + type + ); + if (type !== "cron" && includes(path[0])(["__tokens__", "__bridge__"])) { + err(`${path[0]} cannot be updated directly`); + } + await validateSchema(schema, next_data, contractErr, state, SmartWeave2); + let { before, after } = await put( + next_data, + last(path), + init(path), + kvs, + SmartWeave2, + signer, + true + ); + if (!isNil(state.max_doc_size)) { + let doc_size = null; + try { + const zkjson = toSignal(encode(after.val)); + doc_size = zkjson.length; + } catch (e) { + err("doc cannot be encoded"); + } + if (doc_size !== null && doc_size > state.max_doc_size) + err("doc too large"); + } + if (isNil(before.val)) + state.collections[init(path).join("/")].count += 1; + if (depth < 10) { + state = await trigger( + ["create"], + state, + path, + SmartWeave2, + kvs, + executeCron, + depth, + { + data: { + path: init(path), + before: before.val, + after: after.val, + id: last(path), + setter: after.setter + } + }, + action.timestamp + ); + } + return wrapResult(state, original_signer, SmartWeave2, { + docID: last(path), + doc: next_data, + path: init(path) + }); + }; + module.exports = { set }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/update.js + var require_update2 = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/update.js"(exports, module) { + var { includes, equals, isNil, init, last } = require_src(); + var { + err, + validateSchema, + wrapResult, + parse, + trigger + } = require_utils(); + var { validate } = require_validate(); + var { put } = require_lib(); + var update = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "update", + SmartWeave2, + true, + kvs + )); + } + let { new_data, path, _data, schema, next_data } = await parse( + state, + action, + action.input.function, + signer, + 0, + contractErr, + SmartWeave2, + kvs, + get, + type + ); + if (type !== "cron" && includes(path[0])(["__tokens__", "__bridge__"])) { + err(`${path[0]} cannot be updated directly`); + } + if (isNil(_data.__data)) + err(`Data doesn't exist`); + await validateSchema(schema, next_data, contractErr, state, SmartWeave2); + let { before, after } = await put( + next_data, + last(path), + init(path), + kvs, + SmartWeave2, + signer + ); + const updated = !equals(before.val, after.val); + if (updated && depth < 10) { + state = await trigger( + ["update"], + state, + path, + SmartWeave2, + kvs, + executeCron, + depth, + { + data: { + path: init(path), + before: before.val, + after: after.val, + id: last(path), + setter: _data.setter + } + }, + action.timestamp + ); + } + return wrapResult(state, original_signer, SmartWeave2, { + docID: last(path), + doc: next_data, + path: init(path) + }); + }; + module.exports = { update }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/upsert.js + var require_upsert = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/upsert.js"(exports, module) { + var { includes, equals, isNil, init, last } = require_src(); + var { + err, + validateSchema, + wrapResult, + parse, + trigger + } = require_utils(); + var { validate } = require_validate(); + var { put } = require_lib(); + var { encode, toSignal } = require_zkjson(); + var upsert = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "upsert", + SmartWeave2, + true, + kvs + )); + } + let { data, query, _signer, new_data, path, schema, _data, col, next_data } = await parse( + state, + action, + action.input.function, + signer, + 0, + contractErr, + SmartWeave2, + kvs, + get, + type + ); + if (type !== "cron" && includes(path[0])(["__tokens__", "__bridge__"])) { + err(`${path[0]} cannot be updated directly`); + } + await validateSchema(schema, next_data, contractErr, state, SmartWeave2); + _data.__data = next_data; + let { before, after } = await put( + next_data, + last(path), + init(path), + kvs, + SmartWeave2, + signer + ); + if (!isNil(state.max_doc_size)) { + let doc_size = null; + try { + const zkjson = toSignal(encode(after.val)); + doc_size = zkjson.length; + } catch (e) { + err("doc cannot be encoded"); + } + if (doc_size !== null && doc_size > state.max_doc_size) + err("doc too large"); + } + if (isNil(before.val)) + state.collections[init(path).join("/")].count += 1; + const updated = !equals(before.val, after.val); + if (updated && depth < 10) { + state = await trigger( + [isNil(before.val) ? "craete" : "update"], + state, + path, + SmartWeave2, + kvs, + executeCron, + depth, + { + data: { + path: init(path), + before: before.val, + after: after.val, + id: last(path), + setter: _data.setter + } + }, + action.timestamp + ); + } + return wrapResult(state, original_signer, SmartWeave2, { + docID: last(path), + doc: next_data, + path: init(path) + }); + }; + module.exports = { upsert }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/remove.js + var require_remove2 = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/remove.js"(exports, module) { + var { includes, isNil, last, init } = require_src(); + var { parse, trigger, err, wrapResult } = require_utils(); + var { clone } = require_pure(); + var { validate } = require_validate(); + var { del } = require_lib(); + var remove = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "delete", + SmartWeave2, + true, + kvs + )); + } + const { data, query, new_data, path, _data, col } = await parse( + state, + action, + action.input.function, + signer, + 0, + contractErr, + SmartWeave2, + kvs, + get, + type + ); + if (type !== "cron" && includes(path[0])(["__tokens__", "__bridge__"])) { + err(`${path[0]} cannot be updated directly`); + } + if (isNil(_data.__data)) + err(`Data doesn't exist`); + let { before, after } = await del( + last(path), + init(path), + kvs, + SmartWeave2, + signer + ); + if (!isNil(before.val)) + state.collections[init(path).join("/")].count -= 1; + if (depth < 10) { + state = await trigger( + ["delete"], + state, + path, + SmartWeave2, + kvs, + executeCron, + depth, + { + data: { + path: init(path), + before: before.val, + after: after.val, + id: last(path), + setter: _data.setter + } + }, + action.timestamp + ); + } + return wrapResult(state, original_signer, SmartWeave2, { + docID: last(path), + doc: null, + path: init(path) + }); + }; + module.exports = { remove }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/query.js + var require_query = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/query.js"(exports, module) { + var { includes, init, last, isNil, tail } = require_src(); + var { wrapResult, err, parse, trigger } = require_utils(); + var { validate } = require_validate(); + var { put } = require_lib(); + var { add } = require_add2(); + var { set } = require_set2(); + var { update } = require_update2(); + var { upsert } = require_upsert(); + var { remove } = require_remove2(); + var query = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "query", + SmartWeave2, + true, + kvs + )); + } + const [func, ...input] = action.input.query; + let action2 = { + caller: action.caller, + input: { function: func, query: input, caller: action.input.caller }, + timestamp: action.timestamp + }; + if (!isNil(action.jobID)) + action2.jobID = action.jobID; + if (!isNil(action.relayer)) + action2.relayer = action.relayer; + if (!isNil(action.extra)) + action2.extra = action.extra; + const params = [ + state, + action2, + signer, + null, + SmartWeave2, + kvs, + executeCron, + void 0, + type, + get + ]; + const [_func, ..._method] = func.split(":"); + if (_method.length < 1) { + err(`method name required`); + } else if (_method.length > 1) { + err(`method name cannot contain ":"`); + } else if (includes(_method[0])([ + "add", + "set", + "update", + "upsert", + "delete", + "write", + "create", + "get" + ])) { + err( + `method name cannot be add | set | update | upsert | delete | write | create | get` + ); + } + switch (_func) { + case "add": + return await add( + state, + action2, + signer, + void 0, + null, + SmartWeave2, + kvs, + executeCron, + void 0, + type, + get + ); + case "set": + return await set(...params); + case "update": + return await update(...params); + case "upsert": + return await upsert(...params); + case "delete": + return await remove(...params); + default: + err( + `No function supplied or function not recognised: "${action2.input.function}"` + ); + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { query }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/nostr.js + var require_nostr = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/nostr.js"(exports, module) { + var { isNil } = require_src(); + var { err, read } = require_utils(); + var { set } = require_set2(); + var nostr = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if (isNil(state.nostr)) + err("nostr is disabled"); + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + const event = action.input.query; + const { isValid } = await read( + state.contracts.nostr, + { function: "verify", event }, + SmartWeave2 + ); + if (!isValid) + err(`The wrong signature`); + let params = [ + state, + { + input: { + query: [event, state.nostr, event.id], + function: `set:${state.nostr}` + } + }, + event.pubkey, + false, + SmartWeave2, + kvs, + executeCron, + void 0, + "direct", + get + ]; + return await set(...params); + }; + module.exports = { nostr }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/tick.js + var require_tick = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/tick.js"(exports, module) { + var { isNil, init, last } = require_src(); + var { err, wrapResult } = require_utils(); + var { validate } = require_validate(); + var tick = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get, count = 0) => { + if (count === 0) + err("no crons executed"); + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "tick", + SmartWeave2, + true, + kvs + )); + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { tick }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/creditNotice.js + var require_creditNotice = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/creditNotice.js"(exports, module) { + var { err, wrapResult } = require_utils(); + var { includes, is, of, append, isNil } = require_src(); + var creditNotice = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + let token = action.caller; + state.tokens ??= { available: {}, locked: {} }; + state.tokens.available[token] ??= "0"; + if (isNil(action.input.Quantity) || Number.isNaN(action.input.Quantity) || !/^[0-9]+$/.test(action.input.Quantity)) { + err(`Quantity is not a valid number: ${action.input.Quantity}`); + } + state.tokens.available[token] = (BigInt(state.tokens.available[token]) + BigInt(action.input.Quantity ?? "0")).toString(); + return wrapResult(state, token, SmartWeave2); + }; + module.exports = { creditNotice }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/withdrawToken.js + var require_withdrawToken = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/withdrawToken.js"(exports, module) { + var { err, wrapResult } = require_utils(); + var { isNil } = require_src(); + var { update } = require_update2(); + var { validate } = require_validate(); + var withdrawToken = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + let { token, to } = action.input.query; + if (!/^[a-z0-9_-]{43}$/i.test(to)) + err("Invalid Arweave address."); + state.tokens ??= { + available: {}, + available_l2: {}, + locked: {}, + allocated: {} + }; + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "withdrawToken", + SmartWeave2, + true, + kvs + )); + } + const _token = (await get( + state, + { + caller: action.caller, + input: { + function: "get", + query: ["__tokens__", ["key", "==", `${token}:${signer}`]] + } + }, + true, + SmartWeave2, + kvs + ))?.result?.[0] || null; + const withdraw = _token?.data?.withdraw ?? 0; + if (withdraw === 0) + err("No withdrawable token found"); + await update( + state, + { + caller: action.caller, + input: { + function: "update", + query: [{ withdraw: 0 }, "__tokens__", _token.id] + } + }, + signer, + void 0, + SmartWeave2, + kvs, + executeCron, + void 0, + "cron", + get + ); + state.tokens.allocated[token] = (BigInt(state.tokens.allocated[token]) - BigInt(withdraw)).toString(); + if (type === "bundle") { + state.tokens.locked[token] = (BigInt(state.tokens.locked[token]) - BigInt(withdraw)).toString(); + } + return wrapResult(state, original_signer, SmartWeave2, { + events: [ + { + type: "ao_message", + attributes: [ + { key: "Target", value: token }, + { key: "Action", value: "Transfer" }, + { key: "Quantity", value: BigInt(withdraw).toString() }, + { key: "Recipient", value: to } + ] + } + ] + }); + }; + module.exports = { withdrawToken }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/bridgeToken.js + var require_bridgeToken = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/bridgeToken.js"(exports, module) { + var { err, wrapResult, isEVMAddress } = require_utils(); + var { isNil, includes } = require_src(); + var { update } = require_update2(); + var { add } = require_add2(); + var { validate } = require_validate(); + var bridgeToken = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + let { token, to, amount, destination } = action.input.query; + if (!includes(destination)(state.bridges ?? [])) { + err(`Destination not allowed: ${destination}`); + } + if (!isEVMAddress(to)) + err("Invalid EVM address."); + if (amount <= 0) + err(`amount must be positive: ${amount}`); + state.tokens ??= { + available: {}, + available_l2: {}, + locked: {}, + allocated: {} + }; + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "bridgeToken", + SmartWeave2, + true, + kvs + )); + } + const _token = (await get( + state, + { + caller: action.caller, + input: { + function: "get", + query: ["__tokens__", ["key", "==", `${token}:${signer}`]] + } + }, + true, + SmartWeave2, + kvs + ))?.result?.[0] || null; + const withdraw = _token?.data?.withdraw ?? 0; + if (withdraw - amount < 0) + err("Not enough withdrawable token"); + await update( + state, + { + caller: action.caller, + input: { + function: "update", + query: [ + { withdraw: { __op: "inc", n: -amount } }, + "__tokens__", + _token.id + ] + } + }, + signer, + void 0, + SmartWeave2, + kvs, + executeCron, + void 0, + "cron", + get + ); + await add( + state, + { + caller: action.caller, + input: { + function: "add", + query: [ + { + from: signer, + amount, + to, + token, + destination + }, + "__bridge__" + ] + } + }, + signer, + void 0, + void 0, + SmartWeave2, + kvs, + executeCron, + void 0, + "cron", + get + ); + state.tokens.allocated[token] = (BigInt(state.tokens.allocated[token]) - BigInt(amount)).toString(); + if (type === "bundle") { + state.tokens.locked[token] = (BigInt(state.tokens.locked[token]) - BigInt(amount)).toString(); + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { bridgeToken }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/addOwner.js + var require_addOwner = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/addOwner.js"(exports, module) { + var { err, isOwner, wrapResult } = require_utils(); + var { includes, is, of, append, isNil } = require_src(); + var { validate } = require_validate(); + var addOwner = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "addOwner", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (!is(String)(action.input.query.address)) + err("Value must be string."); + if (includes(action.input.query.address, owner)) { + err("The owner already exists."); + } + state.owner = append(action.input.query.address, owner); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { addOwner }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/removeOwner.js + var require_removeOwner = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/removeOwner.js"(exports, module) { + var { err, isOwner, wrapResult } = require_utils(); + var { isNil, without, includes, is, of } = require_src(); + var { validate } = require_validate(); + var removeOwner = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "removeOwner", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (!is(String)(action.input.query.address)) { + err("Value must be string."); + } + if (!includes(action.input.query.address, owner)) { + err("The owner doesn't exist."); + } + state.owner = without([action.input.query.address], owner); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { removeOwner }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/setAlgorithms.js + var require_setAlgorithms = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/setAlgorithms.js"(exports, module) { + var { isNil, is, intersection } = require_src(); + var { err, wrapResult, parse } = require_utils(); + var { validate } = require_validate(); + var setAlgorithms = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "setAlgorithms", + SmartWeave2, + true, + kvs + )); + } + let { _data, data, query, new_data, path } = await parse( + state, + action, + "setAlgorithms", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + if (!is(Array)(new_data) || intersection(new_data)(["secp256k1", "ed25519", "rsa256", "secp256k1-2"]).length !== new_data.length) { + err(`The wrong algorithms`); + } + state.auth.algorithms = new_data; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { setAlgorithms }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/setCanEvolve.js + var require_setCanEvolve = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/setCanEvolve.js"(exports, module) { + var { err, isOwner, wrapResult } = require_utils(); + var { isNil, is } = require_src(); + var { validate } = require_validate(); + var setCanEvolve = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "setCanEvolve", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (!is(Boolean)(action.input.query.value)) { + err("Value must be a boolean."); + } + state.canEvolve = action.input.query.value; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { setCanEvolve }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/setSecure.js + var require_setSecure = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/setSecure.js"(exports, module) { + var { err, isOwner, wrapResult } = require_utils(); + var { isNil, is } = require_src(); + var { validate } = require_validate(); + var setSecure = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "setSecure", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (!is(Boolean)(action.input.query.value)) + err("Value must be a boolean."); + state.secure = action.input.query.value; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { setSecure }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/setSchema.js + var require_setSchema = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/setSchema.js"(exports, module) { + var { isNil, mergeLeft } = require_src(); + var { kv, err, parse, wrapResult } = require_utils(); + var { clone } = require_pure(); + var { validate } = require_validate(); + var { validate: validator } = require_jsonschema(); + var setSchema = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "setSchema", + SmartWeave2, + true, + kvs + )); + } + let { _data, data, query, new_data, path } = await parse( + state, + action, + "setSchema", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + _data.schema = new_data; + try { + const { error } = await validator( + void 0, + clone(_data.schema), + state, + SmartWeave2 + ); + if (error) + err("schema error"); + } catch (e) { + err("schema error"); + } + await kv(kvs, SmartWeave2).put(`data.${path.join("/")}`, _data); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { setSchema }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/addIndex.js + var require_addIndex2 = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/addIndex.js"(exports, module) { + var { o, flatten, isNil, mergeLeft, includes } = require_src(); + var { err, wrapResult, parse } = require_utils(); + var { validate } = require_validate(); + var { addIndex: __addIndex } = require_lib(); + var addIndex = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "addIndex", + SmartWeave2, + true, + kvs + )); + } + let { new_data, path } = await parse( + state, + action, + "addIndex", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + if (o(includes("__id__"), flatten)(new_data)) { + err("index cannot contain __id__"); + } + await __addIndex(new_data, path, kvs, SmartWeave2, signer); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { addIndex }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/removeIndex.js + var require_removeIndex = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/removeIndex.js"(exports, module) { + var { isNil } = require_src(); + var { err, wrapResult, parse } = require_utils(); + var { validate } = require_validate(); + var { removeIndex: __removeIndex } = require_lib(); + var removeIndex = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "removeIndex", + SmartWeave2, + true, + kvs + )); + } + let { new_data, path } = await parse( + state, + action, + "removeIndex", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + await __removeIndex(new_data, path, kvs, SmartWeave2, signer); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { removeIndex }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/setRules.js + var require_setRules = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/setRules.js"(exports, module) { + var { + insert, + last, + isNil, + mergeLeft, + includes, + difference, + is + } = require_src(); + var { kv, parse, err, wrapResult } = require_utils(); + var { validate } = require_validate(); + var setRules = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "setRules", + SmartWeave2, + true, + kvs + )); + } + let { _data, data, query, new_data, path } = await parse( + state, + action, + "setRules", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + if (new_data.__op !== "del" && !is(Array, new_data)) { + err("rules are not an array"); + } + if (action.input.query.length % 2 === 1) { + let __data = _data?.rules ?? []; + let [key, index] = last(action.input.query).split("@"); + if (is(Object, __data) && !is(Array, __data)) { + err("the current rules is not an array"); + } + let exists = false; + let left = []; + for (let [i, v] of __data.entries()) { + if (v[0] === key) { + exists = true; + index ??= i; + } else { + left.push(v); + } + } + if (!exists) + index ??= __data.length; + if (!is(Number, +index)) + err("index is not a number"); + _data.rules = new_data.__op === "del" ? left : insert(index, [key, new_data], left); + } else { + for (let k in new_data) { + if (!is(Array, new_data[k])) + err("rules are not an array"); + } + _data.rules = new_data; + } + await kv(kvs, SmartWeave2).put(`data.${path.join("/")}`, _data); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { setRules }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/removeCron.js + var require_removeCron = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/removeCron.js"(exports, module) { + var { isNil } = require_src(); + var { err, isOwner, wrapResult, parse } = require_utils(); + var { validate } = require_validate(); + var removeCron = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "removeCron", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (isNil(state.crons)) { + const timestamp = isNil(action.timestamp) ? SmartWeave2.block.timestamp : Math.round(action.timestamp / 1e3); + state.crons = { lastExecuted: timestamp, crons: {} }; + } + const [key] = action.input.query; + if (isNil(state.crons.crons[key])) + err("cron doesn't exist"); + delete state.crons.crons[key]; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { removeCron }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/addRelayerJob.js + var require_addRelayerJob = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/addRelayerJob.js"(exports, module) { + var { isNil, is, intersection } = require_src(); + var { clone } = require_pure(); + var { err, wrapResult, parse } = require_utils(); + var { validate } = require_validate(); + var { validate: validator } = require_jsonschema(); + var addRelayerJob = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "addRelayerJob", + SmartWeave2, + true, + kvs + )); + } + let { _data, data, query, new_data, path } = await parse( + state, + action, + "addRelayerJob", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + const [jobID, job] = query; + if (!isNil(job.relayers) && !is(Array, job.relayers)) { + err("relayers must be Array"); + } + if (!isNil(job.signers) && !is(Array, job.signers)) { + err("signers must be Array"); + } + if (!isNil(job.schema)) { + try { + const { error } = await validator( + void 0, + clone(job.schema), + state, + SmartWeave2 + ); + if (error) + err("schema error"); + } catch (e) { + err("schema error"); + } + } + if (isNil(state.relayers)) + state.relayers = {}; + state.relayers[jobID] = job; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { addRelayerJob }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/removeRelayerJob.js + var require_removeRelayerJob = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/removeRelayerJob.js"(exports, module) { + var { isNil, is, intersection } = require_src(); + var { parse, clone, err, wrapResult } = require_utils(); + var { validate } = require_validate(); + var removeRelayerJob = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "removeRelayerJob", + SmartWeave2, + true, + kvs + )); + } + let { _data, data, query, new_data, path } = await parse( + state, + action, + "removeRelayerJob", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + const [jobID] = query; + if (isNil(state.relayers[jobID])) + err("relayer job doesn't exist"); + delete state.relayers[jobID]; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { removeRelayerJob }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/linkContract.js + var require_linkContract = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/linkContract.js"(exports, module) { + var { isNil, is } = require_src(); + var { validate } = require_validate(); + var { err, wrapResult, parse } = require_utils(); + var linkContract = async (state, action, signer, contractErr = true, SmartWeave2, kvs) => { + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "linkContract", + SmartWeave2, + true, + kvs + )); + } + let { _data, data, query, new_data, path } = await parse( + state, + action, + "linkContract", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + const [key, address] = action.input.query; + if (isNil(key) || isNil(address)) { + err(`Key or Address not specified`); + } + if (isNil(state.contracts)) + state.contracts = {}; + state.contracts[key] = address; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { linkContract }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/unlinkContract.js + var require_unlinkContract = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/unlinkContract.js"(exports, module) { + var { isNil, is } = require_src(); + var { validate } = require_validate(); + var { err, wrapResult, parse } = require_utils(); + var unlinkContract = async (state, action, signer, contractErr = true, SmartWeave2, kvs) => { + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "unlinkContract", + SmartWeave2, + true, + kvs + )); + } + let { _data, data, query, new_data, path } = await parse( + state, + action, + "unlinkContract", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + const [key] = action.input.query; + if (isNil(key)) { + throw new ContractError(`Key not specified`); + } + if (isNil(state.contracts)) + state.contracts = {}; + delete state.contracts[key]; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { unlinkContract }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/removeAddressLink.js + var require_removeAddressLink = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/removeAddressLink.js"(exports, module) { + var { is, isNil } = require_src(); + var { validate } = require_validate(); + var { err, wrapResult, kv } = require_utils(); + var removeAddressLink = async (state, action, signer, contractErr = true, SmartWeave2, kvs) => { + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "removeAddressLink", + SmartWeave2, + true, + kvs + )); + } + const { address } = action.input.query; + const link = await kv(kvs, SmartWeave2).get(`auth.${address.toLowerCase()}`); + if (isNil(link)) + err("link doesn't exist"); + let _address = is(Object, link) ? link.address : link; + if (signer !== address.toLowerCase() && signer !== _address) { + err("signer is neither owner nor delegator"); + } + await kv(kvs, SmartWeave2).put(`auth.${address.toLowerCase()}`, null); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { removeAddressLink }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/addCron.js + var require_addCron = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/addCron.js"(exports, module) { + var { isNil } = require_src(); + var { clone } = require_pure(); + var { err, isOwner, wrapResult } = require_utils(); + var { validate } = require_validate(); + var addCron = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "addCron", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + const timestamp = isNil(action.timestamp) ? SmartWeave2.block.timestamp : Math.round(action.timestamp / 1e3); + if (isNil(state.crons)) { + state.crons = { lastExecuted: timestamp, crons: {} }; + } + const [cron, key] = action.input.query; + let _cron = clone(cron); + if (isNil(_cron.start)) { + _cron.start = timestamp; + } + if (timestamp > _cron.start) { + err("start cannot be before the block time"); + } + if (!isNil(_cron.end) && timestamp > _cron.end) { + err("end cannot be before start"); + } + if (isNil(_cron.jobs) || _cron.jobs.length === 0) { + err("cron has no jobs"); + } + if (isNil(_cron.span) || Number.isNaN(_cron.span * 1) || _cron.span <= 0) { + err("span must be greater than 0"); + } + state.crons.crons[key] = _cron; + if (_cron.do) { + try { + await executeCron( + { start: _cron.start, crons: _cron }, + state, + SmartWeave2, + kvs, + action.timestamp + ); + } catch (e) { + console.log(e); + err("cron failed to execute"); + } + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { addCron }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/addAddressLink.js + var require_addAddressLink = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/addAddressLink.js"(exports, module) { + var { is, isNil } = require_src(); + var { read, err, wrapResult, kv } = require_utils(); + var { validate } = require_validate(); + var addAddressLink = async (state, action, signer, contractErr = true, SmartWeave2, _linkTo, kvs) => { + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "addAddressLink", + SmartWeave2, + true, + kvs + )); + } + let _expiry = 0; + let linkTo = null; + let address = null; + let linkToAddr = signer; + if (!isNil(action.input.query.proof)) { + const q = action.input.query; + const res = await read( + state.contracts.polygonID, + { + function: "verify", + proof: q.proof, + pub_signals: q.pub_signals + }, + SmartWeave2 + ); + if (!res.valid) + err("invalid proof"); + if (res.pub_signals.userID !== action.input.query.address) { + err("DID mismatch"); + } + if (BigInt(signer).toString().slice(0, 15) !== res.pub_signals.value[0].toString()) { + err("the wrong proof"); + } + address = signer; + linkToAddr = res.pub_signals.userID; + } else { + const { + address: _address, + signature, + expiry, + linkTo: _linkTo2 + } = action.input.query; + address = _address; + linkTo = _linkTo2; + if ((!isNil(linkTo) || !isNil(_linkTo2)) && linkTo !== _linkTo2) + err("linkTo doesn't match"); + if (!isNil(expiry) && !is(Number, expiry)) + err("expiry must be a number"); + const { nonce } = action.input; + _expiry = expiry || 0; + const EIP712Domain = [ + { name: "name", type: "string" }, + { name: "version", type: "string" }, + { name: "verifyingContract", type: "string" } + ]; + const domain = { + name: state.auth.name, + version: state.auth.version, + verifyingContract: SmartWeave2.contract.id + }; + let query = typeof expiry === "undefined" ? { address: signer } : { address: signer, expiry }; + if (!isNil(linkTo)) + query.linkTo = linkTo; + const message = { + nonce, + query: JSON.stringify({ + func: "auth", + query + }) + }; + const data = { + types: { + EIP712Domain, + Query: [ + { name: "query", type: "string" }, + { name: "nonce", type: "uint256" } + ] + }, + domain, + primaryType: "Query", + message + }; + let signer2 = (await SmartWeave2.contracts.viewContractState(state.contracts.ethereum, { + function: "verify712", + data, + signature + })).result.signer; + const _signer = signer2.toLowerCase(); + if (_signer !== address.toLowerCase()) + err(); + } + const link = await kv(kvs, SmartWeave2).get(`auth.${address}`); + const timestamp = isNil(action.timestamp) ? SmartWeave2.block.timestamp : Math.round(action.timestamp / 1e3); + if (!isNil(link)) { + let prev_expiry = is(Object, link) ? link.expiry || 0 : 0; + if (timestamp < prev_expiry) { + err("link already exists"); + } + } + await kv(kvs, SmartWeave2).put(`auth.${address.toLowerCase()}`, { + address: linkTo || linkToAddr, + expiry: _expiry === 0 ? 0 : timestamp + _expiry + }); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { addAddressLink }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/evolve.js + var require_evolve2 = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/evolve.js"(exports, module) { + var { isNil, is, of, includes, mergeLeft } = require_src(); + var { err, isOwner, wrapResult } = require_utils(); + var { validate } = require_validate(); + var evolve = async (state, action, signer, contractErr = true, SmartWeave2, kvs) => { + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "evolve", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (action.input.value !== action.input.query.value) { + err("Values don't match."); + } + if (state.canEvolve) { + state.evolve = action.input.value; + } else { + err(`This contract cannot evolve.`); + } + state.evolveHistory ||= []; + state.evolveHistory.push({ + signer, + block: SmartWeave2.block.height, + date: SmartWeave2.block.timestamp, + srcTxId: action.input.value, + oldVersion: state.version + }); + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { evolve }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/lockTokens.js + var require_lockTokens = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/lockTokens.js"(exports, module) { + var { err, wrapResult } = require_utils(); + var { includes, is, of, append, isNil } = require_src(); + var lockTokens = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + state.tokens ??= { available: {}, available_l2: {}, locked: {} }; + state.tokens.available_l2 ??= {}; + const height = action.extra.height; + const last_token_lock_date = state.last_token_lock_date ?? 0; + if (height <= state.last_token_lock_height) + err("tokens already locked"); + if (last_token_lock_date !== action.extra.last_token_lock_date) { + err("last_token_lock_date doesn't match"); + } + const tokens = action.extra.tokens; + for (const k in tokens) { + state.tokens.available[k] ??= "0"; + state.tokens.available_l2[k] ??= "0"; + state.tokens.locked[k] ??= "0"; + if (type === "bundle") { + state.tokens.available[k] = (BigInt(state.tokens.available[k]) - BigInt(tokens[k] ?? "0")).toString(); + state.tokens.locked[k] = (BigInt(state.tokens.locked[k]) + BigInt(tokens[k] ?? "0")).toString(); + } + state.tokens.available_l2[k] = (BigInt(state.tokens.available_l2[k]) + BigInt(tokens[k] ?? "0")).toString(); + } + state.last_tokens_lock_height = action.extra.height; + return wrapResult(state, signer, SmartWeave2); + }; + module.exports = { lockTokens }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/relay.js + var require_relay = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/relay.js"(exports, module) { + var { + intersection, + is, + uniq, + includes, + map, + toLower, + init, + last, + isNil, + head, + nth + } = require_src(); + var { err, read, validateSchema, wrapResult } = require_utils(); + var { validate } = require_validate(); + var { lockTokens } = require_lockTokens(); + var { add } = require_add2(); + var { set } = require_set2(); + var { update } = require_update2(); + var { upsert } = require_upsert(); + var { remove } = require_remove2(); + var { addAddressLink } = require_addAddressLink(); + var { removeAddressLink } = require_removeAddressLink(); + var { query: _query } = require_query(); + var relay = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get, batch) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let jobID = head(action.input.query); + let input = nth(1, action.input.query); + let query = nth(2, action.input.query); + let relayer = type === "bundle" ? action.caller : null; + const relayers = state.relayers || {}; + let action2 = { + caller: action.caller, + input, + relayer, + extra: query, + jobID, + timestamp: action.timestamp + }; + let original_signer = null; + if (type !== "bundle") { + if (isNil(relayers[jobID])) + err(`relayer jobID [${jobID}] doesn't exist`); + if (input.jobID !== jobID) + err(`jobID mismatch [${input.jobID}|${jobID}]`); + if (relayers[jobID]?.internalWrites !== true) { + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "relay", + SmartWeave2, + false, + kvs + )); + } + relayer = signer; + } else { + relayer = action.caller; + } + if (!isNil(relayers[jobID].relayers)) { + const allowed_relayers = map((v) => /^0x.+$/.test(v) ? toLower(v) : v)( + relayers[jobID].relayers || [] + ); + } + if (includes(relayers[jobID].multisig_type)(["number", "percent"])) { + const allowed_signers = map(toLower)(relayers[jobID].signers || []); + let signers = []; + if (is(Array)(action.input.multisigs)) { + const data = { + extra: action2.extra, + jobID, + params: input + }; + for (const signature of action.input.multisigs) { + const _signer = (await read( + state.contracts.ethereum, + { + function: "verify", + data, + signature + }, + SmartWeave2 + )).signer; + signers.push(_signer); + } + } + const matched_signers = intersection(allowed_signers, signers); + let min = 1; + if (relayers[jobID].multisig_type === "percent") { + min = Math.ceil( + relayers[jobID].signers.length * (relayers[jobID].multisig || 100) / 100 + ); + } else if (relayers[jobID].multisig_type === "number") { + min = relayers[jobID].multisig || 1; + } + if (matched_signers.length < min) { + err( + `not enough number of allowed signers [${matched_signers.length}/${min}] for the job[${jobID}]` + ); + } + } + if (!isNil(relayers[jobID].schema)) { + try { + validateSchema(relayers[jobID].schema, query); + } catch (e) { + err("relayer data validation error"); + } + } + } + const params = [ + state, + action2, + null, + null, + SmartWeave2, + kvs, + executeCron, + void 0, + type, + get + ]; + switch (action2.input.function) { + case "add": + return await add( + state, + action2, + null, + void 0, + null, + SmartWeave2, + kvs, + executeCron, + void 0, + type, + get + ); + case "lockTokens": + return await lockTokens(...params); + case "query": + return await _query(...params); + case "set": + return await set(...params); + case "update": + return await update(...params); + case "upsert": + return await upsert(...params); + case "delete": + return await remove(...params); + case "removeAddressLink": + return await removeAddressLink(...params); + case "batch": + return await batch(...params); + case "addAddressLink": + return await addAddressLink( + state, + action2, + null, + null, + SmartWeave2, + action2.extra.linkTo, + kvs, + executeCron, + void 0, + type, + get + ); + default: + err( + `No function supplied or function not recognised: "${action2.input.function}"` + ); + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { relay }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/addTrigger.js + var require_addTrigger = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/addTrigger.js"(exports, module) { + var { insert, findIndex, propEq, isNil } = require_src(); + var { err, wrapResult, parse } = require_utils(); + var { validate } = require_validate(); + var addTrigger = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "addTrigger", + SmartWeave2, + true, + kvs + )); + } + let { col, _data, data, query, new_data, path } = await parse( + state, + action, + "addTrigger", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + const trigger_key = `trigger.${path.join("/")}`; + state.triggers ??= {}; + state.triggers[trigger_key] ??= []; + let { index, key, on, func, version } = action.input.query[0]; + const _index = findIndex(propEq("key", key), state.triggers[trigger_key]); + version ??= 1; + if (_index !== -1) { + state.triggers[trigger_key][_index] = { key, on, func, version }; + } else if (isNil(index)) { + state.triggers[trigger_key].push({ key, on, func, version }); + } else { + state.triggers[trigger_key] = insert( + index, + { key, on, func, version }, + state.triggers[trigger_key] + ); + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { addTrigger }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/removeTrigger.js + var require_removeTrigger = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/removeTrigger.js"(exports, module) { + var { insert, findIndex, propEq, isNil } = require_src(); + var { parse, err, wrapResult } = require_utils(); + var { validate } = require_validate(); + var removeTrigger = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "removeTrigger", + SmartWeave2, + true, + kvs + )); + } + let { col, _data, data, query, new_data, path } = await parse( + state, + action, + "removeTrigger", + signer, + null, + contractErr, + SmartWeave2, + kvs + ); + const trigger_key = `trigger.${path.join("/")}`; + state.triggers ??= {}; + state.triggers[trigger_key] ??= []; + let key = action.input.query[0]; + const _index = findIndex(propEq("key", key), state.triggers[trigger_key]); + if (_index !== -1) { + state.triggers[trigger_key].splice(_index, 1); + } else { + err("trigger doesn't exist"); + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { removeTrigger }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/batch.js + var require_batch = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/batch.js"(exports, module) { + var { includes, isNil, clone } = require_src(); + var { err, wrapResult, parse } = require_utils(); + var { validate } = require_validate(); + var { set } = require_set2(); + var { add } = require_add2(); + var { update } = require_update2(); + var { upsert } = require_upsert(); + var { remove } = require_remove2(); + var { query } = require_query(); + var { relay } = require_relay(); + var { addAddressLink } = require_addAddressLink(); + var { removeAddressLink } = require_removeAddressLink(); + var { setRules } = require_setRules(); + var { setSchema } = require_setSchema(); + var { setCanEvolve } = require_setCanEvolve(); + var { setSecure } = require_setSecure(); + var { setAlgorithms } = require_setAlgorithms(); + var { addIndex } = require_addIndex2(); + var { addOwner } = require_addOwner(); + var { addRelayerJob } = require_addRelayerJob(); + var { removeCron } = require_removeCron(); + var { removeIndex } = require_removeIndex(); + var { removeOwner } = require_removeOwner(); + var { removeRelayerJob } = require_removeRelayerJob(); + var { addTrigger } = require_addTrigger(); + var { removeTrigger } = require_removeTrigger(); + var batch = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + if ((state.bundlers ?? []).length !== 0 && type === "direct") { + err("only bundle queries are allowed"); + } + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "batch", + SmartWeave2, + true, + kvs + )); + } + let _state = state; + let i = 0; + for (let v of action.input.query) { + let [op, ...query2] = v; + const _action = includes(op)(["addOwner", "removeOwner"]) ? { + input: { function: op, query: { address: query2[0] } }, + caller: action.caller, + timestamp: action.timestamp + } : includes(op)(["setCanEvolve", "setSecure"]) ? { + input: { function: op, query: { value: query2[0] } }, + caller: action.caller, + timestamp: action.timestamp + } : { + input: { function: op, query: query2 }, + caller: action.caller, + timestamp: action.timestamp + }; + let res = null; + const params = [ + _state, + _action, + signer, + contractErr, + SmartWeave2, + kvs, + executeCron, + depth, + type, + get + ]; + switch (op) { + case "add": + res = await add( + _state, + _action, + signer, + i, + contractErr, + SmartWeave2, + kvs, + executeCron, + depth, + type, + get + ); + break; + case "set": + res = await set(...params); + break; + case "relay": + res = await relay(...params); + break; + case "query": + res = await query2(...params); + break; + case "update": + res = await update(...params); + break; + case "upsert": + res = await upsert(...params); + break; + case "delete": + res = await remove(...params); + break; + case "setRules": + res = await setRules(...params); + break; + case "setSchema": + res = await setSchema(...params); + break; + case "setCanEvolve": + res = await setCanEvolve(...params); + break; + case "setSecure": + res = await setSecure(...params); + break; + case "setAlgorithms": + res = await setAlgorithms(...params); + break; + case "addIndex": + res = await addIndex(...params); + break; + case "addOwner": + res = await addOwner(...params); + break; + case "addRelayerJob": + res = await addRelayerJob(...params); + break; + case "addCron": + const { addCron } = require_addCron(); + res = await addCron(...params); + break; + case "removeCron": + res = await removeCron(...params); + break; + case "removeIndex": + res = await removeIndex(...params); + break; + case "removeOwner": + res = await removeOwner(...params); + break; + case "removeRelayerJob": + res = await removeRelayerJob(...params); + break; + case "addTrigger": + res = await addTrigger(...params); + break; + case "removeTrigger": + res = await removeTrigger(...params); + break; + case "removeAddressLink": + res = await removeAddressLink(...params); + break; + case "addAddressLink": + res = await addAddressLink( + _state, + _action, + signer, + contractErr, + SmartWeave2, + void 0, + kvs, + get + ); + break; + default: + const msg = `No function supplied or function not recognised: "${op}"`; + if (contractErr) { + err(msg); + } else { + throw msg; + } + } + _state = res.state; + i++; + } + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { batch }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/setBundlers.js + var require_setBundlers = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/setBundlers.js"(exports, module) { + var { err, isOwner, wrapResult } = require_utils(); + var { includes, is, of, append, isNil } = require_src(); + var { validate } = require_validate(); + var setBundlers = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct") => { + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "setBundlers", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (!is(Array)(action.input.query.bundlers)) + err("Value must be an array."); + state.bundlers = action.input.query.bundlers; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { setBundlers }; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/bundle.js + var require_bundle = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/bundle.js"(exports, module) { + var { err, wrapResult, read, kv } = require_utils(); + var { clone } = require_pure(); + var { isNil, includes, map, addIndex: _addIndex, concat } = require_src(); + var { set } = require_set2(); + var { add } = require_add2(); + var { update } = require_update2(); + var { upsert } = require_upsert(); + var { remove } = require_remove2(); + var { relay } = require_relay(); + var { batch } = require_batch(); + var { query } = require_query(); + var { setRules } = require_setRules(); + var { setSchema } = require_setSchema(); + var { setCanEvolve } = require_setCanEvolve(); + var { setSecure } = require_setSecure(); + var { setAlgorithms } = require_setAlgorithms(); + var { addIndex } = require_addIndex2(); + var { addOwner } = require_addOwner(); + var { withdrawToken } = require_withdrawToken(); + var { bridgeToken } = require_bridgeToken(); + var { addRelayerJob } = require_addRelayerJob(); + var { removeCron } = require_removeCron(); + var { removeIndex } = require_removeIndex(); + var { removeOwner } = require_removeOwner(); + var { removeRelayerJob } = require_removeRelayerJob(); + var { addTrigger } = require_addTrigger(); + var { removeTrigger } = require_removeTrigger(); + var { setBundlers } = require_setBundlers(); + var { addAddressLink } = require_addAddressLink(); + var { removeAddressLink } = require_removeAddressLink(); + var getId = async (input, timestamp, SmartWeave2) => { + const str = JSON.stringify({ + contractTxId: SmartWeave2.contract.id, + input, + timestamp + }); + return SmartWeave2.arweave.utils.bufferTob64Url( + await SmartWeave2.arweave.crypto.hash( + SmartWeave2.arweave.utils.stringToBuffer(str) + ) + ); + }; + var getHash = async (ids, SmartWeave2) => { + return SmartWeave2.arweave.utils.bufferTob64( + await SmartWeave2.arweave.crypto.hash( + SmartWeave2.arweave.utils.concatBuffers( + map((v2) => SmartWeave2.arweave.utils.stringToBuffer(v2))(ids) + ), + "SHA-384" + ) + ); + }; + var getNewHash = async (last_hash, current_hash, SmartWeave2) => { + const hashes = SmartWeave2.arweave.utils.concatBuffers([ + SmartWeave2.arweave.utils.stringToBuffer(last_hash), + SmartWeave2.arweave.utils.stringToBuffer(current_hash) + ]); + return SmartWeave2.arweave.utils.bufferTob64( + await SmartWeave2.arweave.crypto.hash(hashes, "SHA-384") + ); + }; + var bundle = async (state, action, signer, contractErr = true, SmartWeave2, kvs, executeCron, depth = 1, type = "direct", get) => { + const bundlers = state.bundlers ?? []; + let isBundler = bundlers.length !== 0; + if (isBundler && !includes(action.caller, bundlers)) { + err(`bundler [${action.caller}] is not allowed`); + } + const original_signer = action.caller; + const { data } = await read( + state.contracts.bundler, + { + function: "inflate", + data: action.input.query + }, + SmartWeave2 + ); + const parsed = JSON.parse(data); + let queries = null; + if (isBundler) { + let { hash: last_hash, height: h } = state.rollup ?? { + height: 0, + hash: SmartWeave2.contract.id + }; + let ids = []; + for (let [i, v] of parsed.q.entries()) { + ids.push(await getId(v, parsed.t[i], SmartWeave2)); + } + const current_hash = await getHash(ids, SmartWeave2); + if (h + 1 !== parsed.n) { + if (h + 1 < parsed.n) { + let cached = await kv(kvs, SmartWeave2).get(`bundles.${parsed.n}`) ?? []; + let validity2 = []; + for (let [i, v] of parsed.q.entries()) { + validity2.push([ids[i], parsed.n, 2]); + } + parsed.i = ids; + parsed.ch = current_hash; + cached.unshift({ ...parsed }); + await kv(kvs, SmartWeave2).put(`bundles.${parsed.n}`, cached); + await kv(kvs, SmartWeave2).put( + `tx_validities.${SmartWeave2.transaction.id}`, + validity2 + ); + return wrapResult(state, original_signer, SmartWeave2, { + validity: validity2, + errors: [] + }); + } else { + err(`the wrong bundle height [${h} => ${parsed.n}]`); + } + } + const new_hash = await getNewHash(last_hash, current_hash, SmartWeave2); + if (parsed.h !== new_hash) { + err(`the wrong hash [${parsed.h}, ${new_hash}]`); + } + last_hash = new_hash; + state.rollup = { height: parsed.n, hash: new_hash }; + queries = _addIndex(map)((v, i) => ({ + q: v, + t: parsed.t[i], + n: parsed.n, + i: ids[i] + }))(parsed.q); + if (isNil(parsed.t) || parsed.q.length !== parsed.t.length) { + err(`timestamp length is not equal to query length`); + } + let last = state.last_block ?? 0; + for (let [i, v] of parsed.t.entries()) { + if (last > v) { + err(`the wrong timestamp[${i}]: ${last} <= ${v}`); + } + last = v; + } + state.last_block = last; + let height = parsed.n + 1; + while (true) { + let _cached = await kv(kvs, SmartWeave2).get(`bundles.${height}`) ?? []; + if (_cached.length === 0) + break; + await kv(kvs, SmartWeave2).put(`bundles.${height}`, null); + let next = false; + for (let [i, v] of _cached.entries()) { + const new_hash2 = await getNewHash(last_hash, v.ch, SmartWeave2); + if (v.h !== new_hash2) + continue; + for (let [i2, v2] of v.q.entries()) { + queries.push({ q: v2, t: v.t[i2], n: height, i: v.i[i2] }); + } + next = true; + state.rollup = { height, hash: new_hash2 }; + last_hash = new_hash2; + break; + } + if (!next) + break; + height++; + } + } else { + queries = map((v) => ({ q: v }))(parsed); + } + let validity = []; + let errors = []; + let messages = []; + let events = []; + let attributes = []; + for (const v of queries) { + let valid = true; + let error = null; + const sw = { + ...SmartWeave2, + ...isBundler ? { transaction: { id: v.i, timestamp: v.t } } : {} + }; + let params = [ + clone(state), + { input: v.q, timestamp: isBundler ? v.t : null }, + void 0, + false, + sw, + kvs, + executeCron, + void 0, + "bundle", + get + ]; + try { + const op = v.q.function; + let res = null; + switch (op) { + case "relay": + res = await relay(...params); + break; + case "batch": + res = await batch(...params); + break; + case "add": + res = await add( + clone(state), + { input: v.q, timestamp: isBundler ? v.t : null }, + void 0, + void 0, + false, + sw, + kvs, + executeCron, + void 0, + "bundle" + ); + break; + case "query": + res = await query(...params); + break; + case "set": + res = await set(...params); + break; + case "update": + res = await update(...params); + break; + case "upsert": + res = await upsert(...params); + break; + case "delete": + res = await remove(...params); + break; + case "setRules": + res = await setRules(...params); + break; + case "setSchema": + res = await setSchema(...params); + break; + case "setCanEvolve": + res = await setCanEvolve(...params); + break; + case "setSecure": + res = await setSecure(...params); + break; + case "setAlgorithms": + res = await setAlgorithms(...params); + break; + case "addIndex": + res = await addIndex(...params); + break; + case "addOwner": + res = await addOwner(...params); + break; + case "addRelayerJob": + res = await addRelayerJob(...params); + break; + case "addCron": + const { addCron } = require_addCron(); + res = await addCron(...params); + break; + case "removeCron": + res = await removeCron(...params); + break; + case "removeIndex": + res = await removeIndex(...params); + break; + case "removeOwner": + res = await removeOwner(...params); + break; + case "removeRelayerJob": + res = await removeRelayerJob(...params); + break; + case "addTrigger": + res = await addTrigger(...params); + break; + case "removeTrigger": + res = await removeTrigger(...params); + break; + case "setBundlers": + res = await setBundlers(...params); + break; + case "withdrawToken": + res = await withdrawToken(...params); + break; + case "bridgeToken": + res = await bridgeToken(...params); + break; + case "removeAddressLink": + res = await removeAddressLink(...params); + break; + case "addAddressLink": + res = await addAddressLink( + clone(state), + { input: v.q, timestamp: isBundler ? v.t : null }, + void 0, + false, + sw, + void 0, + kvs, + get + ); + break; + default: + throw new Error( + `No function supplied or function not recognised: "${op}"` + ); + } + if (!isNil(res)) { + state = res.state; + messages = concat(messages, res?.result?.messages ?? []); + events = concat(events, res?.result?.events ?? []); + attributes = concat(attributes, res?.result?.attributes ?? []); + } + } catch (e) { + console.log(e); + error = e?.toString?.() || "unknown error"; + valid = false; + } + validity.push(isBundler ? [v.i, v.n, valid ? 0 : 1] : valid); + errors.push(error); + } + await kv(kvs, SmartWeave2).put( + `tx_validities.${SmartWeave2.transaction.id}`, + validity + ); + return wrapResult(state, original_signer, SmartWeave2, { + validity, + errors, + messages, + events, + attributes + }); + }; + module.exports = { bundle }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/version.js + var require_version2 = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/version.js"(exports, module) { + module.exports = "0.45.0"; + } + }); + + // sdk/contracts/weavedb-bpt/actions/write/migrate.js + var require_migrate = __commonJS({ + "sdk/contracts/weavedb-bpt/actions/write/migrate.js"(exports, module) { + var { isNil, is, of, includes, mergeLeft, last } = require_src(); + var { err, isEvolving, isOwner, wrapResult } = require_utils(); + var { validate } = require_validate(); + var version = require_version2(); + var migrate = async (state, action, signer, contractErr = true, SmartWeave2, kvs) => { + let original_signer = null; + if (isNil(signer)) { + ; + ({ signer, original_signer } = await validate( + state, + action, + "migrate", + SmartWeave2, + true, + kvs + )); + } + const owner = isOwner(signer, state); + if (version !== action.input.query.version) { + err(`version doesn't match (${version} : ${action.input.query.version})`); + } + if (!isEvolving(state)) + err(`contract is not ready to migrate`); + const old_version = state.version.split("."); + const new_version = version.split("."); + if (+old_version[0] === 0 && +new_version[0] === 0 && +old_version[1] < 27 && +new_version[1] >= 27) { + err(`v${old_version} cannot be upgraded to v${new_version}`); + } + state.version = version; + last(state.evolveHistory).newVersion = version; + return wrapResult(state, original_signer, SmartWeave2); + }; + module.exports = { migrate }; + } + }); + + // sdk/contracts/weavedb-bpt/lib/cron.js + var require_cron = __commonJS({ + "sdk/contracts/weavedb-bpt/lib/cron.js"(exports, module) { + var fpjson = require_cjs(); + fpjson = fpjson.default ?? fpjson; + var fn = require_fn(); + var { get } = require_get(); + var { upsert } = require_upsert(); + var { update } = require_update2(); + var { add } = require_add2(); + var { remove } = require_remove2(); + var { set } = require_set2(); + var { batch } = require_batch(); + var ops = { + get, + upsert, + update, + add, + delete: remove, + set, + batch + }; + var { + concat, + append, + mergeLeft, + path, + is, + map, + isNil, + includes, + sortBy, + prop, + head + } = require_src(); + var { fpj, clone, replace$ } = require_pure(); + var executeCron = async (cron2, state, SmartWeave2, kvs, depth = 1, _vars = { batch: [] }, timestamp = null) => { + let vars = mergeLeft(_vars, { + block: { + height: SmartWeave2.block.height, + timestamp: SmartWeave2.block.timestamp + }, + transaction: { + id: SmartWeave2.transaction.id, + timestamp: timestamp ?? SmartWeave2.transaction.timestamp ?? SmartWeave2.block.timestamp * 1e3 + } + }); + const parse = (query) => { + if (is(Array, query)) { + query = map((v) => is(Object, v) ? parse(v) : v)(query); + } else if (is(Object, query)) { + if (is(String, query.var)) { + return path(query.var.split("."))(vars); + } else { + query = map((v) => parse(v))(query); + } + } + return query; + }; + let batchExecuted = false; + const execQuery = async (op, query) => { + let params = [ + state, + { + caller: state.owner, + input: { function: op, query: await parse(replace$(query)) }, + timestamp + }, + true + ]; + if (op === "add") + params.push(0); + params.push(false); + params.push(SmartWeave2); + params.push(kvs); + params.push(executeCron); + params.push(depth + 1); + params.push("cron"); + params.push(ops.get); + return await ops[op](...params); + }; + if (cron2.crons.version === 2) { + await fpj(replace$(cron2.crons.jobs), vars, { + hash: fn.hash, + parse: fn.parse, + transfer: async (_query) => { + const query = _query[0]; + const token = (await ops.get( + state, + { + caller: state.owner, + input: { + function: "get", + query: [ + "__tokens__", + ["key", "==", `${query.token}:${query.from}`] + ] + } + }, + true, + SmartWeave2, + kvs + )).result[0] || null; + const amount = token?.data?.amount ?? 0; + if (query.amount > amount) + return [null, false]; + await execQuery("update", [ + { + amount: { __op: "inc", n: -query.amount } + }, + "__tokens__", + token.id + ]); + const token2 = (await ops.get( + state, + { + caller: state.owner, + input: { + function: "get", + query: [ + "__tokens__", + ["key", "==", `${query.token}:${query.to}`] + ] + } + }, + true, + SmartWeave2, + kvs + )).result[0] || null; + if (isNil(token2)) { + await execQuery("add", [ + { + key: `${query.token}:${query.to}`, + amount: query.amount, + address: query.to, + token: query.token + }, + "__tokens__" + ]); + } else { + await execQuery("update", [ + { + amount: { __op: "inc", n: query.amount } + }, + "__tokens__", + token2.id + ]); + } + return [null, false]; + }, + withdraw: async (_query) => { + const query = _query[0]; + const token = (await ops.get( + state, + { + caller: state.owner, + input: { + function: "get", + query: [ + "__tokens__", + ["key", "==", `${query.token}:${query.from}`] + ] + } + }, + true, + SmartWeave2, + kvs + )).result[0] || null; + const amount = token?.data?.amount ?? 0; + if (query.amount > amount) + return [null, false]; + await execQuery("update", [ + { + amount: { __op: "inc", n: -query.amount }, + withdraw: { __op: "inc", n: query.amount } + }, + "__tokens__", + token.id + ]); + return [null, false]; + }, + mint: async (_query) => { + const query = _query[0]; + state.tokens.available_l2 ??= {}; + state.tokens.allocated ??= {}; + state.tokens.available_l2[query.token] ??= "0"; + state.tokens.allocated[query.token] ??= "0"; + if (BigInt(state.tokens.available_l2[query.token]) - BigInt(query.amount) < 0) { + return [null, false]; + } + state.tokens.available_l2[query.token] = (BigInt(state.tokens.available_l2[query.token]) - BigInt(query.amount)).toString(); + state.tokens.allocated[query.token] = (BigInt(state.tokens.allocated[query.token]) + BigInt(query.amount)).toString(); + const token = (await ops.get( + state, + { + caller: state.owner, + input: { + function: "get", + query: [ + "__tokens__", + ["key", "==", `${query.token}:${query.to}`] + ] + } + }, + true, + SmartWeave2, + kvs + )).result[0] || null; + if (token === null) { + await execQuery("add", [ + { + key: `${query.token}:${query.to}`, + amount: query.amount, + address: query.to, + token: query.token + }, + "__tokens__" + ]); + } else { + await execQuery("update", [ + { + amount: { __op: "inc", n: query.amount } + }, + "__tokens__", + token.id + ]); + } + return [null, false]; + }, + toBase64: fn.toBase64, + stringify: fn.stringify, + upsert: fn.upsert(execQuery), + delete: fn.delete(execQuery), + update: fn.update(execQuery), + set: fn.set(execQuery), + add: fn.add(execQuery), + batch: fn.batch(execQuery), + toBatchAll: fn.toBatchAll, + toBatch: fn.toBatch, + get: async (query) => { + const val = (await ops.get( + state, + { + caller: state.owner, + input: { function: "get", query }, + timestamp + }, + void 0, + SmartWeave2, + kvs + )).result || null; + return [val, false]; + } + }); + if (!isNil(vars.batch) && vars.batch.length > 0 && vars.batchExecuted !== true) { + await execQuery("batch", vars.batch); + } + } else { + for (let job of cron2.crons.jobs) { + let op = head(job); + let _var = null; + let query = null; + if (op === "if") { + if (!fpjson(job[1], vars)) + continue; + job = job[2]; + op = head(job); + } + if (op === "ifelse") { + job = fpjson(job[1], vars) ? job[2] : job[3]; + op = head(job); + } + if (op === "break") + break; + if (includes(op)(["get", "let"])) { + _var = job[1]; + query = job[2]; + } else { + query = job[1]; + } + if (op === "do") { + fpjson(query, vars); + } else if (op === "let") { + vars[_var] = fpjson(query, vars); + } else if (op === "get") { + const _default = job[3]; + vars[_var] = (await ops.get( + state, + { + caller: state.owner, + input: { function: "get", query: await parse(query) } + }, + void 0, + SmartWeave2, + kvs + )).result || _default; + } else if (includes(op)(["set", "upsert", "add", "delete", "update", "batch"])) { + let params = [ + state, + { + caller: state.owner, + input: { function: op, query: await parse(query) } + }, + true + ]; + if (op === "add") + params.push(0); + params.push(false); + params.push(SmartWeave2); + params.push(kvs); + params.push(executeCron); + params.push(depth + 1); + params.push("cron"); + params.push(ops.get); + await ops[op](...params); + } + } + } + }; + var cron = async (state, SmartWeave2, _kvs = {}, timestamp) => { + const now = SmartWeave2.block.timestamp; + if (isNil(state.crons)) { + state.crons = { lastExecuted: now, crons: {} }; + } + const last = state.crons.lastExecuted; + let crons = []; + for (let k in state.crons.crons) { + const v = state.crons.crons[k]; + let start = v.start; + let end = v.end; + let times = v.do ? 1 : 0; + while (start <= now && (isNil(v.times) || v.times >= times)) { + if (start > last && isNil(end) || end >= start) { + if (start !== v.start || v.do) + crons.push({ start, crons: v }); + } + start += v.span; + times += 1; + } + } + crons = sortBy(prop("start"))(crons); + let _state = clone(state); + for (let cron2 of crons) { + try { + let kvs = { batch: [] }; + await executeCron(cron2, _state, SmartWeave2, kvs, timestamp); + for (const k in kvs) + _kvs[k] = kvs[k]; + } catch (e) { + console.log(e); + } + } + _state.crons.lastExecuted = SmartWeave2.block.timestamp; + return { state: _state, count: crons.length }; + }; + module.exports = { cron, executeCron }; + } + }); + + // sdk/contracts/weavedb-bpt/contract.js + var require_contract = __commonJS({ + "sdk/contracts/weavedb-bpt/contract.js"(exports, module) { + var { hash } = require_hash(); + var { getCrons } = require_getCrons(); + var { getAlgorithms } = require_getAlgorithms(); + var { getLinkedContract } = require_getLinkedContract(); + var { getOwner } = require_getOwner(); + var { getRelayerJob } = require_getRelayerJob(); + var { listRelayerJobs } = require_listRelayerJobs(); + var { getEvolve } = require_getEvolve(); + var { getTriggers } = require_getTriggers(); + var { getBundlers } = require_getBundlers(); + var { getInfo } = require_getInfo(); + var { getTokens } = require_getTokens(); + var { getAddressLink } = require_getAddressLink(); + var { ids } = require_ids(); + var { validities } = require_validities(); + var { nonce } = require_nonce(); + var { version } = require_version(); + var { get } = require_get(); + var { getSchema } = require_getSchema(); + var { getRules } = require_getRules(); + var { getIndexes } = require_getIndexes(); + var { listCollections } = require_listCollections(); + var { getCollection } = require_getCollection(); + var { query } = require_query(); + var { nostr } = require_nostr(); + var { set } = require_set2(); + var { tick } = require_tick(); + var { upsert } = require_upsert(); + var { update } = require_update2(); + var { remove } = require_remove2(); + var { creditNotice } = require_creditNotice(); + var { withdrawToken } = require_withdrawToken(); + var { bridgeToken } = require_bridgeToken(); + var { addOwner } = require_addOwner(); + var { removeOwner } = require_removeOwner(); + var { setAlgorithms } = require_setAlgorithms(); + var { setCanEvolve } = require_setCanEvolve(); + var { setSecure } = require_setSecure(); + var { setSchema } = require_setSchema(); + var { addIndex } = require_addIndex2(); + var { removeIndex } = require_removeIndex(); + var { setRules } = require_setRules(); + var { removeCron } = require_removeCron(); + var { addRelayerJob } = require_addRelayerJob(); + var { removeRelayerJob } = require_removeRelayerJob(); + var { linkContract } = require_linkContract(); + var { unlinkContract } = require_unlinkContract(); + var { removeAddressLink } = require_removeAddressLink(); + var { addCron } = require_addCron(); + var { addAddressLink } = require_addAddressLink(); + var { evolve } = require_evolve2(); + var { add } = require_add2(); + var { batch } = require_batch(); + var { bundle } = require_bundle(); + var { relay } = require_relay(); + var { migrate } = require_migrate(); + var { addTrigger } = require_addTrigger(); + var { removeTrigger } = require_removeTrigger(); + var { setBundlers } = require_setBundlers(); + var { cron, executeCron } = require_cron(); + var { err, isEvolving } = require_utils(); + var { includes, isNil, keys, filter, compose, match } = require_src(); + var writes = [ + "relay", + "set", + "nostr", + "setSchema", + "setRules", + "addIndex", + "removeIndex", + "add", + "upsert", + "remove", + "batch", + "bundle", + "addCron", + "removeCron", + "setAlgorithms", + "addRelayerJob", + "linkContract", + "unlinkContract", + "setCanEvolve", + "setSecure", + "addOwner", + "removeOwner", + "addAddressLink", + "removeAddressLink", + "addTrigger", + "removeTrigger", + "setBundlers", + "creditNotice", + "withdrawToken", + "bridgeToken" + ]; + var addHash = (_SmartWeave) => async ({ state, result }) => { + if (isNil(state.hash)) { + state.hash = _SmartWeave.transaction.id; + } else { + const hashes = _SmartWeave.arweave.utils.concatBuffers([ + _SmartWeave.arweave.utils.stringToBuffer(state.hash), + _SmartWeave.arweave.utils.stringToBuffer(_SmartWeave.transaction.id) + ]); + const hash2 = await _SmartWeave.arweave.crypto.hash(hashes, "SHA-384"); + state.hash = _SmartWeave.arweave.utils.bufferTob64(hash2); + } + return { state, result }; + }; + async function handle2(state, action, _SmartWeave) { + let kvs = {}; + if (typeof SmartWeave !== "undefined") + _SmartWeave = SmartWeave; + if (isEvolving(state) && includes(action.input.function)(writes) && action.input.function !== "evolve") { + err("contract needs migration"); + } + let count = 0; + try { + let _kvs = {}; + ({ state, count } = await cron(state, _SmartWeave, _kvs)); + kvs = _kvs; + } catch (e) { + console.log(e); + } + const readParams = [state, action, _SmartWeave, kvs]; + const writeParams = [ + state, + action, + void 0, + void 0, + _SmartWeave, + kvs, + executeCron, + void 0, + void 0, + get + ]; + let res = null; + switch (action.input.function) { + case "get": + return await get(state, action, false, _SmartWeave, kvs); + case "cget": + return await get(state, action, true, _SmartWeave, kvs); + case "getAddressLink": + return await getAddressLink(...readParams); + case "listCollections": + return await listCollections(...readParams); + case "getCollection": + return await getCollection(...readParams); + case "getInfo": + return await getInfo(...readParams); + case "getTokens": + return await getTokens(...readParams); + case "getCrons": + return await getCrons(...readParams); + case "getAlgorithms": + return await getAlgorithms(...readParams); + case "getLinkedContract": + return await getLinkedContract(...readParams); + case "listRelayerJobs": + return await listRelayerJobs(...readParams); + case "getRelayerJob": + return await getRelayerJob(...readParams); + case "getIndexes": + return await getIndexes(...readParams); + case "getTriggers": + return await getTriggers(...readParams); + case "getSchema": + return await getSchema(...readParams); + case "getRules": + return await getRules(...readParams); + case "ids": + return await ids(...readParams); + case "validities": + return await validities(...readParams); + case "nonce": + return await nonce(...readParams); + case "hash": + return await hash(...readParams); + case "version": + return await version(...readParams); + case "getOwner": + return await getOwner(...readParams); + case "getBundlers": + return await getBundlers(...readParams); + case "getEvolve": + return await getEvolve(...readParams); + case "tick": + return await addHash(_SmartWeave)(await tick(...writeParams, count)); + case "add": + res = await addHash(_SmartWeave)( + await add( + state, + action, + void 0, + void 0, + void 0, + _SmartWeave, + kvs, + executeCron, + void 0, + void 0, + get + ) + ); + break; + case "query": + res = await addHash(_SmartWeave)(await query(...writeParams)); + break; + case "nostr": + res = await addHash(_SmartWeave)(await nostr(...writeParams)); + break; + case "set": + res = await addHash(_SmartWeave)(await set(...writeParams)); + break; + case "upsert": + res = await addHash(_SmartWeave)(await upsert(...writeParams)); + break; + case "update": + res = await addHash(_SmartWeave)(await update(...writeParams)); + break; + case "delete": + res = await addHash(_SmartWeave)(await remove(...writeParams)); + break; + case "batch": + res = await addHash(_SmartWeave)(await batch(...writeParams)); + break; + case "bundle": + res = await addHash(_SmartWeave)(await bundle(...writeParams)); + break; + case "relay": + res = await addHash(_SmartWeave)(await relay(...writeParams, batch)); + break; + case "addOwner": + res = await addHash(_SmartWeave)(await addOwner(...writeParams)); + break; + case "removeOwner": + res = await addHash(_SmartWeave)(await removeOwner(...writeParams)); + break; + case "setBundlers": + res = await addHash(_SmartWeave)(await setBundlers(...writeParams)); + break; + case "setAlgorithms": + res = await addHash(_SmartWeave)(await setAlgorithms(...writeParams)); + break; + case "setCanEvolve": + res = await addHash(_SmartWeave)(await setCanEvolve(...writeParams)); + break; + case "setSecure": + res = await addHash(_SmartWeave)(await setSecure(...writeParams)); + break; + case "setSchema": + res = await addHash(_SmartWeave)(await setSchema(...writeParams)); + break; + case "addIndex": + res = await addHash(_SmartWeave)(await addIndex(...writeParams)); + break; + case "removeIndex": + res = await addHash(_SmartWeave)(await removeIndex(...writeParams)); + break; + case "setRules": + res = await addHash(_SmartWeave)(await setRules(...writeParams)); + break; + case "removeCron": + res = await addHash(_SmartWeave)(await removeCron(...writeParams)); + break; + case "addRelayerJob": + res = await addHash(_SmartWeave)(await addRelayerJob(...writeParams)); + break; + case "removeRelayerJob": + res = await addHash(_SmartWeave)(await removeRelayerJob(...writeParams)); + break; + case "linkContract": + res = await addHash(_SmartWeave)(await linkContract(...writeParams)); + break; + case "unlinkContract": + res = await addHash(_SmartWeave)(await unlinkContract(...writeParams)); + break; + case "removeAddressLink": + res = await addHash(_SmartWeave)(await removeAddressLink(...writeParams)); + break; + case "addCron": + res = await addHash(_SmartWeave)(await addCron(...writeParams)); + break; + case "addTrigger": + res = await addHash(_SmartWeave)(await addTrigger(...writeParams)); + break; + case "removeTrigger": + res = await addHash(_SmartWeave)(await removeTrigger(...writeParams)); + break; + case "Credit-Notice": + res = await addHash(_SmartWeave)(await creditNotice(...writeParams)); + break; + case "withdrawToken": + res = await addHash(_SmartWeave)(await withdrawToken(...writeParams)); + break; + case "bridgeToken": + res = await addHash(_SmartWeave)(await bridgeToken(...writeParams)); + break; + case "addAddressLink": + res = await addHash(_SmartWeave)( + await addAddressLink( + state, + action, + void 0, + void 0, + _SmartWeave, + void 0, + kvs, + get + ) + ); + break; + case "evolve": + res = await addHash(_SmartWeave)(await evolve(...writeParams)); + break; + case "migrate": + res = await addHash(_SmartWeave)(await migrate(...writeParams)); + break; + default: + err( + `No function supplied or function not recognised: "${action.input.function}"` + ); + } + if (!isNil(res)) { + for (let k in kvs) + await _SmartWeave.kv.put(k, kvs[k]); + res.result.kvs = kvs; + return res; + } + return { state }; + } + module.exports = { handle: handle2 }; + } + }); + + // contracts/weavedb-bpt/contract.js + var import_contract = __toESM(require_contract()); + async function handle(state, action) { + return await (0, import_contract.handle)(state, action); + } + diff --git a/node/node-server/contracts/weavedb/initial-state.json b/node/node-server/contracts/weavedb/initial-state.json index 8c83f83..71c0530 100644 --- a/node/node-server/contracts/weavedb/initial-state.json +++ b/node/node-server/contracts/weavedb/initial-state.json @@ -1,10 +1,10 @@ { - "version": "0.37.2", + "version": "0.45.0", "canEvolve": true, "evolve": null, "secure": true, "auth": { - "algorithms": ["secp256k1", "secp256k1-2", "ed25519", "rsa256"], + "algorithms": ["secp256k1", "secp256k1-2", "ed25519", "rsa256", "rsa-pss"], "name": "weavedb", "version": "1" }, @@ -13,5 +13,12 @@ "crons": {} }, "contracts": {}, - "triggers": {} + "triggers": {}, + "tokens": { + "available": {}, + "available_l2": {}, + "allocated": {}, + "locked": {} + }, + "bridges": [] } diff --git a/node/node-server/package.json b/node/node-server/package.json index 0f56f7c..3b7c879 100644 --- a/node/node-server/package.json +++ b/node/node-server/package.json @@ -33,9 +33,9 @@ "nostr-tools": "^1.16.0", "pm2": "^5.3.0", "ramda": "^0.28.0", - "weavedb-node-client": "^0.44.2", - "weavedb-offchain": "^0.44.4", - "weavedb-sdk-node": "^0.44.3", + "weavedb-node-client": "^0.45.2", + "weavedb-offchain": "^0.45.3", + "weavedb-sdk-node": "^0.45.2", "ws": "^8.14.2", "yargs": "^17.6.2", "zkjson": "^0.3.1" diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index 0a10efb..6a350cf 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -632,7 +632,13 @@ class Rollup { owner: this.owner, secure: this.secure ?? true, auth: { - algorithms: ["secp256k1", "secp256k1-2", "ed25519", "rsa256"], + algorithms: [ + "secp256k1", + "secp256k1-2", + "ed25519", + "rsa256", + "rsa-pss", + ], name: "weavedb", version: "1", //skip_validation: true, diff --git a/node/node-server/vm.js b/node/node-server/vm.js index 582f790..d9fd6b2 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -295,7 +295,7 @@ class VM { } else { type ??= "warp" let initialState = { - version: this.conf.weavedb_version ?? "0.44.2", + version: this.conf.weavedb_version ?? "0.45.0", canEvolve: true, evolve: null, secure: _db.secure ?? this.conf.secure, @@ -305,6 +305,7 @@ class VM { "secp256k1-2", "ed25519", "rsa256", + "rsa-pss", ], name: "weavedb", version: "1", diff --git a/node/node-server/yarn.lock b/node/node-server/yarn.lock index a7442b1..64dacf6 100644 --- a/node/node-server/yarn.lock +++ b/node/node-server/yarn.lock @@ -4015,31 +4015,31 @@ "@walletconnect/utils" "^1.8.0" "@walletconnect/jsonrpc-http-connection@^1.0.0": - version "1.0.7" - resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz" - integrity sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ== + version "1.0.8" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz" + integrity sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.6" "@walletconnect/safe-json" "^1.0.1" cross-fetch "^3.1.4" - tslib "1.14.1" + events "^3.3.0" "@walletconnect/jsonrpc-provider@^1.0.3": - version "1.0.13" - resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz" - integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g== + version "1.0.14" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz" + integrity sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.8" "@walletconnect/safe-json" "^1.0.2" - tslib "1.14.1" + events "^3.3.0" "@walletconnect/jsonrpc-types@^1.0.1", "@walletconnect/jsonrpc-types@^1.0.3": - version "1.0.3" - resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz" - integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== + version "1.0.4" + resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz" + integrity sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ== dependencies: + events "^3.3.0" keyvaluestorage-interface "^1.0.0" - tslib "1.14.1" "@walletconnect/jsonrpc-utils@^1.0.3", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.8": version "1.0.8" @@ -4128,14 +4128,7 @@ js-sha3 "0.8.0" query-string "6.13.5" -"@walletconnect/window-getters@^1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz" - integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== - dependencies: - tslib "1.14.1" - -"@walletconnect/window-getters@1.0.0": +"@walletconnect/window-getters@^1.0.0", "@walletconnect/window-getters@1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== @@ -4164,10 +4157,10 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -abstract-level@^1.0.0, abstract-level@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== +abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.4.tgz" + integrity sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg== dependencies: buffer "^6.0.3" catering "^2.1.0" @@ -4186,14 +4179,21 @@ accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: negotiator "0.6.3" acorn-walk@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.4" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0: + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== acorn@^8.7.0: - version "8.10.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== acorn@^8.8.2: version "8.12.1" @@ -4386,9 +4386,9 @@ aonote@^0.8.2: test "^3.3.0" apg-js@^4.1.1: - version "4.2.1" - resolved "https://registry.npmjs.org/apg-js/-/apg-js-4.2.1.tgz" - integrity sha512-S3unf9jb9XrhmZYC27L5yits1p/+HqN6lksrkqKEv1U0Ytu+ENkIkOMV5+iutFjBaY9JTUCDQFS1svHsy3uNZA== + version "4.4.0" + resolved "https://registry.npmjs.org/apg-js/-/apg-js-4.4.0.tgz" + integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q== apollo-datasource@^3.3.2: version "3.3.2" @@ -4695,35 +4695,7 @@ arweave-stream-tx@^1.1.0: dependencies: exponential-backoff "^3.1.0" -arweave@^1.10.0: - version "1.15.1" - dependencies: - arconnect "^0.4.2" - asn1.js "^5.4.1" - base64-js "^1.5.1" - bignumber.js "^9.0.2" - -arweave@^1.10.13, arweave@^1.10.5, arweave@^1.11.4, arweave@^1.12.2, arweave@^1.13.7, arweave@^1.14.4, arweave@1.14.4: - version "1.14.4" - resolved "https://registry.npmjs.org/arweave/-/arweave-1.14.4.tgz" - integrity sha512-tmqU9fug8XAmFETYwgUhLaD3WKav5DaM4p1vgJpEj/Px2ORPPMikwnSySlFymmL2qgRh2ZBcZsg11+RXPPGLsA== - dependencies: - arconnect "^0.4.2" - asn1.js "^5.4.1" - base64-js "^1.5.1" - bignumber.js "^9.0.2" - -arweave@^1.15.0: - version "1.15.1" - resolved "https://registry.npmjs.org/arweave/-/arweave-1.15.1.tgz" - integrity sha512-rT7FOwqdudd5npqp4xOYdDT2035LtpcqePjwirh4wjRiEtVsz1FZkRiM2Yj+fOAwYzOm/hNG0GDOipDSaiEGGQ== - dependencies: - arconnect "^0.4.2" - asn1.js "^5.4.1" - base64-js "^1.5.1" - bignumber.js "^9.0.2" - -arweave@^1.15.1: +arweave@^1.10.0, arweave@^1.10.13, arweave@^1.10.5, arweave@^1.11.4, arweave@^1.12.2, arweave@^1.13.7, arweave@^1.14.4, arweave@^1.15.0, arweave@^1.15.1: version "1.15.5" resolved "https://registry.npmjs.org/arweave/-/arweave-1.15.5.tgz" integrity sha512-Zj3b8juz1ZtDaQDPQlzWyk2I4wZPx3RmcGq8pVJeZXl2Tjw0WRy5ueHPelxZtBLqCirGoZxZEAFRs6SZUSCBjg== @@ -4755,6 +4727,16 @@ arweave@1.13.1: base64-js "^1.5.1" bignumber.js "^9.0.2" +arweave@1.14.4: + version "1.14.4" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.14.4.tgz" + integrity sha512-tmqU9fug8XAmFETYwgUhLaD3WKav5DaM4p1vgJpEj/Px2ORPPMikwnSySlFymmL2qgRh2ZBcZsg11+RXPPGLsA== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + base64-js "^1.5.1" + bignumber.js "^9.0.2" + asap@~2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" @@ -4817,9 +4799,9 @@ async-listener@^0.6.0: shimmer "^1.1.0" async-mutex@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz" - integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== + version "0.4.1" + resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz" + integrity sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA== dependencies: tslib "^2.4.0" @@ -5621,9 +5603,9 @@ circom_runtime@0.1.25: ffjavascript "0.3.0" classic-level@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz" - integrity sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg== + version "1.4.1" + resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.4.1.tgz" + integrity sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ== dependencies: abstract-level "^1.0.2" catering "^2.1.0" @@ -5839,9 +5821,9 @@ commondir@^1.0.1: integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compare-versions@^6.0.0-rc.1: - version "6.1.0" - resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz" - integrity sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg== + version "6.1.1" + resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz" + integrity sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg== compress-commons@^4.1.2: version "4.1.2" @@ -7182,9 +7164,9 @@ fast-base64-decode@^1.0.0: integrity sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q== fast-copy@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz" - integrity sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA== + version "3.0.2" + resolved "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz" + integrity sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ== fast-glob@^3.3.2: version "3.3.2" @@ -8625,9 +8607,9 @@ joi@^17.2.1: "@sideway/pinpoint" "^2.0.0" js-base64@^3.7.2: - version "3.7.5" - resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz" - integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== + version "3.7.7" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz" + integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw== js-cookie@^2.2.1: version "2.2.1" @@ -8997,10 +8979,11 @@ level-transcoder@^1.0.1: module-error "^1.0.1" level@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/level/-/level-8.0.0.tgz" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== + version "8.0.1" + resolved "https://registry.npmjs.org/level/-/level-8.0.1.tgz" + integrity sha512-oPBGkheysuw7DmzFQYyFe8NAia5jFLAgEnkgWnK3OXAuJr8qFT+xBQIwokAZPME2bhPFzS8hlYcL16m8UZrtwQ== dependencies: + abstract-level "^1.0.4" browser-level "^1.0.1" classic-level "^1.2.0" @@ -9641,10 +9624,10 @@ minimatch@^3.0.2, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== +minimatch@^3.0.4, minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" @@ -9662,13 +9645,6 @@ minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - minimatch@5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" @@ -11997,9 +11973,9 @@ statuses@2.0.1: integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== stream-buffers@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz" - integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ== + version "3.0.3" + resolved "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.3.tgz" + integrity sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw== stream-combiner@~0.0.4: version "0.0.4" @@ -12434,9 +12410,9 @@ tslib@^2.1.0: integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tslib@^2.3.1: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + version "2.7.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== tslib@^2.4.0: version "2.6.2" @@ -12971,10 +12947,10 @@ weavedb-base@^0.43.1, weavedb-base@^0.43.2: pako "^2.1.0" ramda "^0.28.0" -weavedb-base@^0.44.2, weavedb-base@^0.44.3: - version "0.44.3" - resolved "https://registry.npmjs.org/weavedb-base/-/weavedb-base-0.44.3.tgz" - integrity sha512-dMiLZ3D4cjP89rFqX50EnIWHonqavstgr9Sqs4jm11W5WqqmCQSK4xswFyaFrL3OJTlLnWsZmKqRkON+22zWIg== +weavedb-base@^0.45.2: + version "0.45.2" + resolved "https://registry.npmjs.org/weavedb-base/-/weavedb-base-0.45.2.tgz" + integrity sha512-ZiuO6Ny9JwHah/WQ/ryCNEh4bD6z0lcJXIDzaeLlJTwq0SWezuQf5n98NaAsVNsyEv2VWJy+zHowaec3P1nrxA== dependencies: "@metamask/eth-sig-util" "^4.0.1" "@metamask/legacy-web3" "^2.0.0" @@ -12999,10 +12975,10 @@ weavedb-contracts@^0.43.0: wasmbuilder "^0.0.16" wasmcurves "^0.2.1" -weavedb-contracts@^0.44.3: - version "0.44.3" - resolved "https://registry.npmjs.org/weavedb-contracts/-/weavedb-contracts-0.44.3.tgz" - integrity sha512-fjOfMP8XQEcZjY0Wcokl2SzbEzBJ4hIudfpyvnrgK4fN5Gl9il+2R9eysD88sg4QLjAoqcwDTLQZGjEYf3KE+A== +weavedb-contracts@^0.45.1: + version "0.45.1" + resolved "https://registry.npmjs.org/weavedb-contracts/-/weavedb-contracts-0.45.1.tgz" + integrity sha512-e/gwbIIhy1uJXpzDlH0mZd/y6uvpP0x2/wT3yDrXpYRl52QUK+vPqwpUWAk2bbargdSZZVm01/ycJQgAYC8k3Q== dependencies: "@noble/curves" "^0.9.0" "@peculiar/webcrypto" "^1.4.3" @@ -13022,16 +12998,16 @@ weavedb-node-client@^0.43.1: ramda "^0.28.0" weavedb-base "^0.43.2" -weavedb-node-client@^0.44.2: - version "0.44.2" - resolved "https://registry.npmjs.org/weavedb-node-client/-/weavedb-node-client-0.44.2.tgz" - integrity sha512-K3KLSQuzcgo4mi0HB3LG2Yt7TjxWDTdx373w9fXVL8vwBwF6khbWfTAADDYqtGjnCX0YkU7q2Wt4O1JHiZQvAg== +weavedb-node-client@^0.45.2: + version "0.45.2" + resolved "https://registry.npmjs.org/weavedb-node-client/-/weavedb-node-client-0.45.2.tgz" + integrity sha512-CyJZrkQr/UQMx/GXxcAX514kYyw7y+FU6/V21jMw0qa8si/tP5XDpK/4EsAW4LJ1hCxYzaoxtB/xNlDetfJ4LQ== dependencies: "@grpc/grpc-js" "^1.1.0" "@grpc/proto-loader" "^0.5.0" arweave "^1.12.2" ramda "^0.28.0" - weavedb-base "^0.44.2" + weavedb-base "^0.45.2" weavedb-offchain@^0.43.0: version "0.43.0" @@ -13045,34 +13021,34 @@ weavedb-offchain@^0.43.0: weavedb-base "^0.43.1" weavedb-contracts "^0.43.0" -weavedb-offchain@^0.44.4: - version "0.44.4" - resolved "https://registry.npmjs.org/weavedb-offchain/-/weavedb-offchain-0.44.4.tgz" - integrity sha512-29UrTYyRbykYHRDe9xBXLShHdK9vZSSrghujvrkf2re0CNwkRaM7cmJDac5vM0J/pkYQm1bQEH2pJvQ8mSxxjA== +weavedb-offchain@^0.45.3: + version "0.45.3" + resolved "https://registry.npmjs.org/weavedb-offchain/-/weavedb-offchain-0.45.3.tgz" + integrity sha512-jjA++q4FjHgC85xJR+4fbsbcSnOu7hHhgncAonQ2lZzu7fi024i6OrDtT4F6Qa5RxgKZUwDfB98PoHckwlLw0A== dependencies: "@metamask/legacy-web3" "^2.0.0" arweave "^1.11.4" md5 "^2.3.0" ramda "^0.28.0" - weavedb-base "^0.44.3" - weavedb-contracts "^0.44.3" + weavedb-base "^0.45.2" + weavedb-contracts "^0.45.1" -weavedb-sdk-node@^0.44.3: - version "0.44.3" - resolved "https://registry.npmjs.org/weavedb-sdk-node/-/weavedb-sdk-node-0.44.3.tgz" - integrity sha512-hj5OBXJRR85zkE404+Tfjjgq5Z6O96jNd5tpwO2OTsqQs99bCNr8sJtl2l0/AM4cezMKP4/oiAypBSa9GjSZNQ== +weavedb-sdk-node@^0.45.2: + version "0.45.2" + resolved "https://registry.npmjs.org/weavedb-sdk-node/-/weavedb-sdk-node-0.45.2.tgz" + integrity sha512-84A6xUbS7o7Locm7hvVy6txLCwUVsGLOBJrxMAm6LFI8r98LwN9/xheZXNeDTx6IgT8YL7oK/XYbh6674P7zUw== dependencies: "@aws-amplify/api" "^5.0.14" lmdb "^2.8.3" redis "^4.6.5" warp-contracts "^1.4.41" warp-contracts-pubsub "^1.0.5" - weavedb-sdk "^0.44.3" + weavedb-sdk "^0.45.2" -weavedb-sdk@^0.44.3: - version "0.44.3" - resolved "https://registry.npmjs.org/weavedb-sdk/-/weavedb-sdk-0.44.3.tgz" - integrity sha512-Y5OL/XDQyOOoKzh2BlvEiuzDM+FPLlPmXLcYPAUg9gkDSKy2yEiyL7BwYC3M16rpFIdDf17O8yiclVAY2zURog== +weavedb-sdk@^0.45.2: + version "0.45.2" + resolved "https://registry.npmjs.org/weavedb-sdk/-/weavedb-sdk-0.45.2.tgz" + integrity sha512-SXP43bIb9OU2y8rcD90IMKJuNiSKg3uvZ6d24jrs0H/hhEQSv84fg5G81zQ1mHekdvALFWBMWhZvDZtLF1A6ow== dependencies: "@lit-protocol/sdk-browser" "^1.3.3" "@metamask/legacy-web3" "^2.0.0" @@ -13084,13 +13060,13 @@ weavedb-sdk@^0.44.3: ramda "^0.28.0" warp-contracts "^1.4.45" warp-contracts-old "npm:warp-contracts@1.2.26" - weavedb-base "^0.44.3" - weavedb-contracts "^0.44.3" + weavedb-base "^0.45.2" + weavedb-contracts "^0.45.1" web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + version "3.3.3" + resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== web-worker@1.2.0: version "1.2.0" @@ -13288,9 +13264,9 @@ ws@^7.0.0: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^7.4.0: - version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== ws@^7.5.10: version "7.5.10" @@ -13392,21 +13368,16 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^20.2.2, yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-unparser@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" From 93c39ddadadb26a690a1f27999c0ca370dda4ede Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Mon, 14 Oct 2024 23:37:37 +0400 Subject: [PATCH 07/60] set null to diff of deleted item --- node/node-server/rollup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index 6a350cf..2bf664a 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -670,7 +670,7 @@ class Rollup { diff.push({ collection: sps[0], doc: k.split("///")[1]?.split("/")[1], - data: tx.result.kvs[k].val, + data: tx.result.kvs[k]?.val ?? null, }) } this.kvs[k] = tx.result.kvs[k] From 4c3b0dbd17f06649695866f3f2a52b0d6e7a53f0 Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Wed, 16 Oct 2024 01:11:42 +0400 Subject: [PATCH 08/60] restrict rollup bundler --- lua/contracts/weavedb.lua | 29 +- lua/package-lock.json | 8 +- lua/package.json | 2 +- lua/test/test.js | 36 +- lua/yarn.lock | 8 +- node/node-server/db/db/crons.js | 1 + node/node-server/db/db/indexes.js | 1 + node/node-server/db/db/initial-state.js | 1 + node/node-server/db/db/relayers.js | 1 + node/node-server/db/db/rules.js | 1 + node/node-server/db/db/schemas.js | 1 + node/node-server/db/db/triggers.js | 1 + node/node-server/db/package.json | 22 + node/node-server/db/scripts/accounts.js | 20 + node/node-server/db/scripts/deploy.js | 90 + node/node-server/db/scripts/keygen.js | 49 + node/node-server/db/scripts/lib/accounts.js | 24 + .../node-server/db/scripts/lib/getAccounts.js | 15 + node/node-server/db/scripts/lib/ops.js | 42 + node/node-server/db/scripts/lib/settings.js | 12 + node/node-server/db/scripts/lib/setup.js | 86 + node/node-server/db/scripts/setup.js | 75 + node/node-server/db/test/test.js | 25 + node/node-server/db/weavedb.config.sample.js | 13 + node/node-server/db/yarn.lock | 2130 +++++++++++++++++ node/node-server/lua/weavedb.lua | 29 +- node/node-server/rollup.js | 11 +- node/node-server/vm.js | 13 +- 28 files changed, 2703 insertions(+), 43 deletions(-) create mode 100644 node/node-server/db/db/crons.js create mode 100644 node/node-server/db/db/indexes.js create mode 100644 node/node-server/db/db/initial-state.js create mode 100644 node/node-server/db/db/relayers.js create mode 100644 node/node-server/db/db/rules.js create mode 100644 node/node-server/db/db/schemas.js create mode 100644 node/node-server/db/db/triggers.js create mode 100644 node/node-server/db/package.json create mode 100644 node/node-server/db/scripts/accounts.js create mode 100644 node/node-server/db/scripts/deploy.js create mode 100644 node/node-server/db/scripts/keygen.js create mode 100644 node/node-server/db/scripts/lib/accounts.js create mode 100644 node/node-server/db/scripts/lib/getAccounts.js create mode 100644 node/node-server/db/scripts/lib/ops.js create mode 100644 node/node-server/db/scripts/lib/settings.js create mode 100644 node/node-server/db/scripts/lib/setup.js create mode 100644 node/node-server/db/scripts/setup.js create mode 100644 node/node-server/db/test/test.js create mode 100644 node/node-server/db/weavedb.config.sample.js create mode 100644 node/node-server/db/yarn.lock diff --git a/lua/contracts/weavedb.lua b/lua/contracts/weavedb.lua index 12dedc1..7a58c8c 100644 --- a/lua/contracts/weavedb.lua +++ b/lua/contracts/weavedb.lua @@ -1,13 +1,26 @@ local ao = require("ao") local json = require("json") data = data or {} +if bundler ~= '' then bundler = '' end + +Handlers.add( + "Set-Bundler", + Handlers.utils.hasMatchingTag('Action', 'Set-Bundler'), + function(msg) + assert(msg.From == ao.env.Process.Owner, "Only owner can execute!"); + assert(type(msg.Tags.Bundler) == "string", "Bundler required!"); + bundler = msg.Tags.Bundler + Handlers.utils.reply('bundler set!')(msg) + end +) Handlers.add( "Rollup", Handlers.utils.hasMatchingTag('Action', 'Rollup'), function(msg) - local diffs = json.decode(msg.Data) - for i, v in ipairs(diffs) do + assert(msg.From == bundler, "Only bundler can execute!"); + local _data = json.decode(msg.Data) + for i, v in ipairs(_data.diffs) do data[v.collection] = data[v.collection] or {} data[v.collection][v.doc] = v.data end @@ -21,8 +34,16 @@ Handlers.add( function(msg) assert(type(msg.Tags.Query) == 'string', 'Query is required!') local query = json.decode(msg.Tags.Query) - local result = json.encode(data[query[1]][query[2]]) + local result = nil + if #query == 1 then + local _result = {} + for k, v in pairs(data[query[1]]) do + table.insert(_result, v) + end + result = json.encode(_result) + else + result = json.encode(data[query[1]][query[2]]) + end ao.send({ Target = msg.From, Tags = { Result = json.encode(result)} }) end ) - diff --git a/lua/package-lock.json b/lua/package-lock.json index 6eb1f27..e84fed3 100644 --- a/lua/package-lock.json +++ b/lua/package-lock.json @@ -8,7 +8,7 @@ "name": "weavedb-ao-lua", "version": "1.0.0", "dependencies": { - "aonote": "^0.8.2", + "aonote": "^0.8.3", "chai": "^5.1.1", "mocha": "^10.7.3" } @@ -1067,9 +1067,9 @@ } }, "node_modules/aonote": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/aonote/-/aonote-0.8.2.tgz", - "integrity": "sha512-CZNXHm4ApPCIHWbAkMHulobxN3aaRxoB36mAQfc5ekOSQ5qI1tUIAVSzAUmmYd/eQZxnZY9rtexhI6KFKy7arA==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/aonote/-/aonote-0.8.3.tgz", + "integrity": "sha512-v+jgz8pKn+brD3RrpqMFnxrj8hBRBBSlzrQgoKrjFrm0OF9wZaWaWwvWAS9CxrjL/0m3DXIc3f7Ytq1jJMhXcQ==", "dependencies": { "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@permaweb/aoconnect": "^0.0.59", diff --git a/lua/package.json b/lua/package.json index 274fae9..4722638 100644 --- a/lua/package.json +++ b/lua/package.json @@ -6,7 +6,7 @@ "test": "mocha" }, "dependencies": { - "aonote": "^0.8.2", + "aonote": "^0.8.3", "chai": "^5.1.1", "mocha": "^10.7.3" } diff --git a/lua/test/test.js b/lua/test/test.js index a25dbbc..faf73be 100644 --- a/lua/test/test.js +++ b/lua/test/test.js @@ -3,6 +3,7 @@ import { expect } from "chai" import { AR, AO, Profile, Note, Notebook } from "aonote" import { readFileSync } from "fs" import { resolve } from "path" + describe("Atomic Notes", function () { this.timeout(0) let ao, opt, profile, ar, thumbnail, banner @@ -18,33 +19,28 @@ describe("Atomic Notes", function () { resolve(import.meta.dirname, "../contracts/weavedb.lua"), "utf8", ) - const ao = await new AO(opt.ao).init(ar.jwk) - const { pid } = await ao.spwn({}) + const { err, pid } = await ao.spwn({}) + await ao.wait({ pid }) - const { mid } = await ao.load({ pid, data }) + const { mid } = await ao.load({ pid, data, fills: { BUNDLER: ar.addr } }) + const bob = { name: "Bob" } ok( await ao.msg({ pid, act: "Rollup", - data: JSON.stringify([ - { collection: "ppl", doc: "Bob", data: { name: "Bob" } }, - ]), + data: JSON.stringify({ + diffs: [{ collection: "ppl", doc: "Bob", data: bob }], + }), checkData: "committed!", }), ) - - const res = JSON.parse( - ( - await ao.dry({ - pid, - act: "Get", - tags: { - Query: JSON.stringify(["ppl", "Bob"]), - }, - get: { name: "Result", json: true }, - }) - ).out, - ) - expect(res).to.eql({ name: "Bob" }) + const q = async (...query) => { + const get = { name: "Result", json: true } + const tags = { Query: JSON.stringify(query) } + return JSON.parse((await ao.dry({ pid, act: "Get", tags, get })).out) + } + const res = await q("ppl", "Bob") + expect(res).to.eql(bob) + expect(await q("ppl")).to.eql([bob]) }) }) diff --git a/lua/yarn.lock b/lua/yarn.lock index 9bf416c..e3f7aa8 100644 --- a/lua/yarn.lock +++ b/lua/yarn.lock @@ -626,10 +626,10 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aonote@^0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/aonote/-/aonote-0.8.2.tgz" - integrity sha512-CZNXHm4ApPCIHWbAkMHulobxN3aaRxoB36mAQfc5ekOSQ5qI1tUIAVSzAUmmYd/eQZxnZY9rtexhI6KFKy7arA== +aonote@^0.8.3: + version "0.8.3" + resolved "https://registry.npmjs.org/aonote/-/aonote-0.8.3.tgz" + integrity sha512-v+jgz8pKn+brD3RrpqMFnxrj8hBRBBSlzrQgoKrjFrm0OF9wZaWaWwvWAS9CxrjL/0m3DXIc3f7Ytq1jJMhXcQ== dependencies: "@babel/plugin-transform-modules-commonjs" "^7.24.8" "@permaweb/aoconnect" "^0.0.59" diff --git a/node/node-server/db/db/crons.js b/node/node-server/db/db/crons.js new file mode 100644 index 0000000..4ba52ba --- /dev/null +++ b/node/node-server/db/db/crons.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/node/node-server/db/db/indexes.js b/node/node-server/db/db/indexes.js new file mode 100644 index 0000000..4ba52ba --- /dev/null +++ b/node/node-server/db/db/indexes.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/node/node-server/db/db/initial-state.js b/node/node-server/db/db/initial-state.js new file mode 100644 index 0000000..4ba52ba --- /dev/null +++ b/node/node-server/db/db/initial-state.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/node/node-server/db/db/relayers.js b/node/node-server/db/db/relayers.js new file mode 100644 index 0000000..4ba52ba --- /dev/null +++ b/node/node-server/db/db/relayers.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/node/node-server/db/db/rules.js b/node/node-server/db/db/rules.js new file mode 100644 index 0000000..4ba52ba --- /dev/null +++ b/node/node-server/db/db/rules.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/node/node-server/db/db/schemas.js b/node/node-server/db/db/schemas.js new file mode 100644 index 0000000..4ba52ba --- /dev/null +++ b/node/node-server/db/db/schemas.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/node/node-server/db/db/triggers.js b/node/node-server/db/db/triggers.js new file mode 100644 index 0000000..4ba52ba --- /dev/null +++ b/node/node-server/db/db/triggers.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/node/node-server/db/package.json b/node/node-server/db/package.json new file mode 100644 index 0000000..aa1a284 --- /dev/null +++ b/node/node-server/db/package.json @@ -0,0 +1,22 @@ +{ + "name": "weavedb-workspace", + "version": "0.0.1", + "main": "index.js", + "license": "MIT", + "scripts": { + "test": "mocha", + "keygen": "node scripts/keygen.js", + "accounts": "node scripts/accounts.js", + "deploy": "node scripts/deploy.js", + "setup": "node scripts/setup.js" + }, + "dependencies": { + "arweave": "^1.14.4", + "chai": "^4.3.10", + "eth-crypto": "^2.6.0", + "ethers": "^6.8.0", + "mocha": "^10.2.0", + "weavedb-node-client": "^0.44.2", + "weavedb-offchain": "^0.44.3" + } +} diff --git a/node/node-server/db/scripts/accounts.js b/node/node-server/db/scripts/accounts.js new file mode 100644 index 0000000..202062e --- /dev/null +++ b/node/node-server/db/scripts/accounts.js @@ -0,0 +1,20 @@ +const accounts = require("./lib/accounts") +const Arweave = require("arweave") +const arweave = Arweave.init() + +const main = async () => { + console.log() + console.log("EVM accounts:") + for (const k in accounts.evm) { + console.log(`[${k}]\t${accounts.evm[k].address}`) + } + console.log() + console.log("Arweave accounts:") + for (const k in accounts.ar) { + const addr = await arweave.wallets.jwkToAddress(accounts.ar[k]) + console.log(`[${k}]\t${addr}`) + } + console.log() +} + +main() diff --git a/node/node-server/db/scripts/deploy.js b/node/node-server/db/scripts/deploy.js new file mode 100644 index 0000000..7a7fff3 --- /dev/null +++ b/node/node-server/db/scripts/deploy.js @@ -0,0 +1,90 @@ +const config = require("../weavedb.config.js") +const SDK = require("weavedb-node-client") +const accounts = require("./lib/accounts") +const { isNil } = require("ramda") +let { + _: [name], + network, + owner, + type, + module, + scheduler, +} = require("yargs")(process.argv.slice(2)).parserConfiguration({ + "parse-numbers": false, +}).argv + +if (isNil(type)) type = "warp" + +if (type === "ao") { + if (isNil(module)) { + console.error(`module not specified`) + process.exit() + } + if (isNil(scheduler)) { + console.error(`scheduler not specified`) + process.exit() + } +} + +if (isNil(name)) { + console.error(`DB name not specified`) + process.exit() +} + +if (isNil(accounts.evm[owner])) { + console.error(`EVM owner not specified or found: ${owner} `) + process.exit() +} + +network ??= config.defaultNetwork +const rpc = config.networks[network] +let privateKey = null + +if (isNil(rpc)) { + console.error(`network not found: ${network}`) + process.exit() +} else { + privateKey = accounts.evm[rpc.admin]?.privateKey + if (isNil(privateKey)) { + console.error(`Rollup admin not specified or not found: ${rpc.admin}`) + process.exit() + } +} + +const main = async () => { + const db = new SDK({ rpc: rpc.url, contractTxId: name }) + try { + await db.admin( + { + op: "add_db", + key: name, + db: { ...config.db, owner: accounts.evm[owner].address.toLowerCase() }, + }, + { privateKey, nonce: 1 }, + ) + console.log(`DB [${name}] added!`) + } catch (e) { + console.log(e.message) + } + if (config.db.rollup) { + const tx = await db.admin( + { + op: "deploy_contract", + key: name, + type: "ao", + module, + scheduler, + }, + { privateKey, nonce: 1 }, + ) + if (!isNil(tx.contractTxId)) { + console.log("DB successfully deployed!") + console.log(tx) + } else { + console.log("something went wrong!") + } + } + process.exit() +} + +main() diff --git a/node/node-server/db/scripts/keygen.js b/node/node-server/db/scripts/keygen.js new file mode 100644 index 0000000..9e4f62c --- /dev/null +++ b/node/node-server/db/scripts/keygen.js @@ -0,0 +1,49 @@ +const EthCrypto = require("eth-crypto") +const { isNil } = require("ramda") +const { + _: [name], + t = "evm", +} = require("yargs")(process.argv.slice(2)).argv +const Arweave = require("arweave") +if (isNil(name)) { + console.error("account name missing") + process.exit() +} +const { mkdirSync, existsSync, writeFileSync } = require("fs") +const { resolve } = require("path") +const dir_conf = resolve(__dirname, "../.weavedb") +const dir = resolve(__dirname, "../.weavedb/accounts") +const dir_evm = resolve(__dirname, "../.weavedb/accounts/evm") +const dir_ar = resolve(__dirname, "../.weavedb/accounts/ar") +const dirs = [dir_conf, dir, dir_evm, dir_ar] +const config = require("../weavedb.config.js") +const mkdir = async () => { + for (let v of dirs) { + if (!existsSync(v)) mkdirSync(v) + } +} + +const main = async () => { + await mkdir() + const keyfile = resolve(dir, t, `${name}.json`) + if (!isNil(config?.accounts?.[t]?.[name]) || existsSync(keyfile)) { + console.error(`account [${name}:${t}] exists`) + process.exit() + } + if (t === "evm") { + const identity = EthCrypto.createIdentity() + console.log(`[${name}] EVM account generated!`) + console.log(identity.address) + writeFileSync(keyfile, JSON.stringify(identity)) + } else if (t === "ar") { + const arweave = Arweave.init() + const wallet = await arweave.wallets.generate() + const addr = await arweave.wallets.jwkToAddress(wallet) + console.log(`[${name}] Arweave account generated!`) + console.log(addr) + writeFileSync(keyfile, JSON.stringify(wallet)) + } else { + console.error(`unknown type: ${t}`) + } +} +main() diff --git a/node/node-server/db/scripts/lib/accounts.js b/node/node-server/db/scripts/lib/accounts.js new file mode 100644 index 0000000..803afed --- /dev/null +++ b/node/node-server/db/scripts/lib/accounts.js @@ -0,0 +1,24 @@ +const { readFileSync, readdirSync } = require("fs") +const { resolve } = require("path") +const Arweave = require("arweave") +const arweave = Arweave.init() +const dir = resolve(__dirname, "../../.weavedb/accounts") +const dir_evm = resolve(__dirname, "../../.weavedb/accounts/evm") +const dir_ar = resolve(__dirname, "../../.weavedb/accounts/ar") +let config = require("../../weavedb.config.js") +config.accounts ??= {} +const accounts = config.accounts +config.accounts.evm ??= {} +config.accounts.ar ??= {} +for (const v of readdirSync(dir_evm)) { + const acc = JSON.parse(readFileSync(resolve(dir_evm, v), "utf8")) + const name = v.split(".")[0] + accounts.evm[name] = acc +} +for (const v of readdirSync(dir_ar)) { + const acc = JSON.parse(readFileSync(resolve(dir_ar, v), "utf8")) + const name = v.split(".")[0] + accounts.ar[name] = acc +} + +module.exports = accounts diff --git a/node/node-server/db/scripts/lib/getAccounts.js b/node/node-server/db/scripts/lib/getAccounts.js new file mode 100644 index 0000000..50387ef --- /dev/null +++ b/node/node-server/db/scripts/lib/getAccounts.js @@ -0,0 +1,15 @@ +exports.default = () => { + let config = require("../weavedb.config.js") + const accounts = config.accounts + for (const v of readdirSync(dir_evm)) { + const acc = JSON.parse(readFileSync(resolve(dir_evm, v), "utf8")) + const name = v.split(".")[0] + accounts.evm[name] = acc + } + for (const v of readdirSync(dir_ar)) { + const acc = JSON.parse(readFileSync(resolve(dir_ar, v), "utf8")) + const name = v.split(".")[0] + accounts.ar[name] = acc + } + return accounts +} diff --git a/node/node-server/db/scripts/lib/ops.js b/node/node-server/db/scripts/lib/ops.js new file mode 100644 index 0000000..b3be37c --- /dev/null +++ b/node/node-server/db/scripts/lib/ops.js @@ -0,0 +1,42 @@ +module.exports = { + inc: n => { + return { __op: "inc", n } + }, + ts: () => { + return { __op: "ts" } + }, + del: () => { + return { __op: "del" } + }, + data: key => { + return { __op: "data", key } + }, + + signer: () => { + return { __op: "signer" } + }, + + ts: () => { + return { __op: "ts" } + }, + + ms: () => { + return { __op: "ms" } + }, + + del: () => { + return { __op: "del" } + }, + + inc: n => { + return { __op: "inc", n } + }, + + union: (...args) => { + return { __op: "arrayUnion", arr: args } + }, + + remove: (...args) => { + return { __op: "arrayRemove", arr: args } + }, +} diff --git a/node/node-server/db/scripts/lib/settings.js b/node/node-server/db/scripts/lib/settings.js new file mode 100644 index 0000000..31aef96 --- /dev/null +++ b/node/node-server/db/scripts/lib/settings.js @@ -0,0 +1,12 @@ +const { mapObjIndexed } = require("ramda") +module.exports = mapObjIndexed((v, k) => { + let obj = require(`../../db/${k}`) + return obj +})({ + schemas: {}, + indexes: {}, + rules: {}, + relayers: {}, + triggers: {}, + crons: {}, +}) diff --git a/node/node-server/db/scripts/lib/setup.js b/node/node-server/db/scripts/lib/setup.js new file mode 100644 index 0000000..8c981ab --- /dev/null +++ b/node/node-server/db/scripts/lib/setup.js @@ -0,0 +1,86 @@ +const { assoc } = require("ramda") + +const setup = async ({ db, conf, privateKey, relayer }) => { + const auth = typeof privateKey === "object" ? privateKey : { privateKey } + for (let k in conf) { + switch (k) { + case "rules": + for (let col in conf[k]) { + for (let key in conf[k][col]) { + console.log( + "setRules", + col, + conf[k][col][key][0], + ( + await db.setRules( + conf[k][col][key][1], + col, + conf[k][col][key][0], + auth + ) + )?.success + ) + } + } + break + case "schemas": + for (let col in conf[k]) { + console.log( + "setSchema", + col, + (await db.setSchema(conf[k][col], col, auth))?.success + ) + } + break + case "indexes": + for (let col in conf[k]) { + for (let v of conf[k][col]) { + console.log( + "addIndex", + col, + v, + (await db.addIndex(v, col, auth))?.success + ) + } + } + break + case "relayers": + for (let name in conf[k]) { + console.log( + "addRelayerJob", + name, + ( + await db.addRelayerJob( + name, + assoc("relayers", [relayer], conf[k][name]), + auth + ) + )?.success + ) + } + break + case "triggers": + for (let col in conf[k]) { + for (let v of conf[k][col]) { + console.log( + "addTrigger", + col, + (await db.addTrigger(v, col, auth))?.success + ) + } + } + break + case "crons": + for (let name in conf[k]) { + console.log( + "addCron", + name, + (await db.addCron(conf[k][name], name, auth))?.success + ) + } + break + } + } +} + +module.exports = setup diff --git a/node/node-server/db/scripts/setup.js b/node/node-server/db/scripts/setup.js new file mode 100644 index 0000000..c586a9e --- /dev/null +++ b/node/node-server/db/scripts/setup.js @@ -0,0 +1,75 @@ +const config = require("../weavedb.config.js") +const SDK = require("weavedb-node-client") +const accounts = require("./lib/accounts") +const { isNil } = require("ramda") +const setup = require("./lib/setup") +const settings = require("./lib/settings") +let { + _: [name], + network, + owner, + relayer, + plugin, +} = require("yargs")(process.argv.slice(2)).parserConfiguration({ + "parse-numbers": false, +}).argv + +if (isNil(name)) { + console.error(`DB name not specified`) + process.exit() +} + +if (isNil(accounts.evm[owner])) { + console.error(`EVM owner not specified or found: ${owner} `) + process.exit() +} + +if (!isNil(relayer) && isNil(accounts.evm[relayer])) { + console.error(`EVM relayer not found: ${relayer} `) + process.exit() +} + +network ??= config.defaultNetwork +const rpc = config.networks[network] +let privateKey = null + +if (isNil(rpc)) { + console.error(`network not found: ${network}`) + process.exit() +} else { + privateKey = accounts.evm[rpc.admin]?.privateKey + if (isNil(privateKey)) { + console.error(`Rollup admin not specified or not found: ${rpc.admin}`) + process.exit() + } +} + +const main = async key => { + const _db = new SDK({ rpc: rpc.url, contractTxId: name }) + const { dbs } = await _db.node({ op: "stats" }) + let instance = null + for (const v of dbs) { + if (v.id === name) { + instance = v.data + } + } + if (isNil(instance)) { + console.error(`DB not found: ${name}`) + process.exit() + } + let _plugin = "" + if (!isNil(plugin)) _plugin = `#${plugin}` + const db = new SDK({ + rpc: rpc.url, + contractTxId: `${instance.contractTxId ?? name}${_plugin}`, + }) + await setup({ + db, + conf: settings(plugin), + privateKey: accounts.evm[owner]?.privateKey, + relayer: accounts.evm[relayer]?.address?.toLowerCase() ?? null, + }) + process.exit() +} + +main() diff --git a/node/node-server/db/test/test.js b/node/node-server/db/test/test.js new file mode 100644 index 0000000..562b352 --- /dev/null +++ b/node/node-server/db/test/test.js @@ -0,0 +1,25 @@ +const DB = require("weavedb-offchain") +const { expect } = require("chai") +const setup = require("../scripts/lib/setup") +const EthCrypto = require("eth-crypto") +const settings = require("../scripts/lib/settings") + +describe("WeaveDB", () => { + let db, owner, relayer, user, ownerAuth, relayerAuth, userAuth + beforeEach(async () => { + owner = EthCrypto.createIdentity() + relayer = EthCrypto.createIdentity() + user = EthCrypto.createIdentity() + ownerAuth = { privateKey: owner.privateKey } + relayerAuth = { privateKey: relayer.privateKey } + userAuth = { privateKey: user.privateKey } + db = new DB({ + type: 3, + local: true, + state: { owner: owner.address.toLowerCase() }, + }) + await db.initialize() + await setup({ db, conf: settings, privateKey: owner.privateKey }) + }) + it("should execute queries", async () => {}) +}) diff --git a/node/node-server/db/weavedb.config.sample.js b/node/node-server/db/weavedb.config.sample.js new file mode 100644 index 0000000..84e4311 --- /dev/null +++ b/node/node-server/db/weavedb.config.sample.js @@ -0,0 +1,13 @@ +module.exports = { + db: { + app: "http://localhost:3000", + name: "Demo Dapp", + rollup: false, + plugins: {}, + }, + accounts: { evm: {}, ar: {} }, + defaultNetwork: "localhost", + networks: { + localhost: { url: "localhost:8080", admin: "admin" }, + }, +} diff --git a/node/node-server/db/yarn.lock b/node/node-server/db/yarn.lock new file mode 100644 index 0000000..3a8ade3 --- /dev/null +++ b/node/node-server/db/yarn.lock @@ -0,0 +1,2130 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adraffy/ens-normalize@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" + integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== + +"@babel/runtime@7.20.13": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + dependencies: + regenerator-runtime "^0.13.11" + +"@cbor-extract/cbor-extract-darwin-arm64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.1.1.tgz#5721f6dd3feae0b96d23122853ce977e0671b7a6" + integrity sha512-blVBy5MXz6m36Vx0DfLd7PChOQKEs8lK2bD1WJn/vVgG4FXZiZmZb2GECHFvVPA5T7OnODd9xZiL3nMCv6QUhA== + +"@cbor-extract/cbor-extract-darwin-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.1.1.tgz#c25e7d0133950d87d101d7b3afafea8d50d83f5f" + integrity sha512-h6KFOzqk8jXTvkOftyRIWGrd7sKQzQv2jVdTL9nKSf3D2drCvQB/LHUxAOpPXo3pv2clDtKs3xnHalpEh3rDsw== + +"@cbor-extract/cbor-extract-linux-arm64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.1.1.tgz#48f78e7d8f0fcc84ed074b6bfa6d15dd83187c63" + integrity sha512-SxAaRcYf8S0QHaMc7gvRSiTSr7nUYMqbUdErBEu+HYA4Q6UNydx1VwFE68hGcp1qvxcy9yT5U7gA+a5XikfwSQ== + +"@cbor-extract/cbor-extract-linux-arm@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.1.1.tgz#7507d346389cb682e44fab8fae9534edd52e2e41" + integrity sha512-ds0uikdcIGUjPyraV4oJqyVE5gl/qYBpa/Wnh6l6xLE2lj/hwnjT2XcZCChdXwW/YFZ1LUHs6waoYN8PmK0nKQ== + +"@cbor-extract/cbor-extract-linux-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.1.1.tgz#b7c1d2be61c58ec18d58afbad52411ded63cd4cd" + integrity sha512-GVK+8fNIE9lJQHAlhOROYiI0Yd4bAZ4u++C2ZjlkS3YmO6hi+FUxe6Dqm+OKWTcMpL/l71N6CQAmaRcb4zyJuA== + +"@cbor-extract/cbor-extract-win32-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.1.1.tgz#21b11a1a3f18c3e7d62fd5f87438b7ed2c64c1f7" + integrity sha512-2Niq1C41dCRIDeD8LddiH+mxGlO7HJ612Ll3D/E73ZWBmycued+8ghTr/Ho3CMOWPUEr08XtyBMVXAjqF+TcKw== + +"@ethereumjs/common@^2.6.4": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.5" + +"@ethereumjs/tx@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@grpc/grpc-js@^1.1.0": + version "1.9.5" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.5.tgz#22e283754b7b10d1ad26c3fb21849028dcaabc53" + integrity sha512-iouYNlPxRAwZ2XboDT+OfRKHuaKHiqjB5VFYZ0NFrHkbEF+AV3muIUY9olQsp8uxU4VvRCMiRk9ftzFDGb61aw== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.5.0": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d" + integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ== + dependencies: + lodash.camelcase "^4.3.0" + protobufjs "^6.8.6" + +"@grpc/proto-loader@^0.7.8": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" + integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + yargs "^17.7.2" + +"@hexagon/base64@^1.1.25": + version "1.1.28" + resolved "https://registry.yarnpkg.com/@hexagon/base64/-/base64-1.1.28.tgz#7d306a97f1423829be5b27c9d388fe50e3099d48" + integrity sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw== + +"@metamask/eth-sig-util@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== + dependencies: + ethereumjs-abi "^0.6.8" + ethereumjs-util "^6.2.1" + ethjs-util "^0.1.6" + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" + +"@metamask/legacy-web3@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@metamask/legacy-web3/-/legacy-web3-2.0.0.tgz#10c506791ef248d79909ff6321a6b25a3f3d2549" + integrity sha512-hR5sbVR0wU3sXMXx2btRBKYzzTkBNTYoZbPHqqB7UARwxm9yEe9C/Y79YyciyzC9cnKetNV6s6VAwNQp5LNpLw== + +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/curves@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-0.9.1.tgz#0ad33ebee0fdc870e1afcd74daa06f188e89b8fe" + integrity sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ== + dependencies: + "@noble/hashes" "1.3.0" + +"@noble/hashes@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" + integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@peculiar/asn1-android@^2.3.3": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-android/-/asn1-android-2.3.6.tgz#20363c23bc5b9a91f7ffd80d7c3842dccff8c20b" + integrity sha512-zkYh4DsiRhiNfg6tWaUuRc+huwlb9XJbmeZLrjTz9v76UK1Ehq3EnfJFED6P3sdznW/nqWe46LoM9JrqxcD58g== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + asn1js "^3.0.5" + tslib "^2.4.0" + +"@peculiar/asn1-ecc@^2.3.4": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.3.6.tgz#f155f33f5c61df463d9b33b911d25578a19694b7" + integrity sha512-Hu1xzMJQWv8/GvzOiinaE6XiD1/kEhq2C/V89UEoWeZ2fLUcGNIvMxOr/pMyL0OmpRWj/mhCTXOZp4PP+a0aTg== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/asn1-x509" "^2.3.6" + asn1js "^3.0.5" + tslib "^2.4.0" + +"@peculiar/asn1-rsa@^2.3.4": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.3.6.tgz#e2af2c52a914c60f33853a86a48905ec555b29c2" + integrity sha512-DswjJyAXZnvESuImGNTvbNKvh1XApBVqU+r3UmrFFTAI23gv62byl0f5OFKWTNhCf66WQrd3sklpsCZc/4+jwA== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/asn1-x509" "^2.3.6" + asn1js "^3.0.5" + tslib "^2.4.0" + +"@peculiar/asn1-schema@^2.3.3", "@peculiar/asn1-schema@^2.3.6": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" + integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/asn1-x509@^2.3.4", "@peculiar/asn1-x509@^2.3.6": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.3.6.tgz#e50154a460cdf43da8a41b23ee807a53e0036af0" + integrity sha512-dRwX31R1lcbIdzbztiMvLNTDoGptxdV7HocNx87LfKU0fEWh7fTWJjx4oV+glETSy6heF/hJHB2J4RGB3vVSYg== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + asn1js "^3.0.5" + ipaddr.js "^2.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" + integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.2" + tslib "^2.5.0" + webcrypto-core "^1.7.7" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@simplewebauthn/iso-webcrypto@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@simplewebauthn/iso-webcrypto/-/iso-webcrypto-7.4.0.tgz#f994132bd7bbcb762fc08021566971aad9005500" + integrity sha512-LSx8zghjH+z9IFOhBdDv2AyhqnzDUCYFxFiwJbToowOigCgf4Y8fyZle9Y+0NS232bIoU6j/lgv5iT32m3eGyA== + dependencies: + "@simplewebauthn/typescript-types" "^7.4.0" + "@types/node" "^18.11.9" + +"@simplewebauthn/server@^7.2.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@simplewebauthn/server/-/server-7.4.0.tgz#eb76e30f0c6d9e7fb323b8598c1b2d132e5873e0" + integrity sha512-Y6jj2WsE3zBDagSdOg3b7+SMw7zHku0Od45Q1ZpA19Wd5aUbV2mH281SbdhFN4UuKcGQSeeAgUObAWHvgxNOVA== + dependencies: + "@hexagon/base64" "^1.1.25" + "@peculiar/asn1-android" "^2.3.3" + "@peculiar/asn1-ecc" "^2.3.4" + "@peculiar/asn1-rsa" "^2.3.4" + "@peculiar/asn1-schema" "^2.3.3" + "@peculiar/asn1-x509" "^2.3.4" + "@simplewebauthn/iso-webcrypto" "^7.4.0" + "@simplewebauthn/typescript-types" "^7.4.0" + "@types/debug" "^4.1.7" + "@types/node" "^18.11.9" + cbor-x "^1.4.1" + cross-fetch "^3.1.5" + debug "^4.3.2" + +"@simplewebauthn/typescript-types@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@simplewebauthn/typescript-types/-/typescript-types-7.4.0.tgz#1f5d55e187cbd30727a75543caf1bade747625ce" + integrity sha512-8/ZjHeUPe210Bt5oyaOIGx4h8lHdsQs19BiOT44gi/jBEgK7uBGA0Fy7NRsyh777al3m6WM0mBf0UR7xd4R7WQ== + +"@types/bn.js@5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + dependencies: + "@types/node" "*" + +"@types/bn.js@^4.11.3": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/bn.js@^5.1.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.2.tgz#162f5238c46f4bcbac07a98561724eca1fcf0c5e" + integrity sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg== + dependencies: + "@types/node" "*" + +"@types/debug@^4.1.7": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.9.tgz#906996938bc672aaf2fb8c0d3733ae1dda05b005" + integrity sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow== + dependencies: + "@types/ms" "*" + +"@types/long@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/ms@*": + version "0.7.32" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.32.tgz#f6cd08939ae3ad886fcc92ef7f0109dacddf61ab" + integrity sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g== + +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "20.8.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.6.tgz#0dbd4ebcc82ad0128df05d0e6f57e05359ee47fa" + integrity sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ== + dependencies: + undici-types "~5.25.1" + +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + +"@types/node@^18.11.9": + version "18.18.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.5.tgz#afc0fd975df946d6e1add5bbf98264225b212244" + integrity sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + +"@types/secp256k1@^4.0.1": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.4.tgz#33c760de627fce1f449c2d4270da07e4da54c830" + integrity sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A== + dependencies: + "@types/node" "*" + +acorn@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arconnect@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/arconnect/-/arconnect-0.4.2.tgz#83de7638fb46183e82d7ec7efb5594c5f7cdc806" + integrity sha512-Jkpd4QL3TVqnd3U683gzXmZUVqBUy17DdJDuL/3D9rkysLgX6ymJ2e+sR+xyZF5Rh42CBqDXWNMmCjBXeP7Gbw== + dependencies: + arweave "^1.10.13" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arweave@^1.10.13, arweave@^1.11.4, arweave@^1.12.2, arweave@^1.14.4: + version "1.14.4" + resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.14.4.tgz#5ba22136aa0e7fd9495258a3931fb770c9d6bf21" + integrity sha512-tmqU9fug8XAmFETYwgUhLaD3WKav5DaM4p1vgJpEj/Px2ORPPMikwnSySlFymmL2qgRh2ZBcZsg11+RXPPGLsA== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + base64-js "^1.5.1" + bignumber.js "^9.0.2" + +asn1.js@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bech32@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +bignumber.js@^9.0.2, bignumber.js@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bip66@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== + dependencies: + safe-buffer "^5.0.1" + +blakejs@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + +bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.6, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +cbor-extract@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cbor-extract/-/cbor-extract-2.1.1.tgz#f154b31529fdb6b7c70fb3ca448f44eda96a1b42" + integrity sha512-1UX977+L+zOJHsp0mWFG13GLwO6ucKgSmSW6JTl8B9GUvACvHeIVpFqhU92299Z6PfD09aTXDell5p+lp1rUFA== + dependencies: + node-gyp-build-optional-packages "5.0.3" + optionalDependencies: + "@cbor-extract/cbor-extract-darwin-arm64" "2.1.1" + "@cbor-extract/cbor-extract-darwin-x64" "2.1.1" + "@cbor-extract/cbor-extract-linux-arm" "2.1.1" + "@cbor-extract/cbor-extract-linux-arm64" "2.1.1" + "@cbor-extract/cbor-extract-linux-x64" "2.1.1" + "@cbor-extract/cbor-extract-win32-x64" "2.1.1" + +cbor-x@^1.4.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/cbor-x/-/cbor-x-1.5.4.tgz#8f0754fa8589cbd7339b613b2b5717d133508e98" + integrity sha512-PVKILDn+Rf6MRhhcyzGXi5eizn1i0i3F8Fe6UMMxXBnWkalq9+C5+VTmlIjAYM4iF2IYF2N+zToqAfYOp+3rfw== + optionalDependencies: + cbor-extract "^2.1.1" + +chai@^4.3.10: + version "4.3.10" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" + integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +debug@4.3.4, debug@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-eql@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +drbg.js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + integrity sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g== + dependencies: + browserify-aes "^1.0.6" + create-hash "^1.1.2" + create-hmac "^1.1.4" + +eccrypto@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/eccrypto/-/eccrypto-1.1.6.tgz#846bd1222323036f7a3515613704386399702bd3" + integrity sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A== + dependencies: + acorn "7.1.1" + elliptic "6.5.4" + es6-promise "4.2.8" + nan "2.14.0" + optionalDependencies: + secp256k1 "3.7.1" + +elliptic@6.5.4, elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +es6-promise@4.2.8: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eth-crypto@^2.3.0, eth-crypto@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eth-crypto/-/eth-crypto-2.6.0.tgz#b777f367ae8c70e5917b3b7d52adab6b34841e29" + integrity sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug== + dependencies: + "@babel/runtime" "7.20.13" + "@ethereumjs/tx" "3.5.2" + "@types/bn.js" "5.1.1" + eccrypto "1.1.6" + ethereumjs-util "7.1.5" + ethers "5.7.2" + secp256k1 "5.0.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereumjs-abi@^0.6.8: + version "0.6.8" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== + dependencies: + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" + +ethereumjs-util@7.1.5, ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethers@5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + +ethers@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.8.0.tgz#0a26f57e96fd697cefcfcef464e0c325689d1daf" + integrity sha512-zrFbmQRlraM+cU5mE4CZTLBurZTs2gdp2ld0nG/f3ecBK+x6lZ69KSxBqZ4NjclxwfTxl5LeNufcBbMsTdY53Q== + dependencies: + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" + +ethjs-util@0.1.6, ethjs-util@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + +evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +fpjson-lang@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/fpjson-lang/-/fpjson-lang-0.1.5.tgz#a05cfc52697711af16bd3315b52eb6912ef34eea" + integrity sha512-+YvA1HbmUfJxAsFvkPwCRPQbNYU/0sJ9ffORMCykT5rQAj7YDl0ShA3ZWgGxMSmu4JcHDWXao1c2ddWw3IZupQ== + dependencies: + ramda "^0.28.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +js-sha3@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +keccak@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +long@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +mocha@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nan@2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nan@^2.14.0: + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build-optional-packages@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz#92a89d400352c44ad3975010368072b41ad66c17" + integrity sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA== + +node-gyp-build@^4.2.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e" + integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +pako@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pbkdf2@^3.0.17: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +protobufjs@^6.8.6: + version "6.11.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" + integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +protobufjs@^7.2.4: + version "7.2.5" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" + integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +pvtsutils@^1.3.2: + version "1.3.5" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== + dependencies: + tslib "^2.6.1" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +ramda@^0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97" + integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.2.3, rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@3.0.1, scrypt-js@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.1.tgz#12e473e0e9a7c2f2d4d4818e722ad0e14cc1e2f1" + integrity sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g== + dependencies: + bindings "^1.5.0" + bip66 "^1.1.5" + bn.js "^4.11.8" + create-hash "^1.2.0" + drbg.js "^1.0.1" + elliptic "^6.4.1" + nan "^2.14.0" + safe-buffer "^5.1.2" + +secp256k1@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7" + integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^5.0.0" + node-gyp-build "^4.2.0" + +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== + dependencies: + is-hex-prefixed "1.0.0" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@^2.0.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tweetnacl-util@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-detect@^4.0.0, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +undici-types@~5.25.1: + version "5.25.3" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" + integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +wasmbuilder@0.0.16, wasmbuilder@^0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/wasmbuilder/-/wasmbuilder-0.0.16.tgz#f34c1f2c047d2f6e1065cbfec5603988f16d8549" + integrity sha512-Qx3lEFqaVvp1cEYW7Bfi+ebRJrOiwz2Ieu7ZG2l7YyeSJIok/reEQCQCuicj/Y32ITIJuGIM9xZQppGx5LrQdA== + +wasmcurves@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/wasmcurves/-/wasmcurves-0.2.2.tgz#ca444f6a6f6e2a5cbe6629d98ff478a62b4ccb2b" + integrity sha512-JRY908NkmKjFl4ytnTu5ED6AwPD+8VJ9oc94kdq7h5bIwbj0L4TDJ69mG+2aLs2SoCmGfqIesMWTEJjtYsoQXQ== + dependencies: + wasmbuilder "0.0.16" + +weavedb-base@^0.44.2: + version "0.44.2" + resolved "https://registry.yarnpkg.com/weavedb-base/-/weavedb-base-0.44.2.tgz#d4674f911c59b2b78f9e5087555fde7639c917f7" + integrity sha512-LbuLn8VwJaq0b4Yji0LH78ioH0h8ORFAQIWG+qw3ZTlc6tmb843UZUv/oPdCoXnxFM+u13QkmL6hmwe31MuqEw== + dependencies: + "@metamask/eth-sig-util" "^4.0.1" + "@metamask/legacy-web3" "^2.0.0" + "@simplewebauthn/server" "^7.2.0" + bignumber.js "^9.1.2" + eth-crypto "^2.3.0" + ethereumjs-util "^7.1.5" + ethers "5.7.2" + md5 "^2.3.0" + pako "^2.1.0" + ramda "^0.28.0" + +weavedb-contracts@^0.44.2: + version "0.44.2" + resolved "https://registry.yarnpkg.com/weavedb-contracts/-/weavedb-contracts-0.44.2.tgz#5f2745e9aa2ff7cd94cc487f4a8833d2a99518f3" + integrity sha512-OOogO+VWOE9cermw3rtSJuSAOlOGlU4DHdfW+pWbql3NbcRQVZBpY6tg5Ko//LvA/yjoOTTtiRQMuDqv4/yLiw== + dependencies: + "@noble/curves" "^0.9.0" + "@peculiar/webcrypto" "^1.4.3" + fpjson-lang "^0.1.5" + ramda "^0.28.0" + wasmbuilder "^0.0.16" + wasmcurves "^0.2.1" + +weavedb-node-client@^0.44.2: + version "0.44.2" + resolved "https://registry.yarnpkg.com/weavedb-node-client/-/weavedb-node-client-0.44.2.tgz#6f1cb2300051360d69157eff74173b9c43b8db66" + integrity sha512-K3KLSQuzcgo4mi0HB3LG2Yt7TjxWDTdx373w9fXVL8vwBwF6khbWfTAADDYqtGjnCX0YkU7q2Wt4O1JHiZQvAg== + dependencies: + "@grpc/grpc-js" "^1.1.0" + "@grpc/proto-loader" "^0.5.0" + arweave "^1.12.2" + ramda "^0.28.0" + weavedb-base "^0.44.2" + +weavedb-offchain@^0.44.3: + version "0.44.3" + resolved "https://registry.yarnpkg.com/weavedb-offchain/-/weavedb-offchain-0.44.3.tgz#9de532cffae60e09e348e7759bfc803a8e2742ea" + integrity sha512-k5O3mgXLHsmtFyWX25EED2YYhzYJMSweMNRypAqW+D/mZpS0c1aaZxvv05j4iAYPOKgQHj8SK97cWv+TFQ6ubQ== + dependencies: + "@metamask/legacy-web3" "^2.0.0" + arweave "^1.11.4" + md5 "^2.3.0" + ramda "^0.28.0" + weavedb-base "^0.44.2" + weavedb-contracts "^0.44.2" + +webcrypto-core@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" + integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/node/node-server/lua/weavedb.lua b/node/node-server/lua/weavedb.lua index 12dedc1..7a58c8c 100644 --- a/node/node-server/lua/weavedb.lua +++ b/node/node-server/lua/weavedb.lua @@ -1,13 +1,26 @@ local ao = require("ao") local json = require("json") data = data or {} +if bundler ~= '' then bundler = '' end + +Handlers.add( + "Set-Bundler", + Handlers.utils.hasMatchingTag('Action', 'Set-Bundler'), + function(msg) + assert(msg.From == ao.env.Process.Owner, "Only owner can execute!"); + assert(type(msg.Tags.Bundler) == "string", "Bundler required!"); + bundler = msg.Tags.Bundler + Handlers.utils.reply('bundler set!')(msg) + end +) Handlers.add( "Rollup", Handlers.utils.hasMatchingTag('Action', 'Rollup'), function(msg) - local diffs = json.decode(msg.Data) - for i, v in ipairs(diffs) do + assert(msg.From == bundler, "Only bundler can execute!"); + local _data = json.decode(msg.Data) + for i, v in ipairs(_data.diffs) do data[v.collection] = data[v.collection] or {} data[v.collection][v.doc] = v.data end @@ -21,8 +34,16 @@ Handlers.add( function(msg) assert(type(msg.Tags.Query) == 'string', 'Query is required!') local query = json.decode(msg.Tags.Query) - local result = json.encode(data[query[1]][query[2]]) + local result = nil + if #query == 1 then + local _result = {} + for k, v in pairs(data[query[1]]) do + table.insert(_result, v) + end + result = json.encode(_result) + else + result = json.encode(data[query[1]][query[2]]) + end ao.send({ Target = msg.From, Tags = { Result = json.encode(result)} }) end ) - diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index 2bf664a..631a446 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -209,11 +209,18 @@ class Rollup { ar: this.bundler, }, ) - const input = o(flatten, map(_path(["data", "diff"])))(bundling) + const diffs = o(flatten, map(_path(["data", "diff"])))(bundling) + const txs = map(v => { + return { + id: v.data.txid, + ts: v.data.tx_ts, + input: v.data.input, + } + })(bundling) const { err, mid } = await this.syncer.msg({ pid: this.contractTxId, act: "Rollup", - data: JSON.stringify(input), + data: JSON.stringify({ diffs, txs }), checkData: "committed!", }) if (!err) { diff --git a/node/node-server/vm.js b/node/node-server/vm.js index d9fd6b2..a2138cf 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -333,10 +333,11 @@ class VM { protocol: "https", } const arweave = Arweave.init(_arweave) + const bundler = await arweave.wallets.jwkToAddress( + this.conf.bundler, + ) initialState.owner = _db.owner - initialState.bundlers = [ - await arweave.wallets.jwkToAddress(this.conf.bundler), - ] + initialState.bundlers = [bundler] if (type === "ao") { initialState.contracts = { ethereum: "ethereum", @@ -355,7 +356,11 @@ class VM { const { pid } = await ao.spwn({}) await ao.wait({ pid }) - const { mid } = await ao.load({ pid, data }) + const { mid } = await ao.load({ + pid, + data, + fills: { BUNDLER: bundler }, + }) const tx = await this.admin_db.update( { contractTxId: pid, type: "ao", srcTxId: module }, "dbs", From f3826d6e488d3c6105a1fccf096dc5df9128c95d Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Sat, 26 Oct 2024 10:19:48 +0400 Subject: [PATCH 09/60] integrate zkJSON --- .gitignore | 1 + node/node-server/rollup.js | 88 +++- node/node-server/test/ao.js | 121 ------ node/node-server/test/benchmark.js | 76 ---- node/node-server/test/cache.js | 129 ------ node/node-server/test/cwao20.js | 293 -------------- node/node-server/test/cwao20.wasm | Bin 2075636 -> 0 bytes node/node-server/test/no-cache.js | 103 ----- node/node-server/test/parallel-query.js | 164 -------- node/node-server/test/rate-limit-403.js | 47 --- node/node-server/test/rate-limit-429.js | 44 -- .../node-server/test/rate-limit-no-api-key.js | 43 -- node/node-server/test/test-add_db.js | 150 ------- node/node-server/test/test.js | 78 +++- node/node-server/test/wal.js | 378 ------------------ node/node-server/test/zkdb.js | 88 ---- node/node-server/vm.js | 41 +- 17 files changed, 175 insertions(+), 1669 deletions(-) delete mode 100644 node/node-server/test/ao.js delete mode 100644 node/node-server/test/benchmark.js delete mode 100644 node/node-server/test/cache.js delete mode 100644 node/node-server/test/cwao20.js delete mode 100755 node/node-server/test/cwao20.wasm delete mode 100644 node/node-server/test/no-cache.js delete mode 100644 node/node-server/test/parallel-query.js delete mode 100644 node/node-server/test/rate-limit-403.js delete mode 100644 node/node-server/test/rate-limit-429.js delete mode 100644 node/node-server/test/rate-limit-no-api-key.js delete mode 100644 node/node-server/test/test-add_db.js delete mode 100644 node/node-server/test/wal.js delete mode 100644 node/node-server/test/zkdb.js diff --git a/.gitignore b/.gitignore index 07ecc71..98dd184 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +circom/ \*shell\* hardhat.config.js # Logs diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index 631a446..fb65d90 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -78,6 +78,7 @@ class Rollup { snapshot, type = "warp", }) { + this.hash = null this.snapshot = snapshot this.cb = {} this.type = type @@ -126,7 +127,33 @@ class Rollup { await this.initDB() if (this.rollup) this.bundle() } - + async genZKP(col, doc, path) { + let col_id = this.cols[col] + let zkp = null + if (isNil(col_id)) return { err: "collection doesn't exist", zkp } + let json = null + try { + json = await this.db.get(col, doc) + } catch (e) { + console.log(e) + } + if (!json) return { err: "doc doesn't exist", zkp } + if (isNil(json[path])) return { err: "path doesn't exist", zkp } + try { + const start = Date.now() + zkp = await this.zkdb.genProof({ + json, + col_id, + path, + id: doc, + }) + console.log("zkp generated...", Date.now() - start) + } catch (e) { + console.log(e) + return { err: e } + } + return { err: null, zkp } + } async measureSizes(bundles, last_hash) { let sizes = 0 let b = [{ bundles: [], t: [], size: 0 }] @@ -186,10 +213,7 @@ class Rollup { }) } if (this.type === "ao") { - const warp = new DB({ - type: 3, - contractTxId: this.contractTxId, - }) + const warp = new DB({ type: 3, contractTxId: this.contractTxId }) let height = this.height let results = [] let validity = {} @@ -232,6 +256,40 @@ class Rollup { //duration: result.duration, }) validity[mid] = true + if (diffs.length > 0) { + for (const v of diffs) { + let col_id = this.cols[v.collection] + if (!col_id) { + col_id = await this.zkdb.addCollection() + this.cols[v.collection] = col_id + } + const res = await this.zkdb.insert(col_id, v.doc, v.data) + } + let txs = diffs.map(v => { + const col_id = this.cols[v.collection] + return [col_id, v.doc, v.data] + }) + console.log(txs) + /* + const start = Date.now() + const zkp = await this.zkdb.genRollupProof(txs) + console.log("zkp generated...", Date.now() - start) + */ + this.hash = this.zkdb.tree.F.toObject( + this.zkdb.tree.root, + ).toString() + console.log("zkp hash:", this.hash) + /* + const start2 = Date.now() + const zkp2 = await this.zkdb.genProof({ + json: diffs[0].data, + col_id: 0, + path: "name", + id: "Bob", + }) + console.log("zkp generated2...", Date.now() - start2) + */ + } } else { // [TODO] need to handle this console.log(err) @@ -619,19 +677,13 @@ class Rollup { } async initZKDB() { this.zkdb = new ZKDB({ - level: 100, - size_path: 5, - size_val: 5, - size_json: 256, - size_txs: 10, - level_col: 8, wasmRU: path.resolve(__dirname, "circom/rollup/index_js/index.wasm"), zkeyRU: path.resolve(__dirname, "circom/rollup/index_0001.zkey"), wasm: path.resolve(__dirname, "circom/db/index_js/index.wasm"), zkey: path.resolve(__dirname, "circom/db/index_0001.zkey"), }) await this.zkdb.init() - const col_id = await this.zkdb.addCollection() + this.cols = {} } async initOffchain() { let state = { @@ -702,7 +754,7 @@ class Rollup { /* if (diff.length > 0) { if (this.txid === "testdb") { - for (const v of diff) { + for (const v of diff) { const res = await this.zkdb.insert(0, v.doc, v.data) } @@ -880,6 +932,16 @@ process.on("message", async msg => { await rollup.initWarp() rollup.bundle() process.send({ op, id }) + } else if (op === "hash") { + process.send({ op, id, result: { hash: rollup.hash } }) + } else if (op === "zkp") { + const { err, zkp } = await rollup.genZKP(msg.collection, msg.doc, msg.path) + process.send({ + op, + id, + err, + result: { zkp }, + }) } else { process.send({ op, id }) } diff --git a/node/node-server/test/ao.js b/node/node-server/test/ao.js deleted file mode 100644 index 3a37a0c..0000000 --- a/node/node-server/test/ao.js +++ /dev/null @@ -1,121 +0,0 @@ -const { expect } = require("chai") -const DB = require("weavedb-node-client") -const SDK = require("weavedb-sdk-node") -const { wait, Test } = require("./lib/utils") -const { readFileSync } = require("fs") -const { resolve } = require("path") -const { AO } = require("aonote") -const { setup, ok, fail } = require("./lib/helpers.js") - -const getModule = async () => readFileSync(resolve(__dirname, "../contract.js")) - -describe("WeaveDB on AO", function () { - this.timeout(0) - let admin, network, bundler, test, base, arweave, opt - - before(async () => { - ;({ opt } = await setup({ cache: true })) - - // testing in insecure mode, never do that in production - test = new Test({ - aos: opt.ao, - secure: false, - sequencerUrl: "https://gw.warp.cc/", - apiKey: "xyz", - ao: true, - }) - ;({ network, arweave, bundler, admin, base } = await test.start()) - await wait(3000) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - it("should deploy weavedb on AO", async () => { - const db = new DB({ - rpc: "localhost:9090", - contractTxId: "testdb", - arweave: network, - }) - await wait(2000) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - - // add a DB to node - const tx = await db.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: admin.address, - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx.success).to.eql(true) - - // deploy L1 AO contract (via node) - const { contractTxId, srcTxId } = await db.admin( - { - op: "deploy_contract", - key: "testdb", - type: "ao", - module: opt.ao.module, - scheduler: opt.ao.scheduler, - }, - { privateKey: admin.privateKey }, - ) - expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) - - await wait(2000) - - // update the DB (via node) - const db2 = new DB({ - rpc: "localhost:9090", - contractTxId, - }) - const Bob = { name: "Bob" } - const tx2 = await db2.set(Bob, "ppl", "Bob", { - privateKey: admin.privateKey, - }) - expect(tx2.success).to.eql(true) - expect(await db2.get("ppl", "Bob")).to.eql(Bob) - - // check rollup - await wait(5000) - const ao = new AO(opt.ao) - expect( - JSON.parse( - ( - await ao.dry({ - pid: contractTxId, - act: "Get", - tags: { Query: JSON.stringify(["ppl", "Bob"]) }, - get: { name: "Result", json: true }, - }) - ).out, - ), - ).to.eql(Bob) - /* - // get zk merkle tree hash - try { - expect(await cwao.cu.hash(contractTxId)).to.eql({ - hash: "9490062173314360716133102172838140491357233774084690229623706293601383041546", - height: 1, - }) - // get zkJSON proof - expect( - (await cwao.cu.zkjson(contractTxId, "ppl", "Bob", "name")).data, - ).to.eql(Bob) - } catch (e) { - console.log(e) - } - */ - }) -}) diff --git a/node/node-server/test/benchmark.js b/node/node-server/test/benchmark.js deleted file mode 100644 index a111cdf..0000000 --- a/node/node-server/test/benchmark.js +++ /dev/null @@ -1,76 +0,0 @@ -const EthCrypto = require("eth-crypto") -const { expect } = require("chai") -const DB = require("weavedb-node-client") -const SDK = require("weavedb-sdk-node") -const { wait, Test } = require("./lib/utils") - -describe("rollup node", function () { - this.timeout(0) - let admin, network, bundler, test - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ secure: false }) - ;({ network, bundler, admin } = await test.start()) - await wait(3000) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - it("should achieve 1000 tps", async () => { - const db = new DB({ - rpc: "localhost:9090", - contractTxId: "testdb", - arweave: network, - }) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - await wait(2000) - // add a DB to node - const tx = await db.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: false, - owner: admin.address, - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx.success).to.eql(true) - - let txs = [] - let done = 0 - let count = 5000 - let pr = 10 - for (let i = 0; i < count; i++) { - const user = EthCrypto.createIdentity() - txs.push( - await db.sign("upsert", { age: db.inc(1) }, "ppl", "bob", { - privateKey: user.privateKey, - nonce: 1, - }), - ) - } - await db.write(txs[0].function, txs[0], true, true, false) - let i = 1 - let start = Date.now() - const go = async num => { - await db.write(txs[num].function, txs[num], true, true, false) - done += 1 - if (i >= count) return - go(i++) - } - for (let i2 = 0; i < pr; i2++) go(i++) - await wait(1000) - console.log(done, "tps") - expect((await db.get("ppl", "bob")).age).to.be.gt(1000) - }) -}) diff --git a/node/node-server/test/cache.js b/node/node-server/test/cache.js deleted file mode 100644 index 8e92535..0000000 --- a/node/node-server/test/cache.js +++ /dev/null @@ -1,129 +0,0 @@ -const { expect } = require("chai") -const DB = require("weavedb-node-client") -const SDK = require("weavedb-sdk-node") -const { wait, Test } = require("./lib/utils") -const fs = require("fs") -const path = require("path") -const conf = require("../weavedb.config.js") - -describe("rollup node", function () { - this.timeout(0) - let admin, network, bundler, test - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ - secure: false, - snapshot: conf.snapshot, - }) - ;({ network, bundler, admin } = await test.start()) - await wait(3000) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - it("should recover from cache", async () => { - const db = new DB({ - rpc: "localhost:9090", - contractTxId: "testdb", - arweave: network, - }) - await wait(2000) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - - // add a DB to node - const tx = await db.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: admin.address, - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx.success).to.eql(true) - // deploy L1 warp contract (via node) - const { contractTxId, srcTxId } = await db.admin( - { op: "deploy_contract", key: "testdb" }, - { privateKey: admin.privateKey }, - ) - expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) - await wait(2000) - // update the DB (via node) - const db2 = new DB({ - rpc: "localhost:9090", - contractTxId, - }) - const Bob = { name: "Bob" } - const tx2 = await db2.set(Bob, "ppl", "Bob", { - privateKey: admin.privateKey, - }) - expect(tx2.success).to.eql(true) - expect(await db2.get("ppl", "Bob")).to.eql(Bob) - - // check rollup - await wait(5000) - - // check L1 warp contract info directly with SDK (not via node) - const warp_db = new SDK({ - type: 3, - contractTxId, - arweave: network, - }) - await warp_db.init() - expect((await warp_db.getInfo()).version).to.eql("0.40.0") - const res = await warp_db.db.readState() - - expect(res.cachedValue.state.rollup.height).to.eql(1) - // check if L1 Warp state is the same as L2 DB state - expect(await warp_db.get("ppl", "Bob")).to.eql(Bob) - // stop server and vm and delete cache - test.stopServer() - await test.stopVM() - test.deleteCache() - - // restart - await wait(5000) - await test.startVM() - await test.startServer() - await wait(2000) - - const db3 = new DB({ - rpc: "localhost:9090", - contractTxId, - }) - - const tx3 = await db3.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: admin.address, - contractTxId, - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx3.success).to.eql(true) - await wait(5000) - - const Alice = { name: "Alice" } - const tx4 = await db3.set(Alice, "ppl", "Alice", { - privateKey: admin.privateKey, - }) - expect(tx4.success).to.eql(true) - expect(await db3.get("ppl")).to.eql([Alice, Bob]) - }) -}) diff --git a/node/node-server/test/cwao20.js b/node/node-server/test/cwao20.js deleted file mode 100644 index fbfe48f..0000000 --- a/node/node-server/test/cwao20.js +++ /dev/null @@ -1,293 +0,0 @@ -const { expect } = require("chai") -const EthCrypto = require("eth-crypto") -const { Wallet } = require("ethers") -const DB = require("weavedb-node-client") -const SDK = require("weavedb-sdk-node") -const { wait, Test } = require("./lib/utils") -const { CWAO } = require("cwao") -const { readFileSync } = require("fs") -const { resolve } = require("path") - -const getModule = async () => readFileSync(resolve(__dirname, "../contract.js")) -const ath = wallet => ({ privateKey: wallet.privateKey }) -const getModuleCWAO20 = async () => - readFileSync(resolve(__dirname, "./cwao20.wasm")) - -describe("WeaveDB on AO", function () { - this.timeout(0) - let admin, admin_l1, network, bundler, test, base, arweave, base_cw, bundler2 - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ - secure: false, - sequencerUrl: "https://gw.warp.cc/", - apiKey: "xyz", - ao: true, - cosmwasm: true, - }) - ;({ network, arweave, bundler, bundler2, admin, admin_l1, base, base_cw } = - await test.start()) - await wait(3000) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - it("should start server", async () => { - try { - const wdb = new CWAO({ wallet: bundler, ...base }) - const sch = await arweave.wallets.jwkToAddress(bundler) - expect(await wdb.mu.get()).to.eql("ao messenger unit") - expect((await wdb.cu.get()).address).to.eql(sch) - expect((await wdb.su.get()).Address).to.eql(sch) - expect((await wdb.su.timestamp()).block_height).to.eql(0) - const _binary = await getModule() - const mod_id = await wdb.deploy(_binary) - await wdb.setSU({ url: base.su }) - - const db = new DB({ - rpc: "localhost:9090", - contractTxId: "testdb", - arweave: network, - }) - await wait(2000) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - - // add a DB to node - const tx = await db.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: [ - admin.address.toLowerCase(), - admin_l1.address.toLowerCase(), - ], - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx.success).to.eql(true) - - // deploy L1 AO contract (via node) - const { contractTxId, srcTxId } = await db.admin( - { - op: "deploy_contract", - key: "testdb", - type: "ao", - module: mod_id, - scheduler: sch, - }, - { privateKey: admin.privateKey }, - ) - expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) - await wait(2000) - - // update the DB (via node) - const db2 = new DB({ - rpc: "localhost:9090", - contractTxId, - }) - const Bob = { name: "Bob" } - const tx2 = await db2.set(Bob, "ppl", "Bob", { - privateKey: admin.privateKey, - }) - expect(tx2.success).to.eql(true) - expect(await db2.get("ppl", "Bob")).to.eql(Bob) - - // check rollup - await wait(5000) - expect( - await wdb.query({ - process: contractTxId, - action: "get", - input: { function: "get", query: ["ppl", "Bob"] }, - }), - ).to.eql(Bob) - - // deploy cwao20 - - const _binary2 = await getModuleCWAO20() - const token = new CWAO({ wallet: bundler2, ...base_cw }) - const sch2 = await arweave.wallets.jwkToAddress(bundler2) - const wallet2 = await token.arweave.wallets.generate() - const addr2 = await token.arweave.wallets.jwkToAddress(wallet2) - const mod_id2 = await token.deploy(_binary2) - await token.setSU({ url: base_cw.su }) - - const pr = await token.instantiate({ - module: mod_id2, - scheduler: sch2, - custom: [ - { name: "Name", value: "WeaveDB" }, - { name: "Ticker", value: "WDB" }, - { name: "Logo", value: "https://example.com/wdb.png" }, - { name: "Denomination", value: "6" }, - ], - }) - - await token.execute({ - process: pr.id, - action: "Mint", - custom: [{ name: "Quantity", value: "100" }], - }) - - expect( - await token.query({ process: pr.id, action: "Info", input: {} }), - ).to.eql({ Name: "WeaveDB", Ticker: "WDB", Denomination: "6" }) - - await token.execute({ - process: pr.id, - action: "Transfer", - custom: [ - { name: "Quantity", value: "30" }, - { name: "Recipient", value: contractTxId }, - ], - }) - await wait(5000) - expect( - await token.query({ - process: pr.id, - action: "Balance", - input: { Target: contractTxId }, - }), - ).to.eql({ Balance: "30", Ticker: "WDB" }) - const tokens = await wdb.query({ - process: contractTxId, - action: "getTokens", - input: { function: "getTokens", query: {} }, - }) - expect(tokens.tokens.available).to.eql({ [pr.id]: "30" }) - - // lock token to L2 - - const cu = EthCrypto.createIdentity() - const cu2 = EthCrypto.createIdentity() - const cu3 = EthCrypto.createIdentity() - - const jobID = "tokens" - const job = { - relayers: [cu.address], - signers: [cu2.address, cu3.address], - multisig: 100, - multisig_type: "percent", - schema: { - type: "object", - required: ["tokens", "height", "last_token_lock_date"], - properties: { - tokens: { type: "object" }, - height: { type: "number" }, - last_token_lock_date: { type: "number" }, - }, - }, - } - await db2.addRelayerJob("tokens", job, { - privateKey: admin.privateKey, - }) - expect(await db2.getRelayerJob("tokens")).to.eql(job) - const signed = await db2.sign("lockTokens", { jobID, ...ath(admin) }) - const extra = { - tokens: tokens.tokens.available, - height: tokens.rollup.height, - last_token_lock_date: tokens.last_token_lock_date, - } - const cuw2 = new Wallet(cu2.privateKey) - const cuw3 = new Wallet(cu3.privateKey) - const multisig_data = { extra, jobID, params: signed } - const sig2 = await cuw2.signMessage(JSON.stringify(multisig_data)) - const sig3 = await cuw3.signMessage(JSON.stringify(multisig_data)) - await db2.relay("tokens", signed, extra, { - ...ath(cu), - multisigs: [sig2, sig3], - }) - expect((await db2.getTokens()).tokens.available_l2).to.eql({ - [pr.id]: "30", - }) - const rules = [ - ["set:mint", [["allow()", true]]], - ["update:withdraw", [["allow()", true]]], - ] - const auth = ath(admin) - await db2.setRules(rules, "ppl", auth) - const trigger_mint = { - key: "mint", - on: "create", - version: 2, - func: [ - [ - "mint()", - [ - { - token: pr.id, - amount: 10, - to: { var: "data.setter" }, - }, - ], - ], - [ - "transfer()", - [ - { - token: pr.id, - amount: 5, - from: { var: "data.setter" }, - to: cu3.address.toLowerCase(), - }, - ], - ], - ], - } - await db2.addTrigger(trigger_mint, "ppl", auth) - const trigger_withdraw = { - key: "withdraw", - on: "update", - version: 2, - func: [ - [ - "withdraw()", - [ - { - token: pr.id, - amount: 5, - from: { var: "data.setter" }, - }, - ], - ], - ], - } - await db2.addTrigger(trigger_withdraw, "ppl", auth) - await db2.query("set:mint", { name: "Bob" }, "ppl", "Bob", ath(cu2)) - expect((await db2.getTokens()).tokens.allocated[pr.id]).to.eql("10") - await db2.query("update:withdraw", { age: 21 }, "ppl", "Bob", ath(cu3)) - expect( - ( - await db2.get("__tokens__", [ - "address", - "==", - cu2.address.toLowerCase(), - ]) - )[0].withdraw, - ).to.eql(5) - await db2.withdrawToken({ token: pr.id, to: sch }, ath(cu2)) - expect((await db2.getTokens()).tokens.allocated[pr.id]).to.eql("5") - await wait(5000) - expect( - await token.query({ - process: pr.id, - action: "Balance", - input: { Target: sch }, - }), - ).to.eql({ Balance: "5", Ticker: "WDB" }) - } catch (e) { - console.log(e) - } - }) -}) diff --git a/node/node-server/test/cwao20.wasm b/node/node-server/test/cwao20.wasm deleted file mode 100755 index d586b15d3c45150c0679bbc0ebc55da205e78c32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2075636 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%0DDMeIqVdu#Kv( z%SD#>oV+;&tlc;~B6^a~rvvz%z6g6En_|U~h`52}c*}C0zSa^;8D3_k;U9S15yOeE zPRAQ@QLXp$@WUCWBZlDNZ7AWXYc0n*IU?nA>SLC3OpA!r@Ke`W4&Q~KHlO;e<+Pk+ ziz6VzQ(wR^^*xet+OLkvp>66UFcNn;;ZTm4dK836*vDYuCnx)ImYfMxFiXCqnIjhl zrH2UHMJkb=2SS9p!qC%Q8wJpnLh9vJLNtedDs5}K2OO^YbYFZg-OVnF-3}`TJ9!Zh zO*Z*%zJ`&i=z17l)0<)Eug!ekH-`TK%0KB zduw2)pK=j)8TckS+{7r{`8b=)MO5k8!hRQ}j+})yse(1VbUu2x6l^(ZfN}^cG@+4h zm8UJQ29vkL{7?o)lwRl5^Y0me*B%K}I&I@`V<=n>pjCEr{~3hW zBV4azhVPHTQg$JV8W&tQBfV)NG zhXN=eaH1c73Zp<7!#Cym?-b*l9>Up`b|StffDHh$&hg_PL-529gjaQnQ>2Oz?)r@% zr#KB^c=aJ!6s4IA2VxZe7Zy*Iz>K=3dBzWSp!^8O+-L)&g@2h(VBthAqoGiEiFG66 z6b@Zpl-}s%h3^6p5em^3BqRX}k%zJo*s&0C2uynqh={#K8&nox3kz_+Qjt_wXyjOtl{gTwg}|#=`=ot2D<>wd;1`UZBJ!74qN0XSDdq+(bMa^v z(;N(7>3u?6#4pQ{K|ab6dA+G6jw9wFs$*JXo4tO6EzKc?JuPL9MP)@WVm^geL%rOC zRoijRs$TxH?+1?}`?(mEv6?LG8MPwUof?xi(ZZ}KQsxD#k@udpMV}7%emK7G1Rx?4 zUXO_JpQ5-=q5_v-@)~jWvqT0l&!T>(42g;@-zh*uCLSIUgT7b9k;c_HVf?V-gMBl3 zd(pb6nEeSpKj2yR9Z6uCud&6%kAQgynkMq@dOQmMF`$zH*_q_lW%oK_BojFjnJs%y zi1RRYBcQB~k*0^);yx?{3ZKG8dZbTBOMF8DvOa5(B?d9I7f|xyZ6H5fe@l7DG59+K zTk(Sng_z!NyHD#f9nrf0pAJ$}a!GIi;>xZv7A8p!eA5qCD`h!NIMGPC-k;T*Ez{@5 zJAI4g&&8lUzjZuuI-a^kI4}xVA-oGl;jE+2#^@r`Zj`kg`EO>pyg__V{4Cn6+d;u@4-#furS@nK#|feSQaXloi+m^ z0hSfM6YV;qYN8goB5r1PUBJ3zthEcvz|nfZ$=N{tWAfrA8xcwmqlH zX&V9(VQvUe{|2WR#rChNvyS1ja0vkBYg!U+-`9QmRK*&?@==RCgLmPw)orOQE@MDe zc)i;&mUXU*N5q5{(abyz?*({9M|3Ke&p4Cm>?DOZxs6;t0vRCqAV%yFgTj0$v;Z-} zhcRY?E#bo$3jqB4hcO()#Y?#8#Jl#aGt)_X7z2tWd>AA93|Qk)l)^=B$M~Exg{WrR zHK^xLMR+5_C)mC>=6+RQCgu0Dv!xwm3%~ZWxxxrJgqbIkN^yvYG!7B5Lk@Wh3=S0l z_~SX`zJ?COwr1Y3hT>x%MyD8@@ zQup5VPo;(mPe*^S%iH7U+AMr)Dq>=NK0F%Ev#e%sp${L54%G8h02MQEQ3FVNo`un% zTW8QNTp5#_r#N*)M_NhGejtVD@f^1O-J`mzN+(G& z+VW!q3_iW$I z`v#JbgoIE+57kgY0#brf5|pB%Qq*9_Yr_g6DzO4K1eH)U5fHE;V#7*6M8Jj}uc+9u zA$C;6@AsS8-RzsdmFxfdFCWjtn>}aFoH=vm%$YN@GqZhBGOJ9}ESRc!@h%Yr#DNLE z-WHWjnT+q8z$yzCpt2b$*XSZ1VYPXnAxKs*Uvn0+E=Xrlp!V!rA_#DF=Rh-!K!Cwi zRuX@5w&Cp;m0EBPjC%JLQ_z+R#sK)~eO=Hd3jP5LXIv?}3}X4P9y=$i;kTeO=W$oz z)jE4lK_=GnUkAN;QzPt5_@^fdb|8G}l%l#fzvPQ#N8>=GSlgKvZQ3 z`pX>pkS?yER(WoF6}(UxTjHu%%L6ePsK(>ft~WJP7gO=f4Ow0~Y^sV04RzbQ5u-*m zfors8NtXcF1|Zmk6??cJ7_UL)L-9Hc&-2@B$+6R6)sq0sYnSPrfgU*%&$2hJ zI~}tQNW{({w?(}I#9ScI%Dx)nRbw^r;=|bN3)H;!$-?^p#VjN14*0AyztgpoK$hM( zW}p&9Yq7JeRU7X-RszpqB{l#EE0OX{q!Qx*1eHJ`v5O$$3KCpbKj}RPvr$2O`X}OUI5F+vfzONM2(5sRiL{TjJi{znU<3VvH+H9Xa>YA5Oe~8 zTt9g1a11O^qXf9EYaD=ZTi0VCwLu!L{lu473Gq3Mq9w40^=VVfBfJj-HeSbS@LH@G z6%5zZGU!N6+BkM8H`l}(+V}&pe3-{16jiX&^$yS0MFpNi^H{}%z{a-_2yA>8fIzdc zwP@3E3;8X*}l-HLRqLXsuNQXz)D&Y$Jeu z&xqHb10ltf7Qaead;o_QA0R@DC!!9ew0I&CEIvR4?GkPPbx=@X z@gyP~v3Q~qEIvR479YT&#RrHQi%&iYwzCUbDR{hI{D~^1lE60g!&}4fZu{Dgb~Jx0 z$OmXy>2gcbEOEAtyoM%sP>*^Z&!(38zkCPv1c(`S*J%L4?n?cjK4EwLFYLk$x0xOS zeo)F`;Wkquq&@wAv0>VI-S0=^SlkNnDI4&(Gt1*dE|1Tc#3geQR}4T-;Ow-6)SQLW z(}M3k=OV;+)M!1x!#ZdKWK^m24CZ~u#Nwk@4OEpP&U7B{saP?z;1MtP=hZ3$ z5ny)^{$PP`r7siP1SJ+aJbXyLcCUF<)P9AP>Vo@?x$Lo;MyQ_yLQZ_w$^Mqpu)+drIm28CfQ7SleVM~^bj^WFI7cTD(XT%ff!U?Q z*(JFUP6%6xNC;agML1Do79xVM6^}_*6=J3g=}@tBd6a5`0tU*XR5Jlc$IH3n3IGY; z;r+X!XeuWfMHBX;=)dn675m2q*1ahfVb}q-0SHgvW^M9CkSB0Q018jwP6fb47#=EJ z!RKU6oxt4y;NLQI5A}>1I^n3H6Albrp1|G4;(`;n;(2A@@&s-!fY7*$0VEi=WE2{A zc+v}l0IQ!Dp7hEELJp$ANv{wQob+k{iiDG1LB+<_=LZq4nz_WN9m|~qiexAUzwIwc~2Yc z6=&QwU-$SLW)!3>xI@qM_&R1P0lbPy;;Wbn0P;1A$Ja0`n1nz$##b;~0ML2y^$X>q zH<7Pi@&JUdUPciJUcF2J5WaeuMj&|gQUxIJPY~K&zXsPtLgWst!Na)M{bej)ts<{S z^o&?sV>=IEa|>VwAoDUCI=>=4faRN&17PMM0_D3m z!@2`RD1-YdBsdOyID!5!BNy3~2Sn%kWL-vqe6gc~@`Be0ab6om!^)SSBzaqbx`mkq~jZ^5D~ng3J?sr_=YNk(U1<`Pz8vB;0;xPkkarCRfwQ8d_xr=BGQQF z^ss#)itNrF4kh-Y?QPX{{*^9KzT{{HlECo4!>dE-{65s3qfl+Kkh=az&vBnXK}68J zWoWd)N2C!USN!CgnRtZZ@C!B7lRkyDws_K4b5LBDo)G9e-Q|+~2BgVG|3QaO(5KU* zf3;k_$ti4xgP}8l$=PZ3<0ulNM zCf#Rt@J1ovA5Wmv%u5;sU@Cy_t7EvKWXcj%7gHel5VM_ob_5}>{B=%721?J?EF5mO zbkB<*Bp2bV9Ia^NyyQN!wR^lTE)h~9^*Wgb5H#T=i0C}#PiQz}FZ{yvoVgLi$hAhM zbBG@kkYeO*7)dYlRYOFkXV-V%IZ72S5ucgd8jAKl^HxKAaR9hxS*pEZ1Yy~nqse($ zMKLHaFLT!W<)(m&b2Dd21R(_(n=E1eFkEzLyPO}KaAGFXC3%>V6 z;khO{6CKPc7+=kgZx^EfJDwQs;_&0t2P`p=z;~KC_Xk7lsOKkiTC9oh2q0nNLqdFb ztV%E|2J51FiKDVR-x*>Z0Z@H`YX?7kQYDxh(e;lCs0NJI#TcLJjDD6Fzr)YI{x>1c zAb{*6pEku?fmltuTH+mFtS@l;b;(v=tm~h`u0I0E(HviR&Ogd$74L)BR|LL;ZWux) z?jS64D1$x?9fS<2>;`Hdt>xJkDcQc}gCimP;g??q! zaUt%kuE&H<_A`&DhUBbpM1E^`s^5*}ERh>G>|ZeGu&Gl?(KXrL?B|ehuh#DMeh$Ja z?vLMHshG9|iZ9HhaWYa3T9-U+ZB>m8jVNjrE-}!i1gs5U6PZwO%3VMvk|Ict|C zIw52(>|;1HdMJbI!F+vjQ`qh?YDGsP#v4}r(OUL}4f3qE&rPo+hyBPUyPAwyIM4+Z zTbO0YO~!>23>ip}vm6M|;XBBjM~~CQ_b|Z1_5L}WA(6aUAL^n24OaM);ZXLJ18FpPz_(=pZOeOrxy$hdV_Wm1%SIrs~m_kb7 zmPLiD{+|#|&NX!oV7U?F6O|)Z3-KF=y?$nVU8U-Ofg^-ZxEtL;`h=*>%~@cIPmxe~ z1x7m_sna=Dnh%|%78fwaYryfCu{2jWALZ%>y{TMXVKd8N6J|hF{Sr ziim_LN+P0B6cGtgltctkRJfR(#iCkRO=Qrttr$SCn7xa@-s1wfn4QvJ67OGZNY{j878^%9buIz>b-65UQ|Ys0;0G-)_9i#802ng6eLV9B zB`#ZF$oPU7=S~$&8=onsP^<79PN6mf_?xFt+gU_o>%TOG5}4|SQ>ZKeHB+d3CIwTd z5(2>#Y8-(7?kQAk)9YBwM8QK&^I~tq2~^;DXnQO60-jglnX5Zbfo2Pzu_zF`Y$aZI zkf=ik=UhC~^4OJe{jKK|MG^SaWzu)B#S}Q$&M(-RP8?Ad$>|R|^Fw=o_?9XWycvA_ zga`%K6V5uV1`)0&xF;@D*j!a^GhttcAu?b+v|}^(vIuNlq1PAo#XcwYilLn?=cX|# z2VpsC@)ML~5h8+%%!%k6{nnU7L@zRz2#OngKa_}2Ts-^#>^bNuK^a4CPPY$5ZwX-Z z7^e(9CV<&%obS<5h+wZ}&#@Qz9EcclbG|*==RlYo&hRgMU!o*?_e)5C+vBBL z#_H$PzVRWr(nIK_n2{J4?9haUsnM|OHKY3&LwvB@k6B>vG)!GLQ#4WB*&LG7^5G$Zd6obcoGH-3N{9e?=p+T#oByjh^Y%jzV) ztS$zi-gbBJUv6UzU~(gob9yIR^hFuNZ2#=q2qXpd;`{XQC3&)In`;u<<}XaTec8mitM2{-^`ZhjB-p*E56Df&j~lj z{xu=(f;JfF@1svO(G*gSxu#Ci#oy~<9+MWyfGzz=T;jV30*rZ5OJ8=VEIEbASN4e7`Ek}zS+Q=S^iqXjo2RsJ&7tt3@7%tS7R${I#Fes#I7O1|4BbJkGi zxW}tgj#5vwp!7YysQ1|{Gt9i)t6Tiu)(~>gJ=jEJ9@^Uxy@NNa1{||qEj>g_ZZZMq zFwvjKd?sVhXwvMZhFD15dYXHBR8>iu6*)m4hO1}3q(Y}LEi^Z+N-3=+RC|=8XUPM( z%Lap48*bE)!LBr;wvk3jztoVYZpR#e*z0fzW!gt7Co^U=PZ3Zp8$b`MG%FvSWeL)Z z8KpTh{NZK}5{Yov#IdGujenyo0HgdmGLl;tKGNrUp19@;3P7=^GAJp6_QFY=LE98M! ztJUugf6#B#r=X7T@Oc^v2s(zbUPYs0(slQSXt&DXDJyyMP%1g<+Xjs^m699lN~6&x z9|wk`*iDD&?)<2X!?DaRYcveSL;qUknD0$7oTTUJ&QhP0Q}{9G>sGv3RZa7AiAdW=#v3Zv2!B-~THnRZ4Amw>4fhhCgY31#$U%PJT`G`{K2Z8Yop9JV7sYl~ zU!9AleRG2?iXEhN!5!k^QMK8Ref=;EX8o!MX6I|hocj$ljqz_Lmo{pYX&b7&66whgq|_l2#4XG2H6O$jl@Q1 zvp1={J?e;hSvw<9t?l(ukX z2W{0#qieO&7@6m8bVKQ{(88fBopPI6EH68=t}DHv8v8jhT$Ux7vaF~(dgehaeB>gn zujxLpP`NPaj{2FD?=5udI`UO5wWZrGTW7kbMCr9RN|M60iR;2JRctP`*pB}WA*93~%XRA_Rj8Wqa=Th79v zs#j7=Wd~a=+!;PQi8v8AmZE;RV^6fE#L=PW)Q>b#Mz?+xg0of`d(rlst8fsQQo=#$ z2x?V(M0wozE3Tx&YI526p!g8gucO7u7{@!ipt#3!7es4%FKSwc`t&MWv?uir%Uu?w z#`UPE$BC#^ojf-lt%l^XGi~?rXr8ld=2?T$wa(yCIvj(?3sK@(Ag;q&JH!;tF;ta( zYr9*b)Zc+RXX)jdXpo20n=nn3PSlr?TEA`o_X)-n&{mU&+9$4u)htBE(71Ev9tR@ zcKo%T^Mzjvc8;=Vykd8qKbayT*TmrLyyc5}8}fssi8J?c)nP6r;yDjr%fKryR)&ba zcUj5KqF-yeRQiW8&$%gzI58>L{n(F{kVB-GXb1zHvwSX)TgXhkmnkl-NVCgm=?=ZS z1~K;TIAlA@C&4I563;1(AjY0i&vSoY8p$)WUJGZ&T?)|>S;o$+SKm3&&%(Pl#xAHI zb58e*k%&IHYvBz)3lYcn^z6xgj^`lQ314S8clhaq$M*6Xxf6X3bSYzRt)Jyo`8gnr z7+X<4%YDd4V9F)NURRIW#=kHlr?O*jtACKh@<*S9ZYE#shAYW4F{x!NSTrn}vQ?koP#qC?nK) zSNnP2hR};r@bfjSxaO^O)LSgxVo8s4VWY^4Ys{HKd+rSdjD$g%b9cY z2wDFrrsOj*Jvp-)8(L-xF)_olFN3yemdFCQ*gZD_cO0Ryacb_RJ21lUm!5{=*C@FM z_>CaH9M7H`$v?44vU^WBCr}0TgO|1A7x^%otW3yelWsgVqQyk zNd)dVTgwEQyv0)Tq&WoR%k<$G6UZ|^ez4EeA*#@5(w8ltKYV8W72U`2)KwqfWZSr9D?##ZWMaWLVUwUDMBnw7;BPw}$7g@9?NmOWB*k>T7@~{}B}p!B+c7nWdXFVFgrh-;tbLp$ zmS1WGcuaJ(hT#>E=}1ku0#YI(o7E&7xdM{zY_C#)>t3YzezB4Q!G@Ta#H9~;-Ig3S zOMsJ>(ljunRLyI02#&r}$}}zJeFu^a0P5f9b#SH*R;-|Ab!mM;{|G`}T8|XDiXaVf zi(+q7E;t%P|CQAdbu{+Xv5f^a`CHThu6t33xHF=TT&N>w%7cCnXoQ)VTuqR=X%FE8 z^ILV8Z+>~2^Y~?o0Zd;^Y=>ivjmm2f@-F(JN7W$IUG$NF@;#*!z4GmceA6t_oc2(8 zXem9lnDYnJ9w4OZudl88{&iLFQO&!k(4KsW;;S1A7-C|e?vz>o)9QvadLfPQspfuX zrF{pAJ`1sJU-;C?_r?o-yX6ov`94o|YV%*@j>cGm^{~meYwo5fb>-fuFFjp|UKlqgKdQNJMyXfHWfzWC zGKi$#2hmd$>Y@gO@@78 z>QY=~%z$z-j7IOqey}vf?*~!aeyt56%UmI*%#Rn8)o6Okg1sm@5BqW6`OXtl`s!}~ zC~?2NEjR7No`v(#EK^E!cW9KlbZ^ve{fdCOJLFiTyQ8Dji$M+H8FR=AM!n^p>s44> zh3T~Z6(+-S*-nyOjZAXD*>Sj{DgQ<>$(i$pDOXC$aY8Al@$G5>s=N(=vU!?Vf*Emn zdjJP@Q(s{(@9e+Ai)yVmu19nmj;qmEc?a1A_r3zS#83s+*PIr}7#K`>3Y_O3k-C<* zB$GO(^7BZwSX16Wa}J2+Pe=Y(REV~F&HwbFezh8E4h0X(&qDsXm5}8}UC6!PDhE-X zqq(Kg{EcOu*-2#Y9uTPfw`^bKn2y$j08#x7S_ze)wad@f+?LTATp(G7OXVTUnP;nM zO8E_7S@&a|*Inb6h*w*B4=|RMU@Qq6&?;LGv&B7_ij?OXPLF@80T1mg%9|UW{S|^_ zs-!CrSB&tS)N>Tf=tsL=Z{X&k2ay0?T^(I0@DZ$$+%@1djpn&Q&u|Z_oo9IMJZ=X+ zkIQndlU6RJj*e0npc5Bk$@^NW-+g_&V8)RHSt@9b=GUjUZT*cQQTuAYc1LWEXqM??d@{%b@tHnHS0KEfrs=DtMh%!y2Esa zma2+_T9hv|+dDt{!4O7P6^DM{2SXAe<4|Xep9!OeC|`z5x*t-p56LeseeGwG2tRn$ zx5Fh%S);W{^DOZ*J}a0HWuCL3mO9I@4Z7>%R_0l6yLU$OJZHmv z^q(PuTnJ@T1l9k&(h#3vXeb}xV8Va|DGB>>K+(Jp4vFQ0Vw~eX>T|_lE6R^|kWc?C z2&#MWUp$#ssqF)Hiz&R&A1-B|o|--wc}0a+cTl@Af( zb=tsZj{8BBdb<-BIY%`_UtsELM=cUYUG8~AMeTeI>j=T&mKh(8E{crBmMN~l-VZ~hTs16d!XM#*t$ag}b@=nYJd1j=1q3b*! zd1qX{$hG2ws%kkQxjZFpH(IUoGc3^?^WJitJkznDuBxT%`aV%Jj4$^_9%(X%KE2bFVcD_ zcf?&t?t;VXM}XaU0*By`=b>wGw*-J0sh)G|5~V@=M8`C}nebKsvkc_d zw$QsIEdo#tKqZX^r!7osr>EJQ{G8B`xOPJ`_o)ahkBG(3tX&6OHt@y;I70^(5VNz$ zY0(mcum`AtmT(?GuWT|`6Jy}@rcc%!YKW#Om2)u;Lj1Y5M9yV+4>|zvSf^i(z-@L6 zx3l#GFay99j~b#K6`9W|_bImDApUxRRrw3m`6J47?*>r?)L8~~<`TF9>O2`rC;~7e zBh&fVuQM7|T>FvM!F?-&kV}N_DPgGT6-cAYcK6BT6-e?-rA$H@#{dcv%RHiY*lVN4Q;EVsvB6LWoX;e(YD(N zTxfeXNFw`=9$=4h^Xl*Dfb{b=qh;tYPw1>lm2p7aleVS=Q6fu-x-$JL^EE> z_6)Zpe5`6`RIcoYFAlLimunttItl_zzaQ<%8c!e))OZ?!pvF}IqBWL{wQuLJ3glsp zHv^D0b`q@kKUizDV>pHSHfYDDwyrd>M)T-yDcxWNSV%XB8geQt`{p23L%nj(BWf6$z5(AXfsL|fw?g9d zjdD8lG6s{xab!EbJLKHxQ%YC4Q%jFeu2N2+C9=x6U6z6yYv}>Z$~$&z$`{6UZ$9#_ zpiIfS8Z@>5n9*{-2aTOnNzfDA`=Z*)1@u?772Az|Py_}uTDDHw1Q|!**?Pvr6d>ui z#W=zYkRpqmcI85iCg0Q^O(wqVk0$MPhkBwirHVS}-hSvzY5INDG-l<}v*1LQLXv4L zx*N2`F`HWJv z9=3AI@@OmP0s5=0jGZdi{U+3i-Bs6eF79oq5xW<6UU37DtV=jZ-+ngR02L}mq0>ur zPd3OX0zrdJ01$1EdbJybh{R#)Z*LISyD&0HmmuECsXs?ogY;n5bR}d;9Hig6##Dp! zFx_LVr?HO1^;B8=Dgr_6s|f_P-v%IB`~5J-zkiUfQ+v2Rt`#K?(r2B6wxzL(`%$4$ zXj>X>7Jvn3CKgE9S5MskxydMUv}hfX0$y=u|5Ae&QL?s(QHqCTt>F% z$Ep_^mB$xaYLGro_gK@J5MX*4+LJY2Mj)thHG!bUTL46B{3qRXC&8mBV?>tt6=-z~vbjbW54<%UmD^@X>f3W7P@bhDU6LU(m40pSqpNQ^#_+_+uuP?_f z>Hy`8)xxZQJTo7vK4x3A8qY^!A$KYsn%s}DfSiuh`U%~D4%&@M$3)c~BQ< zR8g_0v7=M2+Gj`(*y4Z~JDk_tm zH!fkn)5UQ}D}7kYh$^%Xb@5Q zQo4xm0Aec;ET#0`Y`X^}-4nu|)9T3@IFvjfP?8I0e7P=C@!qX5nXJNWa4Ha)Kv2h} z?>3B|@58c`xzLKU0JSLuMR)Xu(#LU&-;o#L1ZOn>T~BsP0jxwS5=CiGGu1f(h;LWw z0!w3}w3nHjbT$zABrh@3+$qcpRl(Lp>A@xp#{CTZI{*b=CQ1!_ruQx&s=;y(5ie@V z?ju0F41~;-p{FLT1)_v3o9k)rSgZx_3M6Q$H*?1W(cuAISj^u+&vKfgjc){kZC;wM z=Q#g_sse;m)d=V^M92@GI31Abo*+|Ky{YpVG6jh6V@)BV5!T01nU^8iCghTp*{n5n z-vQ!0s6!&Y)S3$Sdth!reWk|NXziUMlvDwP6mPB8&G`W(1&FXELxdF1WiYZ3nPfYy zg_8aN+bsdxCpDUlX!9iyeSAM95`6(W(c|L4KW!^fDYeYt{?b zH@)zfE~2H0<}%e`sX-d4r36GINDv@uB-jCx1PKC!k^rKp53Uw=!V@=|$=8BWT?{N$ zx~NPAvCymGtJKd%JQ)VGPQaaU5l;A@KZsHE@^Lyag^;+-JvV!e4VnR(wTaybO%Jpt{S+55kMrk zgS zn<4fnray{rMNI?n7Sh?arSIZ-pC z;uqwR-s)#umh~=_5h5NonmBJl8395n!y8?LP|Cn32cy*)jFWy{S%dDV!BA)c+k3+r zH0)!D`&onGrc;PPvOWrzUhf<;)A<60hX@w_Aqo!=vhYk49w7Xd7yvHQ*b*0*nZj7Q z+7zd;OT3{O8{ag(-L|9(he5?HK(r@|4%Pv2Mi!Mo$Y%4Si+cjtk1iesEES39 zLYPIk;Ne}i!FzB97vam{$*k9Hnz;y@k)C40he(K2(p>(qA=;yG6LaXnFAQJqHoUA^hEba5woeBfhRV+X+)+V>5n?EfQX`~823seB9(vi5F3X1WX|w-fLi`3ZG&>+(3ulF0Bh=fMJ7KnsK&u0n2z_KzRSB>5i^4*G3q@RBU zkt+TCi$IKHm0mTKpC=;0&xeS>&j*Om&j*NzpD&>tfu9$cZ6^5nuTX}phxGGC#EF=5 z>f?$h8vaSOT)uJBa8sl*Wotq&G(N6x;4)s|D-z-Xvs2s_xpZp>)#eoK!>`9J@g;|t zS3s2zDGWba7dJBhI;12-9gpCNS<6OeWsO`(I9BYXEaHljaEn-nqKNg#}x?v;QOW@)zq5$)NlLRj_e01kV0h)_M- zJqVMqjmX5fy7U0-;~oYCZxk)J7YoL3K%KHcq7O8 z8RKM#;5fNsQVl{{av%7_fI?Za+inRipSjKNG1nO_oL0DFpcfF5?e$>W;WBIx4G?78 z^r9MsWP1+S1{6NqF5vPeGRY~?VuVu+$9@F@t6ie>E+binWJDx{Wc6;>#R;ScLNX!} zx@w3Bx@v$3yJ~=lbk${4YtU8u2P}h-tP>D5T~*keKM#On+fa}n)8zEI6tMJy{`8r! z)DWl7UIlV6(l2d^&zYq{qjw`&R&0RL$hi}#_XYF=p-~eW4H4AnuV| zMpuGM_j$fXM;qDR(?D!vp=CyzM?WWe0(jGpW%tbY4LFEpLqwps01+xKKtvRmMV5i$ zdM~Ku+%nQKC!VImA+XOlmsG%I(Q?xeT9#G5#&(c(_h1V2CFC)OB z(=HOC8h|YNq|sPV1Q02@HQ01!N$HrEvgm$5aJf(x?KOlU??jH$Ca4p&>|)*-YWcd_ zS`HC`mIFknlu8!@*eeXp41D8OfigHFdgR-624PD;yz0u5dWVBGc1Brde7`r!O)Eh;S_>M5wit zqfl(aJN#(sHt3Q8NFER}0NI1>izkBOL?EP35Jn^SQnbctK*)}yqaR!higF-iPcw|1 z_}Nhe;tls&WSId9X&WZKDsl}dZV8xLM!s7CiupiDby!9#8KR7$K2nXwGKzZ|snWOm zValce_QRAn0ZV-$jPe*0O<-V^0uu}np$P_vhzYKun1KnN9k2{M__n$214m(E!bS0fGqLI#bW`zr-RNcn=9!kIuM1dUV4FbEoN4#;a(3M!bs18bdJ zDOh`FEv0V*VjNvUFf0*~p!5(CC_O-gN)HebrLSP2fzlf+snzfQ2&7Oe1#T6TemRI% zVPGl60=qQq4P7-(;_gISI|guqQH$OnzD!G&Mtwd~6O1}U1V)`p^1!Hz z2n4;SRzYt9t}$xPU+Pt=>-$Sj!*&8rTAKhNoq*3GFM$0H*e!tBFWe!h_XPo_A68fE zUw98LWI}TUGfDPQS&eIukWh^f5maMDv>M|h)p!G0qXFLsfWvA;!`6TI+580edlYhQ z;}T1&mv%1}_+hGn=$FKGaWN;}eRLQ5!bJ|!rE2=(LmkOLv;sT-@6hlR2gMSW9R@SRt>Ws3_rkNL{h5&$gy%2nSF zzeA`Gc`MG=jORyVeSy!@G~=l8wya0R9L?AlO%(rncU#z)^HfZxvzv_nrr3nI&(wD9 z@$kB5!ER4HiC1|YzoD*h^6`5}a2#yF;L3VKU;?vS+Ze|K8tJ_e*q8^bwB;UC4QE=c z?;cCsaZ3s<*TzDg2$D2>uLfs+9F~qH%CPhfD7_U<+28b&Dt#MEXH+bIjGw`oE;A5e z#buWGlwurgx{s@GT?9$5Y!c#j%(k==>r$9O8j?|t&`KK%BMSiiSU`KlHHKJQABl$= zEs+#mia&C^DXxYr+6cX{4KDiVfpqTA2(pg3-WGEppLU^bA6ScRx5k#J?trw(wnOD{ zmKNlz|DL*JOS{x|7eGFyvq7}W>}(;aqXHiO08A1H?Q+|_D@uI@sO>>0H_E$vl`T>b zj%rui_Q+Z?&4so-rp>UuGNhr_p-eBp4D7ROF}uDPn_`$@mTg~xGzLvUC9b^17TXJu zcB`HA(eXlDj<(Srvo&Wr2pNh8gct9zL_;!}XUCpLHE%;Y4M1C9r@N1!LLuUDR7f}v zAiZfM|8av2@f)VGT9wNGWRQQMpFc#%{Pt#~(`^OiFU0KZ$)q$_agm;-y! z?uIsgK-QKKX?`pd;!{%IZ@bhv)9F;T6)1}mxKF4hK<=hdRV=tfQ4(HzukY_T*Y=_q=F{6VQ~}PCMxzWro;A-?R%Ra1{t4O(^Iu2s+g@nj;yZ@)9e4Cd-=xV4h1Pd3D9 zSc|i|8p%k4azc@hXl09A;bASju2#b&{U}T%QM9!qDE`xPfPG_8PD+}G;`TBvvTWKsABM8ed_f zffO+pQmYm){&B7)K88rf0tfLH4#(ypk1+_q(iqEWJL25|g8buoiH z04RN%1JTi@Ktoxnn%OJK5;xu?pViKH;~{){P-a+<3^;CwaoW6Sh9UUSv>o0%pJR!m zJK~v!*#y2pZkRV8ybb4=@AE`6M250sneQfB;&x)Pwg1j%^bOTZb|b!1R|xYgig`TV z{;b(yi+ZPMX76mgUw&IXKfB%(8wWYWgMJEph;o}xF3?2Vxvt1*u9=Z%Brn8kHAQn> zFI)|dDz-U5Go9(0IO9e<7i(s>LoAVelYI7@yU7KX_#HZLa{<&d9D|v8HKwWGyyl2D ztu(XhWz2NmSI-^cS1;ctpHa-m`S{_91f91unE1q=Fq=D~Ek3Cu^skXKyrh#Qnhj29^T3-rd(JNgNkr~MF1G$2nhNC2X&ean9TOKdM-X+>}WQ9#IB zs?2tkxCj~z;yt68Lx0!AU_L(uB~L?r%^jbaH5l%-G>4X3AqICt!b$5zST!*RYK@#psK_<|QWr-85I-Yjn3gLWBA38nS~J-Y;{ZVMHXCB9dX|k)h3Bvl zwg6xwB(V`vc7+X~6q^r3y;B=GRO|#ivs9_r6#zoT?gT)^I#g`dF94v_Br3HCK&a4B z1fb9)Ds-j-d}XdsnS5n#Ayk01bMh0vM)>6d2>BHg2>4A>fX}Z&Wg3j^pm`93Z#6L^ zv_?r60oVe-dk*`clTJi{wUbFlYT2B z-PK5EVdzsLR@}@T9f9Kq7PzeuHwNkPF= zfPr`&L-B~9ctNqOQmjoqDN>OVDNa#?A|Y;A6)9p@v{uq3&EWw+Z5@Ma_xVo^@86$f ziq~I-^WeS6Lf-&VeR)ItypA7Zb4ydqxxo`Hes(pZ1uiO`r8%O-;Ypf)SWD2{g^p@` za}c)a5j{FdGfu`g+4^I?Ac2Q5W*57D%GsSwu@Z4SQ;_TOt1YqSdY|*?i?IjtbL0YN zV_HXD%>5L=@|dPi!^B1v^DMG8{tW2HV$8q(TvMEPou7Z%AVZ9L1!>ce|CLRe7%@^Cf$>-r$@xCn9XO_L0UarJYCDEh`0^>MD+D8aWCoqzhk`f4HmG1!qQpgtLX!R&aJ zF3x@%*B<<;nVnD2MDiy2EcEhRq>gTFh?yIK8IDj7Th)T++$-R>6&?pj;2+GV@!`0! zuYqz2O;AQteGv;A<;R<%4`Qp9YuPA5Ka0YaHKr*|`3e_z*F>NTDpwR>dPaJ59v(V9`peIcf;^SRDaP57z=*Y$*gD3HVVL3jtDV3N29P%upriYLR zdV@L4g{jE}31iB1Q#{xc;m3Otx=GbAA!9W&ZDN+9+13z-`8uK=VP7c-gW@0L6!hS^We?P148kh z3&ZMCu8Hmx>R|xU6wGK5%9;5eYvPNa@git7K2ST{7T@zZS=$$0mB_i7A~OkwjNC zsJSlg$_GFlrQ!>Tr9A-{Ncr*~nt1FhFxZZil=0Y80iT)F=symu!17WvvK|Q5C5ue4 zwFiI=06vdvBKEp3!COb*U>F>ZlsZAsk**umY623vY`jAOfk%%o8!JI*r9r$4W#mF{}f=a}GisKF1RA5gLD4jc&<2X}RibX;={4$Fp2a z;fh1>axV2iO;llCotE#ef-TTP!3&7AE_p5ruYu2P<0AS9Vg0gt@frS1kM!|&x%f>! zxj80|cy*H21tI%BMEE=KLLWpuHh17~F*!_|0N+*ftk&wxPtWqzGXtaaN{DNERX*k` zE&6QiMyNL$v$C|-aIClAf_Wq+NomOd-f3)$OE3{4AoLZj(3z(mW62fvv@!4r2OV#T zLtxQqhakGppM`@rs>his9oric0CYb&1Ena&00%u9GvkJ%G%ba#Fc#RLk+x>xnb)ON zU{2d`vQ{4#dEt&^0;9FK-2pyj1Ax@6&60k>^ENyi$Kq>=@fP4nWva$5c=O{k`CdjR3%vIIpC&B85W~-kEwlHWZndmrG0D**G#d-0x8m zu^L(s&OAJiC%ctarrjJFrUJ-m(ZIPHtSiX6r%}T?m7L~+HGE9iH@*3K^Y}rL&gwl& z*1~%de^@@cyU2dl!pq>F$7o{Mb+Xc0f_jAfe1tLdWPH=8J*el|FpH1ifu!EB@)hcB zV6@2dBy6$44a~?wL6)d8!*(K?7 z02=@}-LbOjFmT_-q@iX*2N#-(+&=)&Mp9uT#Q>z_-d(<)(I(19UWC5Jkv6cANdW%3 zjo_|dF_Y|QBb`yoG5~>%RFieoMyQhgwh$n(>_ue|O)(8Y> zTpYl&k2X8S8b%O}o-tj|iXznEdErq^9ofg@^@*GhNdv?APc`dlGsIBo^EC&r z9YqlY$i7|cnlu<1AE%^2%k%;3X-rzBwQ&s0vFr{y~EpN-@E^L_LFs#%zx##xC3_NP(tpAOaSJ5 zjV+m!qgm~g1hOa~)Ig<;GsJ6HqsqRT@ym(Oi}5Z3Qi)nalnhqJV(sZxQq3Z&3raG- zS|r3No8gwWYi9XIORVUR=UqtU^}NP=_v64aqW!H1E4!#?f*;VEWaX=!2yvFp71=ssXKdpwBpdeOrZq>lPVr zqJJ4bV|l}u5sG+~#oDhMs)DOMpe$%lZ-U-yobj_MMjVbEq~}Tf@{2vPT9bpK-zzXh zzZX&THa9lcuhS3~z0K_#d%#B^LJ-N-p69H_!;0NPG@hhqhA({Rm!mIyBpi9+L)d@e zgD0Uk?}Tb!zrYfMuuh%4NHY(>75mFE%TLD2!akmrKQRYfjZM*gAnkfhPFRMa#ia(n z!rFjjx5*vSQt2xfY01xf?kQ*iDs(N%PF~z7wlxAf7wPT2mwg1rIN>~E!^gVE`;Bmz z%;VV;pwJDdcg7d>oO6-39nVQ^;jvGnU%+6P@kNuQWAL1X=M-L*3YARt1)6ax#Ba+S#9m0aWT z9LhCSCMdZo@LXFidUq+8S$&c&s;JgY+TZa^V{C#S`8t3mXskcS5IvxmMn_mM*Od^& z_zB-1T>(REv!UY`UpEBS_~tyQF^ARK?x(}AyXVw0ZF%*ntoC@5E$za zdSTZ?qfFcaW!%tBSI}CHgR`+1EU%(64!H|o_I$z*8*FiKzYY5Qr-R zIxjdkzgQ>4ETT_9S5d2c%B?b}G?v_Dif3|h7mo#Z%k;bQ@pJUA*o?-zQ}wRs6UJ?g zu_gx{Sw*PR?}eIZ4er(f0FKQz#o0Chcx#;xM)qz$xjX$gbLpgR@bgGbOza5C{+e=` zH=(q^@Z}x?Be#Y6)H3!MNKsjb^auN^tGBG z%{+3JDK>0$g;jy#Pk}`Gb6r4kSq1tMNv43cd>t&u9P@%jma5HnnwfWuUl|Ns@_w$n zA-yc?o+5Rhy!Ea90E#Vv`?bFF?5FTNj?Yt4Z5&(>Q~7*bj@=tVRpGhq7SA~V_-Z`6 zXWEVI?O0>kCKEc?Pos+nyfsbx+DoR#&Bb$@d@o*#%=BcaJYf0?yl1!&8H+$*El!hB z^eATRm?kq$!t=f&=nAI!uk=^&d2bQ4`#S2uB2lui?o4)PLq~+!3f85m9!AR$mcgWO zuYemQ3EiHxu9J6R1WxG>*J$4c%mx%`t!w7Z^i$Csc)_AI6YirvCYAX&H1zI{z%sv! zbrV?v&D46jv-<;7z!C|!ZQIPH{sI^}47Us*yi3p{9iY;q`-)!(14HY@2Hv^|ti<}# z$Dlh4>!k+Xdl6Vs^hAeXv794Xucf-V5xDgvE1n*KTh+%JnN96(qaxl;wyD`&e7-a_ ziCRs;3x1_hdl>4Q2he)AnKYncJO>6e3eTYdO^^x7fTrO&FrX?tM-2#NhXy3!u`rO4D=vmOmm;dUshfk%J&W3 zTYQ+d%HW_Yl+APrBRF^fG6ZlK9N0%8dlpKub|oe4LJ9eJc3(5tuzG*|%Gl*`XbOGL zsO*N17d{GYTN#>jBT`G4GZW|Si*gn7bmU9z;pTY#nkz(SA`0DR&H|8+19|F!ZbN4? zeB>koyS2>t)4pKTQNvd-`xDOPu&cMyrRuBc z*8Tp1Vm|a4xZ4*C@VpMrxP<&xX$_o50ZbsULQ74WfRZW*EW(A@RmjICgexSXiPsJ` z5+Ic63g`Z8I63B64c%>pFgpP>>{H)fh3DLQc>cV;%|*)+J}*s?)6{Wz4yLJ-@GP0t zS+kVcW-{Bd6t_b}7-aRh+?gOto$T&*NI(*rWW)Pf#Gj9tq-uGnZtZ)9I18@GS_0Ko zAh>@7Z?r7DVU=sK95UoEFb`v`^Bn@)Wst|(qQzs>8@YF*c9v>!hw7?kDpZw3Rc#Au zCejYC&uCTUCCa4Y$lQN;T|O!g5R8!4PHURZ31)ocyCT{ldu zuRlZJEx&1Q44URas4;du+K2p41J?Q)r{}5TnXKoh*nY`+E+Y`O6M>+ewg9Nn?M{`1 zsyl4-loU{Yj@}S7T5HM|H2`$Q8pe4f4;U8%s9`)xB~hmVuXfBDH2`!b$t&!87=$Fh zuL~sm18SDEfgU{}wMs*v8XXG59gr7ps)MRsUH9 zpr$D{t0a`+-5fPL@DawVCuyPu4n$hdXlmt|H)~2KuoJH%r$BBiriV?~pXJB(oUkv! zW@^k~XHLU zTR7BE9xIWF3&#U*1GikGp_DYK1|>uufEo=It0Zcur_WtlOSaz3>li`E;+!YYcSbQs zQ$5rE0cA`D5DY}i`0Niv8~E%GMBDHj3`D!|EDNtQlE{H5rGXrXqR7y6^h4W4?8pEMPG}k-D{(+b^K;Q+h7u)WKzockU9rN4){=h~= zn~S~pyZFl-$@rW1RTKADKLdeF6_kdcrN9h(RL$bDpC{Q9G-p z-o(BN8l6BD^r;^^49}$R0IG)F{Fjo`n3%4`!;zXDIXY4k-n*iZkn|b~t72iT^jzs-wFbsOztJUJ9s zl!4k>j$H#Q8`+{74$is`!1s_`PLr<&@bnKtoQKk^N&q*V;!ldXU+i4mS0{O%#FYbv z9meQW{W7OO7`+tU!#H)Pp{Txs80#^2mz@7FlsCE=T@KzztK5h;U$PpHV;5kFYLSDX zO6v)uxtHy0PTi$y;+A`wYn=-FX^^(oqf{gsPd;mBFsJknoB z0jTM(6I2rVEB-kYX&Nz4;sQ>VUPS;UJ1lt>0G2Ap>CGyorbMhO*Oa)OslkvcT0~3C z0;GH>GQ_s_Ry9gv?&pmR@9Gv2#4PXAH`!CjA>mb1B6ZmIWzdl!5{mgEo|8CsPAS+?M;4B=(M9U6zz~ zqTVVNhv;NSgcSdiy5ffdOVfB0H(CX%c9Ba89Fl-Pg0=`rSf@mie@3buwnj)IF}O%4 zEU1RWJV6OOp9Q^Vq$Yg=HRhtqR;rN`_6$TiM6?Y%f<#0+0uc!v!KbJ(%Y=?l#1aCt z908!FBaBx`sw0F|kcwy!sY0kL@3v%B1&PTpB8Dn$`Ta;HiIBD&^!Z+_*#|~?*yrhJ z(a~!9{9mXlmUCqf3|_en*%q^KF5*Qx>|1@I}Vfi0O4M5d)_VR zHAJ8dX1hcj86s%aWMA0SxazJ z8+jdyp-hT$;xb&D@HW}uufYDU*y+B3 z$k|4Po|AMx?4bf>NaJ|YHx6V|#^IgkdlpMuK0dCC zhKOcw-}>(u$xK#xpGLBbsezGH1E?{QEh=gMjbx{vK^jR)W`uDbfd4y2QcThJ(?~vv z*n~6^?zRY=lQNR4Y8%N%X#PIz|%v3q~S8@zfOq2!tR}bE6ZACicV8t$ zsF7FL-$AWakfQwwIY}=e!zw)Uurl-f=2u9{zZMnxD2jNNL-RTFakJi|SaQP9Y@CYw zdL9`V8K-{-7pb_jb_;O^4BmQCkHs;6pq!Xz3hQNbf3C*{2-UKIib%SZl+1>(3^#029^ut@^3hi4T4(f z0k)Goa4n)?)U{**;&39=5^z4j{a*quQMuLlGcJMgq>ynaWIGBOjecajj6gPwyrs$@ zXc&1DA>GwpBJcf(gyj2xnUo|N1szE_{&P`KxCAWwb#w`s2)SZcGewXg2U;$)n=l3m zO-oL_q9ip2+9ui)zJ=XnM-Y4I2|ww{VL?*2(#(UNkU>5C5;4$l2zGujF=eOTe%3Rc zDgf00q+9vPcPp?MNxzzMZ-lj^U2S z46%4O3_k8J1+7EpmjQgvFG76AVb|{pTPWrJcZHoK54wVz73~VSfFfO?h~WNrg%K*Z zAFn4co*FX#pY943l;r=9u2Ae-KJCzASLhZ&_`|(Fd`~3FcY1p4wi0Ek67jW>@&DL+ z?>H-p?0vYp`}XbI_ujcoWD;S9oEgHvfC)r&ObCKH0ty&0V_L_sf*8OEW-u|UqF}^4 zX3Ur|V^|l(fUB;UQCEGRr@E?d^#m~Nvftn5^Ufc4`kXpdbqIuiN(Q-X&&@Ljk)N~O&00l1M54IPw$pEnt5BgQ#dw1f78=Q3kU*{wr zDiC4>YcWOqPnc(9L9Z^5BXCwTA|lTHy(0Ej%_c`bF6c=C7a0OR{uUO%aUzKn@L34h z&{ROVDrUB!M3`+zM5GNBMYati0ydfgu8at{_V)@{(^NpYUE)$hz>Zj!O|F7q0^7VJ zE%zT6tb{da!xBBCbB zTXHZ`4s$?|2>GsLG>o%?nb3Y7w}*@%(10&PIZvn~fGr|n+_B+#!i=Eyz%9%LkTtG` zAPL4Lw~90pG=n2K`k8AR>8=$v}NG8pBf}YHT^8^_*n?oxR z(V>;A$EsYtVk$k9xo;?p&*eO!gq-{rgQKRM5{1NtFept3_A|OHrB_cBakRID4$xd|imY1!`at9~ax>rk?^_G{Zf!zeQS`Q#= ztMh{-up4qCwTW^yI%ORLN2 zy*W)sa2ws0N5pU4mIuZ_*5*Azn(1avd02DUBP3%B$e5Yj3S%IV^vg)UxzjEzt`&NcEQN8C zZ>|oyyE;8WwxyYlH{SnAM5H6jelgN`?;ZB8aAB)0iyiHB3X7GZj>5$^t#>y`vQ0}Q z{#_=w+Zo)-JhcY5Syr?gl>Be+w2!i~V~gzTg*xdvcXCR@JhIrGTg;>Dk?lRfs7Lxc zvpJ%zyMnD%X*7N-tpyURfUw53K}xnp7QtYvg;i1(&G*`(BTD-# zF3Dw-RYJgw)?^#&Ed^Cf)hyQn$g(^&NaE1iYP2TZv@WaOENgzGtR>m9bcBY5MuuRm z?d)F89Oe+Q8|lp<0xt%lLj)1Od58$@S*iodYVMo@8~PlBm9(LDBLuERM4e|i;Wph~ z9EfpVHNk$mB3d?>{nXJXrrrkAfW&%)*y z?NKFyjyjCe&?AIaDK~7ql$$qLimYha21}6@ z-LXLu>3HroDrz1n$ch>_Scc7dzk<03Ux9Mt zmzxulmb99?$}+L+z$te~X-itqRP7UTyBI#92LPmGeS&0Fj~pYIsz;$Z0NGJ!Mv!C- zoO6jOjs*i}0|8xQBY@BgtqfAKHEv|!%*XoITIR{eoy^=WCb|OPz9qd?%tAB~ZWSwG zYU{%)Q?)>~0I~v24U)`Zbu=oAyeyTAz)+6dDps#D$OY>KX2HvJ!SIk9A6CQJml}Dq z-^uLB`u}r7Yd8e)t)R=TV&OW4oElK4dLWZ--rV&e5pu?HAi6u|Q@{;t&^#o`I;gB5pp{nxAZr(6 zgCx2Y-M3_YC?}LZWFRDwUf3iF#RxmGjJvmpWmo&8tpO1h8xD|Rv65t2Y(wj7l4M-0 zrF9wZpPo)}c8>+2<}3o*$u9s9+S#%oCEJY(*cG*{tzfEF*J=P+b*&GQf^OvPiU1?G zCy0-T&r}2< z_Z#jP>kRjKipnHyV}E2iP{k3z%S?&B@G^`Fh-mYpn@AWiPt4$*P&!?nm|-|&Y1-3c z*-tD&>z8V-pmdXC*;V0IqytG*?NeectYAb*_KIa!hr?QIAuW-<2M_7N#_A!T4>R0F;27g381IE$yH#s7S*^1;})$e z@m`jxEDne=f4+g}bWsxD-Q0}ud^+iSTczGQ(9I%`S0Y5a4=K#diI?5Q>*;?5-ZVnp z0hZ-a8rf?tb!X{{7O)CagsjD#I3pT>|Hnq+ zwtM;g^p;j^`g!X7uTl62dmI|4m`tITaM#bIG3qcftkKHD#R`ua7+{KC3C@Z+6x4E> z!V?~wpXwM~MD=}FTdc)Nd_^By_FHf=u@e?s;t?YL2@|nr!imJH+dAUNoUU`)|wCvw7V#&d-j|7L7RUVvp3yT<(g_d4>5AlwuC*h!;V~XO3KyN+pto2&UXH%~< z1D*!aY`h0PemXkHRF-ty$V8cvjAKLP0bc65ilAW#=WQL!NyQ9AX^q`8btqKDrXxk^ z9e8guU3mi{oG<)#sgDsDX^O}xz@(6;0OP-i_om{=#sTG0ar31>ev0SqGrP16G+@+N z%toZunF=H<70B`vjvA1@15kNDuhe%?3d<$jX|JU3?TUW31eJFBCDC4XwB-PJLUv16 z^sPdg?o8|WjLxJxAs6o02_MFP*1(2DC&f>hIVk>`C`w%d-IIjFW~YhC!o<0%ixE+I zz~Hcp5pJ=I$=fLtvDQv2LpJ;+x~q2Opj7$SqEuc*P%mNGuDThCh%_VJexwI~Dk|H7p5fM3vh{!>NmP5oxL6ET&WOff}j?)LD=el+@~b=MuD`1 z(@;$1?BU@>jD%Y=!dc)+8{q;z8%9WJ{!3c zJ0^BPeUzj#C7Dy1;A!?6Hcde)%rpi118T5EQ<$Vo;RBX>N6%DFWl$=8aNaxwkv~>s z5v7mXol|2}4pNlPvB#xG8i>4+&Y;xs%6G{!c%$cEK}uGMkT-f>3Z66~xX}|Ssd1|A z=K;vN2N{S`e8!QeFcJSONWHFF_aWpcz0~fQI9MST1Cf7DY1rHnHtyY2zN1ASwAyI? z^{q8O%7=5k6m630!Upc_6tCxKfoF^s;n_imz_MotjbI{13wgLw9RNM4n1SckN2F^| z$6QcU-qk)B`B;q6^|xgmdIWA{qG@9;QcdSgxb?aYL|v;`*IA=wUF(Co@5{nf@ialb|r_pk*b)8Mv{h53qV&g70<0!lIVcAk!Md|v$B5w_)2!tbp1Q9_oi6Leg7nLUF zH7NtfrEav0t<5qnE=^p~q>SRt;S%4JRD7DzDl+bq2_3Glb>+&}ZU7 zBjjjutr|^85sW5@y`T-!JR=L)CN(WyirIt4y`mRikl$?!GZ;{D;Js!(L*wcWxMXDBAR;!K3O;!N0FaVD%* zoYR-72$)mZ%IkY$4*l>1SFROQ4p3_aZMO=}3a=bx#g-lt9M4vXS-A+768g@L$)$v% zeJl|xxB-g{Sc53K$Fli9c4}pCxOq_{QV(2aizOY9y26qNjc<*n!JOS$w9^ijtg~oR zd@Z=E!2(aw)V9&1jxh!#+ar1!i$pmfEJ57Bw#o(TKwv=l2W)W$^G++1wm28hrn~I{ z%FrGgn5f-tBMVg*iLJzQ>vnjLYPK&?R?$8^Q#TlJII&raBEpG{=$~CdD8X}U2P#)F zO|2Nz^0`H`;VqVwnxVZko1utVLquRU@lQE2qKKmD`SA-d_|@at3_vQW2z_|rd?xAu zWC;MRh~;>0T@jwDcQu?u(P8C@Z_#k%0~RYPtJ|hVS7hPHq=y8N$pRZNGFc!Z;%|u1 z!%5u6($OlgRyj1!+qD8i5?SV8#qlXoWsFZ10K)O920%DIjRl|!Ote9P`FS{g`WZFG5rLKSOyY5aqT9B9lIsfVp+NTMR2UoPjyjhVt~h2tck-EIT4lPyZTcNI5;swBra1*yoxltWtB*{wMl!O zp|lx+(wYmLepC%5Y_-bWIwUGg1&nQeXuXJMAo^SiGcjLYrq_Vy$dWRP3YL@;*D1a) zX6ci%d=n<$x)Egqv~nk0qanx2R^@onlw(qd#N(=FmRvclZ+N*W;e6wAQ^Mxuri6pb zO-17Eql1S1JA(A0qskIJRkwuUV^39S>d=ZHop8ik5)tv1L`1wL5fN`mMCdKc;Z@c` zRJV7&^p*mLD7EBGd_9Ac?gicig~W$|%MxU8`&4*uRUl}>vm7Lj2T%(joY71rpl3Ao z0KyStK7eq$)gpmoisv>m;SYp>99MK>V5e*U% z(I62K4HBW*j1K~r>&WH6fXl?7jc}>`F$zhPDbLvpfV*YeRGxCKgr(f00L)K6 zgv9u($T*gXyAMlNa~g_gIc&)yW-(=td|AW-UBug}2(ZS)#8zr7+nw;l4&hivSdZ1q zkU1QyR}j!~w?{7^|#+k$2Il1*wlK0$B)4E4a`=L{?i#5ituQB4$BE z#4L!=W+4*WDDS%?)Kzq9_rzX`6*g2+qnCOQc&e4KoLk+D2aS*;Z5o|SBh*OSTebcO z7TVY*)xm(nz&LlX5g1niXw7erMVbzVr}Nneh8YcFppv%$&0?Bd?H{RZX*yClG^ch` zQc45@o;V;x2Tan6>^F+@mK7fA+;!55t6U5f=Xz3_&$j{lSgAsc=tp5{E27HDQsJ zxIL#|TTfW;B!asPV@O7-!6K@BF-3^0~%!Lja=K4#6D|SIH`%98^robc6fcExS zf|a-5vDKtZm%khncY+;fkN6(Iv3h6@w_kM=o(8md>u`l0m-d~hD2ivBONt{%&cpW} zcr(zRdl@kM9t13w8u6>7KMOi|{}D^{`67_MYLAHY3oB44Lucpp*D(V@E7%WOF|x2Z zkeUUyFUC?djic{w1Q}3No|J5qL4D>kmY9vp)u6mMbFP5G@w{a~X|~*rN8G zp!4Rq;;7BDx;PEQQWt|acf>CD$pmj}SRkv_xbE&<^SnK!}5{z!xBg@yYQbIt)U)+n^|1CHp-LZ3_>ghDSt@@UdN<@+ZYaAvDi z#_xcso+ij#h41{Hhed0Iv#al?@(hanp~Zeo!BCKJF7o{30x&WQ+IG%y@{?x+SO6f_ z1*ap=1i-S;gd%pBRqpjcM`{295)jc1|GeHP?@r*P30>@!_%%R0pmI5vc%!_n{33$Y5EDd?j#O*+* zk-pY)YH(xYcsvg}8MVBQ-j#mgQb*i=15$SfxAuH=Fz559V&V#-j-e~M4C@fi@n<=L z50yPFryb7h+oKPj2U`)mL4!+a(U@{0kMr#vXmFI)?+unlLr;&v!1Bz^o*1~NZKb4T$~Can1ZYv8th{J$U+iF$3^@mY+kz%`F_6C72lx{&vu&tM_!Jb zycc`Idn<-bC1#!rXF1{r=+wg%6t+4g#L zG4hs!q9cGw2C?4ngr86GlfHXP%u2vb;wiB9@GUV}Cjq4G2*=hLPC5A{($)^eWlx7G zV3&7Y@jkjXQ{3tB7M)?|+L@fO+7??5l!?h}(aII*ha^m13ZO;0MtD8TeqY$S8fgB?Cq1DzKWgt@c1~BMliE}^$Cm%Ah@L^k=hXz6AiFr-Z zoWU{iW{pfsj~O2mL#70x$zcg57Z&0?6&KgQW z*|*Z|hq$60Q+7eh_X{j>G^IWsHNAFrOmxHjsuK8c7gri`@?S{#p{FIzK18+qQbUVfc(nmM;B^E#~(H zsvi3aguMg$S$c~`Tf7SwlQ$)4{fB{$SSTL^FPV4W28(W$EV%JF9lzL-R|OZYQdb41 z>*{0ja^ON-6&wLXx)5_s-XdIxdxIl@uw$?*Y#_l82LXAfaC)9=i`f`4i|&*IZZD*! zhrMTs&B1mN?snV&(CHYQo`}9u6a(2DI2CI!fD-^jQqDLI`h|-q>cJX>{Zj@%`?58T zPshcQL7r%Pxo1THVdo&OOn>sWCBB)Q5N(G+%6GcqZf*^{lyJq$gH_7T4lX=)Pz=f9 z6JlcfVE`P6-{JF^xTrgTeoX*j|DD6Z{5OTT34O5b^5rkSL+=&Wf{O_7!arScIa6jLWex67{1W4GMK4*) ze%+DZr?0HSPx|Wdwy4BIC#v-6H(|e+YjhfH2YY|b_|}>q6Z04k)W*D_a5;3qRBw9w zShwKAjacUmSJ<>pEx-gRwE{JM8SbivKh>HHOr zc$UCU00xhD#A6s8Wy*C!;^KM&NU`@s8TJ8et-ayU=!$!-4cb|TZ7UEk+P6@?S1I2M zZ#m-K4-=x>4Zf8gbF(dGE%8LRc{x_PI1?A&?(K_i-zTi}l23&g@Fd7^zpuS&5OOc= zhTJbzBWigH=ogb@8bM(NelmD=_Ps=i%U||Hcf3oz09a?IFD%iPh-xX{heJX6G+1y3 zFLTA1slKTC5F^19TRi!5LR9T*S@s)YJ=eW~u=p3C50;W3CqE&w$KkkzAS}DJYfQX% zYeMv>hhv!ot9O2_aK%fv05bvA*(V`rmfN?T*S4_4Q>bC^HpHKUNkUM`fX}HY-lSPG$rh8DcNfcP z80Crv(w9V^e@i(=nJSE@<8k)8MF?IU-Uk73YtKbj3-Jl;x)0h`R9jJ7IExuW#^gy_Gy217Nkh>1KkHh>x=Ef%V^gjF8;uExD|3g_6$0lcItTIW|a`HZbj-`ey z9D60!1`$ox+{8#;*jM0%wEflq{7CuUZtr44sV}OfWqgB4W?I}P#OI&-V(7xS6~y~< z_Ok-aAh@v29RwPmA^A9rixJ}V02mfqIfoHdpl+2Z~KHTP5=*bJ%Q^fat&o7uozB6xP~$f2sCzf4JAZm*HET| zW``hCu!eFJ5NM0+8cN;n#v00Hsz|+t62fW?MZ?A#ihU|nmaaJ&5$LJl|5c1WlQy@- zj#S;*Fue&&9q|Swy8z?PJ#!qfnknPp6Te8t#e&lSSa5@1ZW$963-}fVL`rKN=rPO| zUo+1lv~=r0Dg03-hIr>)7-NJik`k$>b+Xn|<}Y)^8I*J>#6Ix)xJXda3WyyM?(G9? zQBATONV;->BhqI8*b%_OV^IL*IRtrn;WDWX)J_JaMR-eNp12*!J_cFq?EFTu)(iL} zDTz8u+(O|7f$N8{WV;=8@B)CJ@Nv&U;@G( zz&Xu!+r`Dy=aGI@%4!`@6QJ`R#`q+=0}8ukp(XC7PNrhSx6efs8TiVd&vV3qXzpRR zTK2!`52Y(?_qD>_N#_-ekai))t^!6!X9Fd@$CfA9VgmZRbF3TB1OKab!xGzHTnsk$ zQR$|{Zy~CY#8(Bx>q)#w5|`?d=L97?i^dF#1;p$;!gzpTQ}Qqu+cHo9f~FWd z%c}5(8Hj@Ct&Z5V0HL-938jghha1gzH4uf5#S-2K6HzAb-#Y=Q3CIKm39M`u_)`o- zm`PI<2AP(DW}?n?J}ziyyJ>`Mw>ZB?S}_!@e38}LD?vZF67*Cz5Cz^tNWB>d1WzJ% zF)pp~?tqCr4NN65{eW@0?QDr1sE#F;a~KvTISj>4v7F1_h{>@gHYuWIQ{$0mGw*MC zHd-!HubH=18~EWNN4ntHI5hQhCt7l}itPko>vv;fFF5De6-}&T?h``1O*wA{)dgDy zBUfy{C{?SRm|V5?+$y)J(=9oA#0H`^gDRrG*7VT|Ud?hB|I3mtHMRy3Y5J0tmiW0h zTK03yj1GXU*)e!K_g%aR_=pY8y`*O%9$f}c9cveu|5r%7oQajVi=F0AgtQ=S{u+@r z|2A0AjF`Vhgq9p4vgTijOcC?fh%i%#$eMq5ok^R&Mr6%@nQ8t9gFa&ZCjb#O|4V?8 z=3i;iYp1`sFfRIFpp5+rPw^xY{{^ge)o=V@i=_uaTTfbE4Z0W85owFqi&*|$i!p39 z5Ykz^WV!xScu9Y`Ew&=XDl5ldY#>q@e3?$angfciph&%#Fa2s6V02WGQht>%WsrU~ z^9*uq4h$+6sW$<53-R~^s>Ns{Vyu?VdwY;z3MFE1b6hC z+^FaftabA}us=3<4?Hs{z+S|+iNZdavmq{F*y{%3hrvKwjvg4?L;ZI?E-n}@$%=9<4XUAi4NQAzlNg9S(JbJ+%wSX!*@b`WYd>UP$d&7R*B>0gYHUb*3VC_ur9v zm1{_nWVAstxiJ<9begbj&8||5z3B7#czZ>0H$#5T!JOn~w)n0F?N%RjN9W9xE$;6N z#4lF*@p(dAhyIrG;1zxt=!gfI@J-}7J!x`WP^+o-?BBf(vcw^WdLlIm{kuDC$cYui z#JQc2{;1_l!JSXb_>2+NdGhSIAP=c2xCVV3UiguXv#sL0RI_TSufGK$IIJ&qvSstX z47x&*-hIp!gP1zg%EZtvY#!ax#p^MSK<}Xf6PN+?BJrsRd>+8+q}-nII4I<}`&|W+ z7FaTBS`SN0U1JT9KrSZCslTx^rk_056))F-4zAo}TgH#gTI|62L5uO)L3_XM_>pUJ zTxCdq@+vl2z;MzJavAwnuvJRtOAUTIx~{kc0Z;nA!qteP=8u4e?@uOw&cm0tcy?wd zi~ajx%*=`jQC1B3*9v@WvYm>6qgmqSG#?4CU6) zUFkHH$mKMETxN8kinXcL}2AeRQAE@5AYF{--8@cl|Q_r8>oD!`2{_W(?%mZ|dNpz>J+bX>jwz$R6B z&VNMZ#Y)2)Qn|22FE+>md{cu?lYYyB$=Z7WCmr`5Xcg%V<~$(8VM9SMAy_5<3&>O*Gs z$IRz+#0;zqZWJ>>#4h@cF=`O0-q5UmV=NJT+wGlF5#*7W!I&I*yDB}9Lza@2T1HL# zQ)*=jrYlb3jcafE$aAf-?_N{R6EC)9cYTCqF?2odJzGfYdee%(QH6~)6!R^d^r0^^ zX5m1Tdz&lGNyOJyiSVZ=#`X(Hd~b^`0q?~?wB4K+!R1qYU_&>~Vw)Ewd15X-gnqM! zEq+3yrsKB%^v*%448_towKcQ7;)IB@=^W#(19=e*{IBW-(V<3JTbztAj*0cQUx%h3 zOIx$76L7mMn>Iw8Y!~}%UX5TA`)pz&h9FC%nK3E&Z#1*)WRYg3#$ivgnFDY8f$rJ4 zx5q?h4sh4t{&_@RWE293^tE z>vz)Ts4H!AGtUmTSf*Fn{s}z;UBYGIZJS-@9cUt+u@R06doF&;mV6%*onRa3@0_4( ztp-+htqZUX{v^C9OaJI3Pek}vi5KT6&Ox3LnsO#kF`NG<`e z7C;xgK#xzS=N%2;A_op8N$*nv5QIhL^gLAnq}K^HWJohQ23fQj^5hDndDDK`8!^OCM2e#$zLdIAR#m za09UYvi21RA-4>tmfaLgS<}lMIoT?q9X-M|Nt+vZrP%jt;vcyG5;NHJQvq=miJx)u zybf?nR6u7?cJ^%WXg{VIg&l;9K8&rlZ@@~@s{%&Nv^52;n21d2e}GZGBbB0nEiZuwmBzF`=D`Nk1a70=K%5Y-R8f$6nIL=>M<5U9L8tVas);J$PXpKtM1X9#;Z%9g1I>(s$7C<{6Z8x_z~Wa>1XdUscq zcagAv1Tva>)C$$2?;*+Ft`~k5q2<#@?-z=|{5;N4O&)-ZYAU1rM^hPyftr7JJA z#7jh7iC1j>koj6NA|gzQxYEhb0>YR_A|R2kV;+t|;pYKV3O#@Lc>ocNZ_LjF zG?Ak}570!BI7voD8;+CUsb!pme~Hikg?u?tMe4@BG7zf8vkru&@>vB!^?cTElHpa3f&J31ImOJ}WOw(k zQ85S+1J^o!2D`>Wia~qT!i4wAgPTM-pwBOygzb$>095xaDx8K)%keySFoH9l+TP1bPi+YU+Upj_}?3+rWq=xj1dX0!=B8BmyUem<%n@Wwyt`;^>VEv+= z$&CEM7xhFS#L&UK9EmHbPk>}|k~|HPJz!MN0m0GK>Fia? z<<%cGLNBj=1%w*-@KMZ^FW-1*L^$ARgdT7RS0G0?x{6)V#Cmis0T7O^B#nd(PXiJ5 z9`s{=Rrq&B6ow5S0wIOh%PS!w3>*Hb%E7o2d{y{45R^<0H0kyGTVev(%5|B zBE{iqp*IkdYi5Hzkz{)hCv8cD%G1;P0acKKiUUQC7l+3t0?uA!a)8)bRU_>#6L0Hx zhk21gmf^)qyg?=-`^VvG(vkVWezW7^15RXWusJW1@@1nX-w|f^aWL!Y3^vowk-@rO z<~-~vZ52@4^WOO)c=?%m4F|``C5&{t@xh{C=I=ydx2j10fNw9?R-pcaxfO2$1S|XQ z7ArtKnY84RH{FPCuvJ@NsOh^G1{A!F%siF!lW&c|(hh)j+gP0o4+l^Op!}sRlVy0G zf#iT0Dm#g}@8?O*nB$ z-GoMDTV|*fY*u?hnFHbMX0^<&&|6_M2Ft*b?nP#rb48sdkuFGWphT{hK?mVw2Has%Y(VPvw zN!b-X`;aTtvJ9$1Q#^BgaNd39R#0%kT2i3nhZLW_gYU*L_sQG?3ZBf+jN+}o2MZXP zhe5%^337*lkC{dpAK)8;x&2YbQ(m$!RJVj0THzHZ2gCZ7Q$yonu&=@3RsoRKw*bI8 z0i=Eqv5ReNh6tLs9@w@D($N=;_=#0(!tnptFVp4toUSTlt0+t<3R- zIBA8yb6N^x;BXR*FS=koz93D$yGS4Q0rrL>=*w*9!;>umUMhzR1lkH;UG2(mE;6Sj z{CQgk3}G^lGqpI;SFstc2TA>1ePuybcFOQyUUCKm`c2mQLCRW7NT*U4juKb9$;Eg|GLe#%W1?j_Q`eXF(x6Xl5p}nHu_; z?)GF^sOU%hNal{j17d7@(M{I}tCg9(Q%P1*!t$r!BvMvZ^=B#*HWosI+Wvytv?QHj zDRQ7VIOUzE%n@`Vb3|$@e~CiSZ)9eq^1RCxLiVxeaHvCa9%7tY@--t>o!k}rnhJn( z!qgQi`hg4grpVLj*50K`6 z626h-=U$nHRB|wMw4A*B4I6kqQw=~b+Gj}nOs#4F!m0u6a+H|&2tL!92Bg&gy536v z7omq=$dQOFZ>y6Jnigy)%-o1#?6(Hv=Umj2UeneU`{NVFlE+-+<13K#fDeV-gkSP5 zzREBGA-{c)&3-J()q-4t{lpwuO3K{i!|4A#@P4ACo!c+@0BRorAbgcj$CU8J76JV# zVJ-muDxrbT|La!?(!y;a><8@J~ zl?Yb7tEw8t6L{!iRkcK@SO?NEXlYjWygF6)R|)@iv+l1^_c>2GH;g?<@uu(d4I^`K2F6AO5e!Qu!~NtF(A-)Y%4U9H@&yDPVi*kNkYuWG8h{c2oEvbj za21~A+~8}(V6_A|H@FSJR05nE%mPqP0MXf@;A=jgF*oQBT`$3N7@aK#unGH9Y7s1o z%FRGNMrVyJ&JEy7*?6nK9Ms__*@){1paGL?z{GF>XuQH>DiCfGFdB{>CDL#bVKkhC zjfNvL*@lDN4~O@YcK;SqbYsPzQTDjMpX6+=hSeT`#^S7QEP!xUHyuDYtD6Nt&*~Q7 zIh@rkBcNw>D+uUW-D(1AR=1wdYF3xKnbC4R0Bp*Z)3Z8SxjCyNoQFNmRrkg=PH{DzU|IwzK3l7rnZDET?AIHG8E5F;d<*`ZkcEb}lusf&wu9%C@naciV z{g!9p^g1^lWH{W4JU?0<6KAlX{i1k-K5$&=lTV6^8Tdw~497~OKRpN^SK|bjGJHw1 zfs~o+T+triyOn*?l&sa#)OX3%%N=nm#_h5pc;6ZU3MUG2F3a2sDJFoOq|j7)KnGjA zfbW#bdLzA60E(0!*2@nd2cB-rtxx4EEysA4o5DHAl#8rs9B{#1Q01?tUPM?!55Qo( z{Iw$gQ3K}I8}C>ZVUZx%ep5IXUat}BwB@gtCYRuOC7$KJsk6|PSs3Hba6Yz{se0d( z*baS0&&Nst=tV$glP^KdcZd>UzC)CYW%`IQX5rxcUzwY6UBH-|rC*=ziqYMnqoZs~ z&g<=M`k{q}e(8$TaG)=QRlL0)PKm&w2<5OOd!K3~*B=}gw-Iv{k{ulL)4n1AaG1tU z_==AZhy(A2gDZmOnTRbeEWLb&mFzYaBMkIZexy~9ycYVcC2+J|kh~PYRH~CNuCV`C z)DzGzuI2;yeg25b*7JPb8hV}|!iJlsL1f*uf3F%!7o=Hr(aFD#)z^X>BZC;-a=wAsNf#u zp5GR8i4i0|!747y1yBc|&pD-q$HM$(@VQTZIgd@8i|5|mG8ui{FwMUA!2I%sple{- zu!8c%cy8qL$gY`l@l0Jo$D%jS@)pT0#-gJlx%?C>FZni5YYALxZC1E~={s1W{}yfh z`|-?-jK2EgW`N{hfhb`jZU!ja8Esqzpzk{!i|2uR*=3nvCHe;Ui1}x# zvKZ&0qS5|DWgJ8|0wvpfL|kQUmg12; zRU+X&6Y^7UDz?}odQT`!;jAuM z0flq7u1;b3B?})i(0j#zy{{dvmxN_7Pw%~p|412`2NhqkjH!uenfsRip)#K~%iKR5 zEpvLuKUC&xs!Y25-UsDp-czu&zJv2KpPTTZnamFgM!SgKhof7kmZ>Hprt0$|zo$V_ zb%<4%nXIe;K1B?u;@%SeB|k<>PK6PcFR=O-#^D+2X{xyU=?B%sLqOFZR~$$?p3g)a z(JbwF2>@-!%kkX09bcl#l6Jhn+QL83uu^Hqmns7Z?f7$pLfP?gN`f!I5!fyAM=2RU zCW3Z6Kq-L;*sE3_2=A}h4ecJM;I4u*Et3pr&VoQGPlKEPqao^0Nr&QGNmI)ua3}0(z8R0pS1sD1RKf z_-YEoQT|{6>jAVGfbF$DlXT}$Wfjoa+J^AN#-s}lD;kgf}&;skVVO)xn@#B zB&pF%S{X@NYbFVt6Ob*i1W?F!RV1m_Oq!~bgqIo+NFYb~S1`)=K)0G`~v8XDkP%szpb`@Hv`fC2&+rxN9CSK z(f=hbS_igy97Y=0W^B=w#W8URa+Md@e)lm!aX2eXlo#6l{I;rzIL?)QZ*|67nSg?b zf{}Jd5trYGVUHb>2PPjvPc9*_9^0*M15gD(+H($~)>;DEo~Hu%efCT*VMeWl&8Stv zM$`(wW=5@L2u7)^kwBOIg#9-BxI-f%-)NG;^bBm?$c9IWz+`1pe&pems34mySr)U0 zc>hps0W%Y2wq4|PRTOlIWu^8&?=wXqvlQdvaIeI)*g`vBq&KGr?S=OK4wDnSF@RgO zpTtjkZ=6~9eJ4+}+Zq#^#Y|OV@KSJ z6}@&VEpKNm)KJxx;H=$CR@xtGD;%=xkK;_04o7VlidzWc54Y}lNC5mZBv@8NL~U? zOHgaO*D+Xdk7pHta06>CfN+LA6~O<*XlZ_&J~w+|3cN@TN6Xh!f;X)kx$$BFfg-D; z+<37JfL@|of#-0EZZ!eDM7N%RUZTr|bJ9z6J@~Aa=tkfS@CE84EG^Dz%GFYuor!EUo7wd?`1sz9D-=~ep3&yX486r&>wLa zYxjXwm|Vt=235BE2rl7fb~FIeB{Tr21t49*c({bA1hh-22e1hZ4HonuIGvAL+kLED z!V&YN8l2~2%|wu0E7)%1wgxmS|(_hFqMFI3H1Q} zM=n8+1#}4E7|%t(cAw!;pG`Q%qsrg{oBa^l=6a9fd?f9aj@${y!=N8`onrgFF^euo zVj+B2*Qs`iUyPu!4-g-t0Bf98>+fqIx?Pmxr(QA;-7mIMNdxY2k{{mwF7t z=MvCfrvZSr>R=>b|wr~jo4XuA7UzdC-7{`uKU=z z-l5o1@C*>014IS>*$>vJ5#UllG6t;f789RhMC#ey@;|_m35S|$B=+nBb9h4`SXa?W zR*CmFHKpg`Qc;;T#Jfcy&^n^1oM#@aFfk`voxJ-EM6i+jeTCsbSTxh>=)GnjB#H2U zQB~)HM)LBdfhg(;UU(r8xy3*7(#iX`LTKjj?(KN!fHaJ1QA&TPAUUk53K|zV!bj=D zcaN%I_@w_kDv-SVAr+iqr~su5geFAKOKe=TltF~AuUUE&*DM|UBWA+tnx#g3^BP<- zC2xv)e@C1_y%<|0ajQaXz?0FNCLYDwb>SeN*G9>km(Y#F7sKBjfMdgMZaFO%CxTvZ zU(0ESpJjxWmMmbuqsD ze9#vXh@?b-_aDV5K30*f?dyo6a1EBs69FQ5M&A?{DRc=*HsPz7_!{TtriZvzl!K+O z;3X4oH<4r!AX3`@Gr-OtT4Gj-(oXw+uK2aH0wN+@dXghn;~@IxihpZOa79e|Ih?@N zKG%|0#H4XWOjK`?(i$vRyakhNURs3gPXiM^MLn;m#){ZZ1o+eS{1*$@XSpSB#!2I5 z9A~H3T(Rf2N^cPn{s?d*-WomnrqWIXxa&h4)P_AsY#+GY@RAp&_O_ri7U7Z?=lX%r zE;{2zfXgPuL`RaXf`L4Bt|Rt)2*6|%&;^@^*iB^tk)prr@5+0JWS$4-+0v+Fo+l^9 zWp9>w%AN~4WAg$crTzav6J1xYbwrz8RFj;#n=Kw@{&-uXRP6 zww~zpGLF;{_EdyX_QCjZZ(WE(6S3uE&;gb^c^kyC-{GpT6OfI2aN-PD7Gn%Wd}c4= zEoS25NwrrOc6*JpB?yP5Z}zd1y{_>#sx@) zPX?b>3_68u@vDavOY;E9I>*ce;YbXk^S$(*mDm)3jQ07SpEF6tU?3E3ou9~@45c#b zEFz})ZM+#E*NEyxdHz>739%g6t0xpC<||@KQN3G_#MKeFUBY=jkP5OOy=|fxY_Kc| z?@`!h)HOKufn^<3nEv~zmRN`9Hj^#C%|Wv*k+>CK^5*-Qzu=jf7zC!iv`RD6&oB`0 zTYYjmgZq$Tmc^Hn!Jjj{pCev@GlSd+<-2#Xu~!(DOX_i^D~5wr51|0=j|Lf85bYE52yXI$`b zPxmV;_mY=zvNC4S?$fAYIj$X?fGM8a&cn&9;Og>T01kJp{1GqVj!Vd-%c;H!Cv0^= z;=8dN9y>T5>70(aAI1t~H$NH(PJ-Qk#!54v<=J8(5X*@8G}hJ|4X33MyAJTZae!|G z0ZJ8nRQTQ#M_XBV&Q4y@U$gLbXAQ_)c5)W(iaERYt&w5Ri!CoHmh#q!aL03^TdG#ZPBwA;JH(9MQM8IG0+V&VQ$~%ZPc(Dz{Cmd z+Ux^%bKk=G*mK(Y+iY)(5qREX4jRC}5sb|MG*PbrK%g8>gKvL1n8dqDw=B(xas#N` zVz*1C;}N(;>y_Y`X?K>JpSkw%EP~h1=RAu-NkO+6Tt6>z;?G**IE9nN+`0%30*DbH za?9MjbRU%4$Vx7X<)>NZN&qacfaR?vaG0IWd<(J%kdF?}Kf>;i7>T8g5b>~lpP1R> z1xtJgA{eP~Q*K4h0L+z%fFNQL&hg6G5{PxGm`NAosHV(*$n!NYTu^Y+Ze`AnAR&TF zNHR|y5caFVN5DZIDyBOy{g@}ClrsznE@y|z(TGqvL>S5u`4#9YPaEd?@1GI!(Xcmn z)8lRg>D$oDmTqyuHULThbUT$BpKcfl{UIx*a<_B4X09|4yNz@PW%jth3MqEOuBS|| zd09jr4tPjRx3S`*%IL`h9|*)h38s6kL;S5j_1XoLwkujxdSb82o%@<=|JtMyIs!S2105x z;BN?MCXv5$a9Ak$BcjgWFN76;gcX01hpCDO@-`J|v{UdWc|SzM1G%+BWFA9vT>uC`gMD5tik+gUm_jnGc50tBX03t{EdG_0MPhC`>O5!$I~ zSUa^9;5l?^YXNAdCf><9wGup=POS=X=+veH&`xbWp0!h3j_0gXTPLa1vL$A)tL&9e~h> z)f3P@>?{-#@nIn%@L@rWdINf=j8S*T$5TIW+&jDOG$K?Y5rz^o)ERMz1%-RF^8Kq(NvOB=07AXx zzH8`>`67A?5vJbW4D{wKYKX@Lzj<;Wa0@6(70Pl~ps5D!0DnQ?Ww&pe0svD1Ox~i6 z?1LSoyboNlz7x{6X`VK7rYk<|h_nOa@(V@`FkzW%D%59WEb*_;d`PP;&V{gXMmtgZ_&>cD%0h_N>8wtS1vOVfof!? z%oiy3eIRB7;ZE^7C2NCoc!{0AVP~s5& z1eZsXv5p|b)jYrvR*5iK4Pnh{IS5Qvw*qXintvn@X z$4rzQFH{^85#g8!$?;W+V$6W%Bix-_!@!}>N z-?34S@7+`!%RV|L;MiNVC1eRZs8sG#EwGy2;V4X|=nq$T9sGO%a{+XofVl;GA$2kn zUBZ2KlL~=ZMCfP+P>vg?1-uL;FaN|Umv%HAfEZqE<>#za10ENyhL>2IDVN1XJ(!%k zC}|eM^(6NzuRJV;xHiSjWT;E zgfzbctj)tUIfKgW?R3a)!{vQye?WPx`B50A+qDydx^(_>neG@^t{sBRH zZF)g^1%l)(+WK!XaXbYX&_s~oe?X8Cn^X|#^pqg(q8-tFLYtx&ad-Mn5~S-8W;f6c z?wn}r4MAYa9?p;tQ$4RE9zuBHz?@_4EUcz{p_^F1O2=+m6`X*vmeUd)AkJoNb{%3Q zCSWTC;>|?hGKoMti{ZntX*oD?z|7bU3zZAG`q_}kG)@bIl==Ur@>2^k|2;gcMxIzO z(x`aN9k_uJzSO-hk$FPpAAxlD{-*htv;N%tUie%W!Iyg$7DnIS8+X*v2oJ#0tB-JY zAf4SF0A9i8LOT=q62OY-F|m^mpc8=D=5aBZKsNyG9*T)$s{nig;GM1Fq9;pR4&Ytv zM%aeHb_kksf1Vr@)n$Oj`j)-00_$TqxKp@a9~l?9*L$LRJIhUCGpl17xq#cK7u-L_a)QO_0MS>j&xe9}RBQ&qAIeo_yfq;NY(6tMIx5n?OWz z=o5GijPtR1GqpUXJ=uu$)(6_)MbO!n?1pGF4z|`JzBTekV$M>BMcnH1pzDcV(9Y%7>gmx;mFb!2+3Fs zS@uMh3Ls#BqS`?gtbU6coy9?x6Om<@&f*};0mw2+BWz^(2wA4-EH<*tMV5VlK+}k7 z8(DY`%0)nMYFS+b1%Hh!E2-cjkY5b)2aqZiTm#EIG&$|4e0Ri!8Syiw6WFo9ed6av8Gh4g{Q)sO|!$%8+Fp znd$=a2S9!bQYBMeK#n7r#Cbq)dAzzSYUmE~>wu6z@wr7N=Bi7YPyA-U{_ zEQ68d6Cfm){gCB#WLc-P^h1_MkR|=OYL6OZL0BnDfsk2hkYx?BQ~)6vt3ehV^CE_5 ziotf<;K+o+9e^qYui7auSQfl3tlkPcv-l2KPT{vSC|(*C986Pw)3^nI%@cIsXhSd4~_OP6FRDee82WeP{`$e$4TYacqlCu_BCIaEGkmKxLIX@%I z0YFHN9B1bhd<%-i8)&!LcD1m};49n;2O#F|IXF1Mlf1>helA+)kIeZsax%fliT4yDcLjX3mMZ=lt}QU@ z9NYsr`wYaTm`KRxEc!6x2rOvPpqxeJC&t7@U&El@@QarMIS~&0+oHr7;A?CfC+KY7 z4)MDnt%Pac6(uf2+R-}gyCDTQ!a-Cq&9b)3X+Yu&Nc12)5JPeXAm?j9fQX2q0$k)N zYDt~~`OP5zL6fIIz9pH+Rs5zvej3Q9lH9X8= zC`@lFhf8Txwj>>9jn3)4Z4l)l-VxPXTb*-i6oNVfV$1YJcwtn}sdqG4)8RL&1#z))6=n>^A}+sZ`FXR$0zd zDz8Lb4DstwGAX3zz8Jw5c;qzwWpEi@Y_`kz)~3lG%IyL@37v`nvGKN?OIT37o*hDA<8$fRKCM+ zR%#>e1Jk_H(wp#lDlA>{3Re}%=f9x(Jxl!=x^Gr$*-;^d>;+9qT@S4_(`!*i@ruFU z9?+6rpQ;NfqI!K)>XkPLHPh?SCoB0_>bWiHb<3x-rD`uB^%|7QqwHj1Me z5IOnD{)!o5=AtE&>xa0JaPod2WjOg|9~Dm4>u^$z3Gzl66cyUQUAX7{B@8yz<;{}D zt+B;w4yWy868o3#8F^Q!xVC+>q-l4=#d}{MSBGXvUtxq>^F5L}HcKkTTioUJIu$Yr z(QjB+9qvsU!r{6y7$hWtDZ<0cZBqn#Y0c;UhqNlfXbkc)G;c1#xc0Hu_?&mQXpPVO zpWKj7o|4pz&kHVhTjTTP%P@y&S=BDy)3w6q>|5Q|RJ{=2m9(Pjl_OeJ^)WDKt!j>{ z%|y5n`xOjpVFa#KeSUlFb!u6JX9i=ZA(NV`dhR)hl3TWx%LlgF3O`iETWf`G!?M=G zphb$n;Y#zl`?e7g5PF13_nqIW2%HYIBEmzsIJp%O$}PLKR!Cr(v6%6t2{OWbumo%$ZI>ALe0HUc+eyy^Ez{Z7ay#nGAYIa9d+BG`Ub>8BVSDM% zr{N_(p2O{>s{#DE?WOk7s5dIuR&VHG%Dboq!PYCms4!Eoy?>`*KR~eD(Scz8>G--0 z&!J!=0Q^b8-h?s54@o%UHb@AYuorc#hO=mZNM{2(oBCF5RYx|^R#$hzW;di^_?B&T z2t-;6ShkI7s|PjAt;1-m#{uiMieHO2OG>07h&0y}slgD*_8mF947UP@2)z|JM9d1e z0wAN~y{<6oncWm>#nDBevFufTG|DTa8BN<0P?y^*HHtA}`1fKBnX(XbM4 zN5ERV0*JR#iB}2n)|%o8OyPBlorz2sf3iEBLxdJDL>S_oUTla5BMZ#(dM#ezjXK$D zgpf47dL`r)=tCu_pZ#YcoDb7jKeux??SH2?G1F_B^tTEKS;ex@-}*wxT0DnlIn@wS zR}!{ih|ofYh^&ypehAu>{Vf#i>1k@7a+UXZ3xd_RB3RS@cfm#k>kGl=E5U|AuqCEo z%m2J!m^TDI_;%f5^J-v_E0sv68f~?ziAaG#Hs5-`Xd@yGhe+#`NTVTAVmqU)DgbDM z3|r#&Y`ssO*v?oGJ_!8F5hHXbhYy2z?Hfeb`WnY z%YrG6gLuOU)_z*1sU!3OsT2kviL5Nv%bf;H`LPi{o8X%H;8 zHfX(rAXpDPhmK?ffInrN!R@5+%!jtPRkzr$*aCphdW7f)>@1_L>c|FsBim|gq-lfX zc(+{$w@bVNk#+*C2L!g&L=B^@4u?oHlt{-yq`9U@4Teb9AQK&M=o>?X_KhJT>l>42 z%~#769N(5&=x<}O&~=Lz@7>KIUK%XV0G3-cIDFF-8x8SJMVc0m{cUatw@a*sc;^B( z#k*X?5bs2Yw^E6B3dCD$iYKQj>>$nQy@%C8R- zkGutVfe^^@$OhRlF-p)x5{*)gib;&9iQ*E)9j&&wREgDyJFPWhU4lz2ZWVW2q8PQ3 zxS=(Q)+!notQ*#3hl1vI8K3MC+*e4~1@4$%lFjl((#`^ZRe}4yKmx8ed&DiB& ztl7(0+mt3_Ow-}ho!CYOvbVFr)ATDn*kv3j3ssi zZWNMjwU@!6kk^8x9?jBnuoT?Y(^d%}#)SM4g;LteO)zccCM4S`eICN;Y6b&^#FCIm zy9f2$Y1rGN4D4+W_Fh41ork>=yxFMYdw6EpV}JV;xM8n9*y{!EWiKsD<6!SLuvfvl zpo+JHy=pIebsqNiM4=S++yuj(o8V#Zxl7Fe2KE^3O+WEZ$%$tI21d=A6=ZM3 zHfuFk2)^qM66IQHKhYwnf?OI&_TEJydY7#d9uz77yPXow3B8Jz>?Mq?*=x{y6T3-~ z1y*43fPP++fPBUgJ zPS<=Fr>nqe2{VJ!Rp7J&u*+#RkS*jCTMJa178*`-DojK+Rs~M$`0{0$f#)vq%*f{q zjy`r#5|>-5dFVEUNj;WZs$*|}xkeVBGcd*`Yyphsi*=xAJ7DbRjv+QJx(FXNDUM4p zL@!{ok6TJMV|P>l$#N7fmhhm^c93j^gq38g32VvL6P}kHdl7 z!`U&$EE);xcts0g9j{;+V{jR-AZ`rqcg2<%uV`mo5D4QH-GE(z1S?Vnl45}Q7Mb8R zHZmb;Y+?*Z6rq+Wk7UPg0Sje>H4Bx5!9w3T5n~dY!UAIwHLMFPFecFe*kz#wh__8Q znFTBpjxmi|kCu{Qq(`!~8Tsx;Wj zs!=y@Qk=`WAQ4WAO8~nPsRXh`5{YrvTg&RvsGR&Z5Y{X-6J8GseH(dWCcbT~3oLNr z+XdKVLCo1g7SO0yz%a?4`Ww@zE6>$V>UTFPw^XoEN9ac7v?~Fk*r=R+l@NwRI5nvt ztY=;_bwMI><^|Z5NHdTvYgA6H+F3msH4GNI2x}I439pBR zzKzP+)wi+0*;NL1@sI`1u8IM>EK~s5A{Nl7%@D3^)H>6sN4%k@RNvjG2k1r}t{auU zeGREaqZUIV^@Jf2PQ{uCLn3A>X8d0c5 zB8kN4zvs?F^=MSO@x_ES3+05@!$RLir3?RUEYO9oVqIW?E_@wemxU%ETf_ny729h? z`i|Jo=}uJoG3CQ<$^XZh#w_mILRq z8cej@(Lh}GMDA^h<<7=R6M57laVKHOk*hpCg!M@Lca$qnlvl=q4oP z7@GnXT3NjwzdHzP7P<+qhlRdYVPnQ`v5#Vb<97nE%R(8DEn)$xfJ^v9`d9avxDr(1 z?^KSDMtD?#cWP#*J?#@m8&z2PWy%^JoIV=HgRDny{#FMHpp+bl% z@~B7sTEdVcNBsuEkR#)*N1>GJQp%O9ad8!IJ;~GxE5T9!w+4q*;Hclsx}XXi_1giv za_k0T3oLNduL10`&;Z1+F!7l_EVv1V1veqd0#t#qiu5--JgR_^Tcoe*=SevU z%_=*q2y8f3hjg;NBRm~gdxZ8!&m5KU63Pv zh1`8Tax4L2OHf8`f-FOl*%9?5zCn@B5x0R}0#hTmf#!R1+&fb{OV|i|G>Wp) zEIgm0Ho`syk*!nf>jk>Z!>H9kj&*9i_95Mc9_~}C-UR8O!#I`C+2UR7Gb`QO@^xge zU*2kqBE)SwKC{xq@~!dU)WEa& z40Sl3!K8@N(}qVIv5{&d@N0p)-^5Qw0v+b((^KdAFQ^- zuaFtTgv9ymG~nF4SbBb@{9gW#z~%S07byI1z=!hr8QC#w0p{|o>$k&VSE6h;;k-~Z z7wIG3P=^dS*ZH%8+um%s38i_XP+Zo1Eb{PkmD00R-Dd#LCVsZUZv-yieNHA)<Eo19Ll!MLd)krOPOrEp{uv-$@_pb{CLH5rb~32u!H#7zeIhHfMv)FWp7TEB9{yXq9YS>rN9 z^i6PBg9Q3|bMLiwjF3x{pg0|Kh9yoy7FcmHx78XHwPCqTLi&wPB>46<$%J`%;8R5Y z0@+@JLgZ!6sXla=K*J1di$)T6otBO)j9v|C8+`8r{gLSTo`kuxe50cugE*68?rU}^ z`irx$vWP0kU}hwJNMOpD$pntWGrc%>&3uYpVM_F)EAcUkx(V8qh;9oOKS90hoTxV* zje$jz;Ie2E6pP3TrF;b3IF$o∋mUmu92u@na+(F=sYLb=f2HK(GAhN%l*7*=XHU z@l}mh^+Rv7Rn|pF628U7=rEPH>#^lH%gP$n?Gum&?Wn!%^D0XXE?ZmSSJ4rRX>g`k z!=uHpeET5h4#>%lC=WQOMuN1R+gKU$fCD#y2OPvXfRwX>8CGWGON=hdkzbB3OyJX% zNGJfar6pE&n8vk=*|)dU08&dtTh)Ou0x4G2Bq*yYYpX>bX+@{YvlFBleF(K1Gs6Ke8d?wsXM8XfSmM8-e@IeKdde+=FyWoF-dhImT7n z+Rv{>`QKSqzY%MELdRe2W&R^@SS5;;o@zxu2hBU8OWlBYc20KO5(R#-klzKe~O$b@-_(`dCz&#ClYMEvvqU+*;HT8 zPvF4!{TSr>x1w1%*qLTHb34u13zqbuN5B%c5z?W#;3DAB&k0Jg3<%kNK0*T z2Lg8x>n{fabw;kT@LxZvEqs3;WaQf$y+*opxt^CTx>P6;zv{D3Xx9yKwXLYq{+7M0 z|I9RTFuHH4u%j6ui7&kwb(UK8@aV4&Qe?q1RZ4WErc(~aL0feTSF4ucz(&~+Opy%{ zx3hy+qScr{Yn?W2RBDEFTlI_ths3C@dPWJ6yik~~RRv)B8X>w>)$##dDz}zFKuR-g z)#3P>0w(0xbfTpE7l3xz`5!&RFOH`xT4qNFYfcB@Vd)HTdhS7rNLn1(T@0sE<#zIL zDig@5?9p|kXlG4#qlfMmFWv1Mpu6184BnV39z*t30Hp6X>tgLvEVaX9Kz0}Fx(s5w z5+sY~RPUC?s0c{uAMHr+o^`4e^73#W8`@q_4>y`!&$7{hDG__n@3cD2U=lUdKKDqS z>oOz>I|J9FXQJBDIL^j>r~_Zza#X$t$l+Lc?rhoCaZ(_`8~A$eAWn_$k0V8TcgQD;R&C&L?K5?nyxppZQ7 zwFMKn(pq0mfXBV^DI_P4%y0m>IF8K7ftU=gkIaZXu3dB<=2m*LFM{KWbV`YN2mQfz zzQg!~tfK%=*EIvmAH*Xm83*r!g7}s_gf}}l(;1S8-gT!U@^7r3lKCc~sOm(*sIP*V z?s-X4GUjYDzEcVU2b#I3BAv-P%-Lkj0rAj1muHg^-xD~gbSE0pD(JJxm_g!R7o8@c z^v(6U=$fnFA&2Cu|9hA>^-4{MK6Qg)Vt+g&SCN7j6q`{dJQErf;lbj3BZhw_Kpp)L z!Jo|qYV7h}IA{H=i)DpUe(6SjTR$qq(;vtO;lt3VU1$xyB^>?}c5wh1_E%ph{3U3} zSb!%-Los+9c@dFWq0K#xybQ$|Woa0uD5oEZO%9uN9C;<{LX?Hak=Forqb&76wlK;9 zvg9GxoVprOE^lzeQ8SXF9B4#&(Tn)>`U2Hx(Z^I9(QlNhm=2+_jXpra%#l{6dy36e z=J1|Xg^cp7D&d|va|N^fut!sAg>==UwU-XTGJH`_5mg=3c{=LhlLi_(V204b3iz zP^#hao}_3Dj|iCa*l2lBL>`LBD*kT`kK}2#QQ@=kar>+nl{KBKt!V-e$&>4J(2k9o z=o=X|I{gomaPvWm>y6Oq%TeYB*Xeco@_DCYR&jr_FT0JK25Vb$jS|G~aD+Jj}Nd{}DY&?dbRSV3A9AiiM|si!L1a=S|iH6#1ca;X>>y-pw>%+OvLf3LRQ=Lt7x-4`2-`f0jeVS`taMYaT)!;fd^2sx8anjAQuS;RL z{!TZ}V>`G&4S-kWsPm}T>+j5&`VCP>(4;QW!P+sl_(N*7VF(Q5yhKC!oY7#W3rMM^MD z)mlx=tJPJQULLu(tZE%*hm5er420Q@#xFxHlG#5zgcBGZkPjk$Xg@1G!MtMK8LQv) zlvCq=@vfe+esY8ADe#XaY0<|ttxSk*hpQXR6jtVVCul{tXbO8g--9V^oHNiWh?28U zIiIa3g88hxzN8t5IqAQhu)e;e8?c_kCa0_ub)9Mn1BX>@%9K^jS#d6olIbb=ezDzN z%8FzmJWH8=qh%A=3YLrsG_9le2&K*wyhr0ApE9)~@Ry5KCD1*T85OwSi=PnK}+AXMej|D+2g*|2QA!mAGGj?@8?xV`nL=nz9HN(!; z=;>x~JNyQ}SaP3y7JhjtJVR|3Vzoe;fXrW=8RT6F>@oD^=C|a;ir{Xx^VtL8;P!W` zXN;50&&R? zd=q1@MSRD`$6l2KVreX2IPddX~5OTiN89tpken4k9)vCO? zix9`Yt(ZFJf7GhD9{lnBZBd&it!;GbqsoUc9(=$=cVxu!<)6L-FWb>&ZMWC`qV^ue z+M<=;#@f=K32WRmB<)Z7{y3jX&)wg;N%j3j>@=`HL9-UH6A~t1rn;^}(fJEp7tB>C zJ-Kxqire;s(K$(}{u5gDjYE;Tlyb^Xe<{V~YKMRL#M6_MoAh68r3_aoZqjicE42;9 z`O|ZgTu1kuxoP6*FO+s4vpz?+42J!u?dZzx`a7f358_DNI_v$a>K5UB%c97DO&$#2yI0S*avC(r_vUi+pC|uZx&uVs)4U7+r<&l_I(sz!*;gmRw9xq*| z++&M;Vzmkpt@CUpKA1k~4q48gwb~Z9D7RllIW7h<(%8+IkAvLRlW2IcqVzyKB#V*D zPE_q+5)dyLywDP>he}bc8!tJp$rf*^htc`EvNT;;bbC0T)FP7*`4GDh+=Q#K%|<(d z@DN;e*|Qp#b3UW2%kH{m>0gpOcM*t_%Bim>{c_?d*J+tqrwDMbE8odAa};s6y~;Io z&$icWJZH?*4b(FM+g|ajsr)YhDZ$qc_lrr_Ds4RVXFGL}8@^sLJaG?%8#KBWsg(ET z`QGc@_t1^L@qfMVL0~iMruyD)qYfJH7h8QP)jWFD|IYf<^}E>OIz1hGv>p4PAtN@e ztL8(|)`RX(?~7}lch@mj|JpAe)9X`z(5}q?&^o3ZJBuL-GipWN#Z3Szv>RTD(V#}ZY# zFUVbjwLoUyYr)r9M^5LS<`YYCmk-3T&a)YQ?4DG+%%n28Ug1()oKSF!lwssx9j|n~ zLbdNOW4ntTals&TxyOU*3Jiv#OwWDqTp+%J@p$}N1MZut1OX3Q&VO!C6Jv1=65+06 zZShy!f<*Z51N`DE&izv1wEI8CPJ0uWS&aZy;HG;l@fuQBva?^G7ro@(BtG$E-1D(S zCvcnC#Cy`{(q%r<;}gdNkdDK@QH`_wKe&yCE1uU`&fQP@#i9EuIQK^Ef|{$~fAwP9 z`*dg+@|b*rMyl(w?j{Ieqfq=~z zDrwPdzMZ^!OLz`2c~ z$n4uxRnU0h-yZDks}mRl_3z-zjUR@DUgY+Bc+GhJ+juSFQ^RXH5D%}PVi8I5y5mf2 zIVP{$1_o(?-G^uMcg&8a@O!ki+5A@H)rQ|Xz#GqRBXWEBZ2?|*jFk~R8coTzt%7t4 zFSLdPhoU)6f``pq)1)_^j2-jT+-(D+HJkVzK(d*ly=3#p)ZX?@<#0IE7Y*qw%fA%2 zzOf+>4Q!)1d=LG0eodc-jBmc;c7Zt4kiCF6z9BRIn%a;>zzh5PGUDu{WkjZ+gWir? zxhsiG^-YaM&&BRnApHi%;#)7lX{Chat=v&|WH$COZ2hUeAwhO#lfc#w?}%!fSW~HQ zRCssnqirLSV@-+iOQ}v)l@$uhucQd$3#l-_kP2eL>wX=@3fUb!2k=QVv8$2zFZUGU zVd~VOfeJ10G(4lkQ*??F|1otc0j^wOmk^<_S3uYmL@4Zh2)mlhYhl+B-V|XsvL++! zRw72&9jrTYuyZoC~fB z@9S%#o?VZLl1f_4>@QfEQb{X_7`atbJX&sbgpJ%9iF}vbUNwgAqQQ>Xhi0KJaHN*o zwOVc|_MLLu%<-%R1R1l?4tV3uLKkv-?RziqO%Ptjiyq+>6EVUo2V#U*Mc4?hmdLjV zPkvo1Lo;L1^^H%<=%O1|gjXcPis>s53GEsI1fRUf&mCpC?LFnVcnHvs$26x<0=rg@xJLPfCUj;|7ax@M_p*HMk z$vfZVL6NgOZ(Eq7oXYtfvFq^S1nYe+xhfqa4|C~jIS0;whe^W!XvuFnWmUU+s`~3t zbw2IeN{}La9rdk$};V6>7a9Z;hIq-SI#D^n*-;cAXzXaxXtHF0FNN}DA#lHTXB@)<5x@%%& z{O?O}f+66{U*TKvKnBjFqM=9BM(kP;iH3fk#J4H*ha&0tGSOtnOhhBdr(ARItIv%& zV%)y+)d%)@bq*@5@VvU(ef8k)<<%em$tMosT<|Y}qx!shI9^@nd3B@v>M`HTtB=7I zh?6-z{Y&82eO_IRSGRax-R{16+s%IUc2GySmA+-8&r4I&<<)^3Fnwn0MDWacG8DM? z9@Sba+3kE0<1LMsN0qh|L6&}3P`LDJk*Ey=Qe|Qqcw(j zYE7Ak_)3>}qcxjI{LZi*R1K*%m)tK@1Z8!A!J9>R)`fPW+AxlDJaDht7~EAGCM4BH zTLHISkHn>vGA6S+@M0g)ytWylF@4#HhJCrlBbs_wG^Q_aqG;F&YQeq~&EJ*?75#c9 z_@*YFoI1~jl=iwAm*RjO88Uk&_)*`C^Zw}*ZpN~!Efs!xCdd%i4S2Tx8tom@RIu%t zU>X8Mrf;tM>Ieod8M%8VnAInv8m=?u;4(THeY)OKF+eWp8Gnfjjq0QaITm{#aZ%D; zh~((+a3M0Iy+R%N=v;;42J8;B{?0@2>`=dDUyK7O&cRUNob0!Gu z-&i7lJf4*JBM)Ivxd0EhW|dR@1H(_(UEJD7EMWSxzy-8yS{S5PZn#*_K}yy!kaM&es(xO~Dn%AXyhJgRHarC@iL*Ae%ynZBKeX4_ zN_v-I_NJqy>g2ci zjC+|<_1Ea=WJl1AVA6ATo(qB*A1_+Xy64|M!AYEK%pJA6=wKO#G34j*a3l+)WBcF) zcv>BdWQIcnV!fF@(G6tI1p{LhzrblFU4X}Bg8kEsdHBN0@hXz&b35@+MtFx^eWC_*JN-jLVwVG{ z2eM#VEN~&<{~~8KaxQo;7Pxl?Eb-Usc##Ev%7`5bWobg*yp5B7zq|(W~ z?uR2!7-?W3GrSlK=Aup~JCqk5je)-e$jm*gZDTthht>fy?O>cWcPxxCV0n7mu4f<+ zLY%8B0$M^^gA^NF|U_zeOL4_G*vgVG3*eP_A5<;?T+j z*P$_Ety-9p1Tcv!XHIDd!$b|18{HfC#}0u!_#M8Xh{z5&Qh&&4a*qk?+zaKt3qDSuGG`%69D=T4_f}v(4tLEx zjWbVzuVKJ2$U~pufI#j{z!Tw{31;js-*iMQ2T40JsTnodf4K`nW71JfDg(*(?)7@< z?+GSZNb1-5mO8M|(Dn3VIGavw=Ze#ZYCtG~yG4ZEv=@d`l7M4X`hALGl!Ynw%-KG% z=WzKjy5LVje1+$<#4IWYUk8V0m|b8PZYffZDyIA!S&sPYPO^NOSgVfJHP2X|tRsR4 zZXN4X(LL7|+o>wlX})q*`EI;K`n;EZ;h3#)QJ%s~3NFwTuJ?|?W^hhr{yvUlWQ3JL4qfs0{y`Itt> z`nMA-#$V!aF@*g*YH+T`WjAf@%xpOy9FZov|0-eOdktlrTV~;N#}|-tgXOF}#u2ly zO%Jf}Z3ACS#^CIn6X7%59uQVBEQyTp+1s3Ji|Kzu(ny@{v*1{K4Dhl>4qAy>)Jq!i zpNfNP)@bDZ#}VE6yFx&muY4=MARA;pl5UH0@D1sNu{K^XeH@Y|po{Ipq+Yz>M?n@J zIwVfO}|8{^T9!BV%wX+{vK$v^}~3}rG@yZrDYlROq%!& z?0E5963e^Fos&BKVs;6V4x>zAu-XH3D8z*Y^^E(SqF$OiAlm6_<#7p6vmk##4{{Rx% z1{0rr8^!K)6k<1u;p9vdvtQZETlX>&P}S=piI+w@Z(=BRi(SiNONM&|z&3Ku?}zIR zP2Ho&?hGtpB?rZ z3no(5C3Ee{T=P!y)`f)v;dK7PBZM)`bm-l-xT*j&%=DplPJiufZ?QdOwNO;&ejz+b zE7*LEQ~jQ#&nfk*0^WiXnUsM~ZCw_HZxk&7HAMEXd=M^sSoP~F8gO*KltTlK?w9;d zY8y7jw|*yeCUg9N-$@By2S!2Pc9hRNf0~#zLWmRAz=&-IB7AeHBHhqPR#P?1+Ef_K z`-b7@#pwNAwnDer$Eo`UnA_C0CKZsWfb7b^)gJy{R?m=EyvN_QPPYy+)}dP zy(FMe?j?zEFA0m%iID4W@)CF`ky{aS$V7BsH?asEDuozdOBPb5VtSbl%KaB1TH{5e zZ}$S<@u9GmeU?C2irG&0M_3aH7|Dlc_~XHMV2YVA90@p8F!*UIp867D|6*U9*^YPn z5g?Lpndc#MkI6pq8s?n-$9<7^G^gmKkfkp(dQ^*gk(5QJFBIw3Ib_16+@zDj;<~Te z$MdQxoT9xAMsEKXzQ`(FvwYQm@TwQRuS&N=5yzXLUS(rn%4D|lU1(=7BDp%t^Qylr zaYPs93H}G|$ku3PN-Kk0t+WS3X6OW*(kc9p*aJkyz?XfZoN6)=#~e3W8g)o{v}h{2#G zctYUs_b71;!z+Wo8WJ9K9WEv2JN8BBYz3kO)j;Hoi#xCCfpEsfomUiM9AcH>1Ma?Z z6TJH~WDXNP2w#PeUo&gp&&m$m4TNRbXCtE`LB?_o&Okp1dImCLQZbRsLP|RLgv;fm zvl_>pQhrysdFL=MCSlHiKU(50J}bkL#FuF>kYstFW%*V^(9S3G)hVmNHJ0<)A-2F` zy9mB#*~9L)#A)bL!F0HLQgrw}mAYpy%h}l$EE{|}$kroev`WEeGJ_+rYEB#x2oZd4 zbfD)x_56C`YeIpKwVcNS&zhJS?C{{hH3<=Vu^l^0A)2i514M8uU7HlbOCy8RG>%3R z!B@8me64HmPyCGmfnVt7#Itfkk$AJBhPYZ=4V;7(JrX#KMc&K|e!N=Y7?MQRv{>+K zjq?>*(_c@1T&N2;cDNOa?TN zMkaJ4j&vG?=O$ciO-DvFUrPIQxJ9Fd*l1;dgYQ8JVrxK9 zC9#j=u>tjna#JQ*v3LX`s3-gcR>nl^8>o4c$`<+;*RcTevf;>lZ=?FGap43=>0r)u zD-!HUr6U-)SJ8zoO-WII`SWivxq?Z}+FtFSN}ZPszDdpevvx|Emt^gfJV2%t%zgX3 z^q4+HCPzA@ZDMIV-RQ=zd5( z7ekPYqR0`-OU?-oYI64Tki(s@?gs&q9M1;<#MK7@>9O~*TtjkJTIsW~p2Q(Nx5ILt z`aqL&o0WdXkv>JveU{U3v{2+gn=s3sh&J0j!x1?{g&25-m2P8KJC45;1JAL%>CU*< z@li46K?6^*&^ztvG7$pDY8~H-v8#e*X za4wW-E)*pn_F(pFLR<@XEB^?~xwO_2XEHt0^6|M-_gAc^gSh-LSmHPl-{#Dp3S?Ky z$G^^(`=}cU@+E14>|q=8HZC zJ(A%1dW0hV$Pz{5M>w>uxcE5!JfA(7v1IXh!Wn}m(GfITB=Ay_ju zsz2E&oW>aYPYezAxIbmc2 zjMMd-aMKMcLQX8P{?Zn2u%0fDGj$yta5;Oq;1ox+=YX550;fExn61ULL04x6o<2*t zj6cyd=cMPzflI6I`4o-XRPn;F^O}`uB|z zoLGQ$LZt)`Jg(|$(@OC2_n`zgK?$lU9VkKdW+=hYkVrktLkX(1baKHWmEgB%_+~t# z68s8q8(^gbhiOMG%$#WSv3-<)o~&01%yXjz=DAUV>3x*I)bA=mHHHe=9v_(tDDHu~Zsy?UBj z#~Oqfj=G@9z5}-d-U$<$^E6_18;SJ8mYwAotm8Y{ead7%X^HDuTY2Bw2JDWnGlt>G z4QZCW?0wuMN2Cl>#5zS}PFO$EPqlhvKao_cMNeDe4{UCHMr*IYde=%KnW*50DzgS3KDnKt z*oGTM7T6g!Ou_g2WWzGp@RRSC>XmOII{!6#)4}LX8?JhTPo&DzF)${u7+)tVt#=x3 zb;QAVmh%q;PLeRTw7_k#@4*C`s+so$R5Jy6;02r%3uVYV9GVfv^~ltWydc`;UY}oT zQ{LCmrgJZ|r8ea~rhA^34B=q+8aiLz-af8p%8TweE*dhMwijYA?4ivoK_=gR81{UJ z1C`OGvpxCld`2g(@+4ki5|<(oecfL6C#0m$#kP=V$70c9w3VLN2?u(h!oj;*>7V7O z%{YT|(W_l&C*O>JtFBhV!Qe4&aVn;eHkAW-h@kq!k`6O==-byRJ<95TcmdxxX^kRiznS~h^Yr?>t?w zfmMY%AXsUM=fR6;BrHGc7qR{q;j2MeC@*#>;4Z+tJfIhi)=Ld#5EGu#I*p{pHN8R+F3>umvNAXxH5%+IBenm3`VX8Qq(J(v4PqxICm&E z-CzokSQL0rw-8LC1c61Ln0u3Mi zK)(mD7}*%hjXvQ`_&72&@|tEw=6EVX8?64hucMleyec-+eH|0{I!m`UarrtH47BQ& z;kd)5TkgTr$N96O{xcMn%#gmTH7fFnCP5}tI75*x?MNpWPu!sFNH1VxM=}oeXm1e^ zqrGK>J$9rLxUnPkfQ=n#BCPF5D`2l3>0lXcM{*Z=>`1vn(1MbIi#?Ym|i)aqWPOC9Yl}AkH;x43#Es$#HSG zoFeh(J~$5dZGIk0fheAMI4AZv6sePNMKIht0JaHm`T_o|FbzfU2)ulWH9kyBkstyq z5vG+W0YVEAr(LWdB5k6y4%N(PtV10T*E%!;G1j4la3AY169lJN2PULg2btit4%3*! zYaL{Q*E%r4YaNKgI)vEK+CjvK4+cw1(M4EWieA9RQe+(2$5PN3rdSFlcr69-AInmp zBYlwu;z4v`uTX3{j9D4rf)#4GsRnF@n+C#WxM>EGI^1B8NgZyOV1}EgFsih%-iHd~ z4+HK2EQgzyfh3M{hnwf29+f~7^OSnk0Cv@@9thQI^9Q0P)?iev6^N^99YBn#brb%v zRZSe7RJB~fTGfgH8&xX@oH8i=98|3eL?`xEs#Xiws9F)v5ryR;_`E zQne4DYVAN13zVvL0d`fb7s!^WS_XEgxvEwK#8tI2AjYay67HjFJHte$44_O%89-%% zcL1Hi9Nqy`CU^%>CU^%>;${G?0TD*k>IrLAYXWRktrc*Js{N#0Z9RZ?fat_RrE1-P zjjCl}x?ohTgs`z{6+kvo)v8g%s9GanSJm2yNL5o4HUWK4tj%!8NeVD!!p4M@37bqv zx?~Ad;A&I}5LcrrfEbOcCj4V-R2_&g8r4WxYZNDQMx)vR|9mvc^~dwjN{P2}W#FL; zECAl@z=QZDT2u!fasj&&kYXTa0#Z)c6L_eSg_I{)57;Pj3t^+k?Lbl$nO+DUZ#eMK z#d>w%Ap@Vxx`Br>BFVr*EzrbUQCE*yaf%)@Aw`d6LQ;<#P=Tw*%|Ki|ZUbWUxRY=n zJ>HDK!z>V!Vi{$E*D^A}YZ-|f%h&@Vj2;J1O6qX}u+ifZz&{^7j(v$?uL2~)6onap zs0Pg7LzuybIwA->#2I*KB;pA=w6N3%YU#1`iVDHqqg=KWmp%<__buRj~L@;#@q%Brq69+9v%`|Zp;wfOf@?;Xd}_04P9; zC&h#mPf8|uJ*j<}!|O@O1h2hdg4bRUH};|oL>PNfNm!42HGqx1s0U1Y5oXY`i3kFg zF$OGKfgl7CVz9Df2VNn$t+wNiGFlZ63^_mL%|TLVzieTMlUQ!=l$XWm1U$X(l5fVIhX@0JR&;9 z8X4I^zXK&jbXzM|1bQ)3U=}ROh{8YSxZh|HPx(fJ!4CC}M! zvkVS6a(;`TICx7~*5uf3V7i=);@guMOAr$$EY&N()hbrSfN)}Q<~j>k!WmqjCjP@E zscGs%TpPQPu7m~>K|F_Ns!Aa(e$U(n`ovIQDph1 z?|MokWj&=ovZO4SWLw!0vtlxVl@#Jo@6X=HHLK*a5Z@iy0Zh1wl!d~Bmm|CmxL^+i z2**PM+JLy0r4xv;EIovkWeFERjf1~YrDAVg47CLUH4dDn8=t}J=*%gB6?(-(;zv!2 zw0Q9BgZx)!%#O0_Rh~cP`p>7`h4TA%m-20!~4}<;vMC25g+oD#FIutOc@(&SnGa z)y`%cVAt8~AtIg4aAGlZsZMgOX6R)=+;OE6NXodvp1etZXbo#H<4QdccU)-#V#XCN z+VmY)Hp36aIGH-G$OP}W!UXTQLLB3Y3~P6Q2s4&+12$ucfQWuRz9(!f7r}EubYd)R z5A00|5aVT40Cu&q8i>)#I>K5jxkTS63+Xi&z{Zj3B5c-R0DB#o46Je*N2U_6>t)p| z1mbp0rCft4v+~>oxd=0}Z^BM6lUW#7T2Vt{7fXFV+yNwI5TdzLgHU)7jBPhFms=UJ z3?La8atan_#a6lEyI6T8!LerZLA@zyc`kpW2mf00%{0l0B!;teHjC3 zcs!VI1(uj=Wk{E-1Blyox>;t6LiXY;)L^;}zI#g&TMWbyTTWOJ>#iNof;3WGGA5+B zWHQ0)l9e%s*Cmq)-mb$0Z`UDiT(T+9ZSF;NMyWF3G#RBT0{pX6sxlCrsMJbT3B)K> z9bhx~Hxo8W)dpk}m8z5V>V=>n{A^dLN{A?>+678g12nO}R;qd+u2MAt*)pYSWerBD zI)J!J)eXcbl{nW`svpmS<$?%f!HNlM3sw%;C|ecapPjPRg6PBot!xcIjIy-?Hp(`)XLTd#8tLVAX}zvJ*>efTkw33vL%2R zWh){4V-J@VAi^kHHDRr6b%2esH3I(GDO(GO#?DGLT($!-%GLweC>uWWPbyn6kWEy! zauhL^troDWY|TWJve50*GO>gs_Lv3g9MaTnE@N z+DKS4+5*_iXgkYjMl%{bjFu^cjB;yK4Ny>*x%q1u^{Bz^*-b#)VWbs^>De8G`}FKz zK#nPnFcVT7VVU6dQ>HVA*AbQpUO$BiUO$Dn@l(1%gz3!!ffdu6a{;IHW(H_eoL?q* zw?+~Fv0{_qSy0eokc`EJd9g~2)#X4;XtIj1RGz2_OKM70mpzN1ZrZFJah)JNjIKJJf#dnp!&?2=wM9Z*dKF|miVnTIj{(_ zFbRlSMrP;^%M42SqA8KfOlv)%OW`{UySwE#3`e1y*`VJgaJD)t|EnkQ10<#wwp-$w zfjBU~)=Dqx@8J7sz-L*$LEz7ReYPVW*%k?lECkS4{x*cQO==9Vl5{1iLf z6i#Sjla5fW?JVP!oEc}WR%-xbzVcZa^-~?euPes<1wBNh zKd_B0KE@9J!b>e5|2nhc>O8f=rMSR^FS`YGnbxF|kY;T_9j6!a8_c0oZi|tAQ9du#T{PSAfA= z5-^?=qZS5m8<7D4+`#GZU-^uyTJU!RQ!((lI4;X6!2^S9zgK@%*We-aJWwwQZAG;O z^+RNoxr4AKv>UKXsK96QhR|HXhS1wIq1%zr^YSAWym-DmMB=bOD`LA(#2ASp1s7}` z*$=QGE$1`eNKMz#o-WGOtj%7cMieN{>>bsfv}!Ka22ar7E-HNU4Y%` zUJ$T}EffPuo$g^s=Huj+DJIA)h>k9w0M`>m%qmtbU^(66w_43a15TuydSy4*%Oh2Wgag+tR?^3a zA_^YJi|$pI#8b9pF@ydB?ttZRWBTD8D<*{3V63kN>`Ju(h>>bDVJ%f|-ffeGlvH~F z8>uF6k%%kR5+Iu(RmPkvP{d54>j1lx=oTVUs*-zbJ94GUNwu6~cC)bls!~Keoa6#A zoD>t*oNzs<9Jo8j1nkZ+37a`4;FLKg%a}PPzTkBy(`5?5983%;8t z&#Mh)ATu^F#F@DgM;xgMLToR*pc#kK7yN5TY&X214X}AZCt$unmgyma%A*!?vFmaO z3|-+X2oBlVlkhm)5&V;b3a><2L7Sb^pz=rTSd|v_@J`^&K6aGhOS_QRTw?*;$(u{z%vVEm>hBgPxx)9O~wFJFvcp9qgW9T z95w8YVw|;kM=^?RBe zb6^yZkEu>b3FRWCV0&wflu$7dEunJ2u7s+97zx!9_DZOMrMAav61i zvNpr57zo60TMWcoHOC3BASLb*Byq#J+mt+IBBd#rkkXV)kWHz_>ODPnmD_{lE}BXb zX7&Zu0C9UnJrL6)nh2{NA@>Ef>QZtSO%D+7E*jby@4g_3d-eqpPuUk#lm{BT`+}%B zDZ6Nxkg|)032GNj`g`TL5VQ~lmRRX0yo*zGF+(b-RU5Pp@))$={n{@sFTk@(OD@<~ z^Q{XI!jzqji1zs!37ftK*wv(VAV!nA2pd<*_kS{b9jTgGQk_v zWr8=TOWf>kNPq~lTvI|=FV|E6HUZvhzzp!p4X1TP%!boOAn1{D!)Xgk{Ae3ah1}B6 z4jKxMwg$>A4P8X^7q3B_BxT&oV#3C0F9))T?qwB<827RPu6M3Y{s@AIV(WE>yvt5nziWOV)qC+Bb?d%mTvpSjGFj|&a%0s~#Rluc?(*nnp) zzr)VO1u?EJ76Wm0u^foe#VW$86T7;I!>dwtkqIffC=GF}m0T#OPwM;78O&89T|Cg}_EOoAm7UG%3HamkUU} z)FrR2+2r=k!0{?>`xXIl+qVpeY2Ql1KX&`pfC$sR^@Mf%HUT#6+X~oi-wqWYe|jgv#JkxhIi3lhd!k&p$Cb7L3A~L_A1J zW}D#2)(`%)OhgROt#AMm)3?6TF=f*aULnleJ?BkL@)Q}pw@>GmM^WwRd344#rm#An z%g5<}y*6m!z*>-&U?^FhMI|R|bngsfJN(Cz=jRvv#)=kRt6Y09Aqq~%V$dhoBopT4 zF}#z!#d;O0#O%Yj>>my4^vi-PtjHey)LdXbYgmS>O^(3mpFrO&XtMI<(F`R((CEU= z%IQqOHC8t2ew>GxP5umLxp6)L!d)u&dfwJSMfvDD&!cFkPsbi*2w;lm(dv8zKpyWC z2fQ2m;#fUr(Ck@(1=vAi641LMyjQ}-wHqXxkKryOwrxkE`KDj*Gm%UA?vp(kh9X0Z z1XPfFcy^?tnlRii(ohFj_H4et5eR!W-`zskxL*(IP}^RpnziuqmUd*If5;28NhlgZ zP6Budw~Olwv<+@10V-Jfiigm#hR|+QOFxl>ieX7Ya{;@A76UPamJ>FFwrfIbN$7d` zVScnxg$#@b#%5x2R!?N+l-QL%oGwfFs7djQ0k;DVe~KH4@GthSRhYRUfxe`*TCoGA z5GrmcqbG3t+*WvPfVz*c;F3TKJU}ul%`HxPI$$H>Tt{(QKOApE^zaSDxpD!^NlX!% zq!Y(-Dc`!;>B$$`RR1Hx#F$GI}@& zk4Y>OWEQZV4|X#~fEet7j{+_OEFF;|AT>mi(ZkD8&S>J_2Ak+%Y$kFxvx+}Wj!yyH zrmH~n0qf)wL=E=@EJm98q~cb4WV$2tA+W+LO+*ck+6ZaZLYhUWmr=tHA>~hir#BdTUOmZ?6jhq0^sNpSu%K$SNu`_yQC1C_3=AglA z0PEfuYalT!gK*Do@Gsi{%cx-`kS>Los3E4xZkwlnB}~-tBpBFW5voAca1mx#3BYD{ zRRTCAYA8R4(ow@xj)QGtK^--$Wo8pKY$77JBE%Ns1?|j-sNo5CK^I{2f?j4bQNxVU zKsGvRm|j@wH|s}oP@3=I?~NTDH-g9(DMHmUg2(qkOWop5hH^ns9qLQs?r45C8!mM zA*h3}hoEj2(gY>OdI&00$POY#f~tWTjj97|G^&xX)~FW1u6>uXJPOe|85vw~rsGBi zIT*FGIz|R*N!&B+5qHHBCijW)sE$!Ta$iD3b6)}2<-Qt-;l7S=U+(XKwPfTky1Cpp^3{g> zb|5bIy?g@hqvp~!tj$UZxVN@3f!TEo_;UbeBq)bf(5tH9-?O7kKxGWjIauke1mY@Y z4G^Q4^@NpThA%{4Z_=e=pP(t*fxugf{Q;`j1DFH&Cs3}8iGVSHzXiA$up5-4TU&ty z8I-%ps~!AUuNBo8WspI+(Rv`Hy6B+Xaj0J}0jKYYON>l_Zu#zh6QE1anw@6WlBK@C z4<$2Fus*fiU>%*XI#R=69W|hlh<3(W2x|ps2ka_97Z9TWy@ZXAW1O*_K`m;L%A0{( zr_~oWbfk)b$-o<5R!&4aR8@ra%W46;FKYl|Ue-+5ylj0ARU0z64plc1?N9}`Qtfdu zI%W~z6o;xD3F~*L!k44LtN56~xiiq?YJnK*-T-*xgLCwVn^_fub4S8UYbV0s+_8&c zYkM8U<@xahUoY%xKat)sQsVuCbV(ev>6C&`<~G7RYb z#*-j}DEnc#&E$|@lho)Ovr$9_QIq&m`Ul@v#s3C5A8>(|M8wd)t$+T;3_5HS%w&eqjTdEBACzBA>F zN&Wn(A-tRM5@Thkxvs{#As(Z#Oi0mKnUK`jhAAG6Z3g0MY#R`xv7LnbXe^r}MPr$e zqOnX!)z|}A#;dVRNYPlCz_6duSkB*5G*%{fHI@lpjU{e0wg-e8jSX&-)Yt@Iqp>A` zU5%|EVl=iI2*X0u*gBSwVWA&GW93oj8GpaVpBne`>H*D}G-EYTtQ0f0$x2br8jKlh z0^%w~D-fd;9fW_5O3@9%jZz3Ih&E%nfQ?cV19p|7oQP41Dj-HFYFXk(QwkNFlWqrM zR<1$lS(%KZP3{{3RA+bTz$ zv%lU*+X`6zMsyb$Y2&!jqWaPLB5g2xT+OhLcoWxI48s`S0fXm&DV<*I8MC?00+LF`%B$@1c=Lh!-z5u;-F9@e-cyP6-(T{SlKy+_B#<4v6z`vw9lH}`Cjc9= zO9)G{Q!Xk)R`(`lIh-Y;*r_gjpKPtSAKV7aNbK{i@G<=$sCNZlGC$ju+p!eDKK<1e zt7m|q%lMaV{gGb@_(1oSh>VM|ha~SlCNA$rlhxL++QYJAi@`@d;lm5%P0Y=t-E$K& z&3npC%re1y6Ei!z{t61-z^f1WlorgxGQk~qD8rjWVHad)UxWKb zs99svW9bDr4Z6e!aMVWJ=McVop%4jV=Uoor_nyR57f9(Mt1!Id0$ig8WUE3aC%O+1 zwm81O5T%D%+eh}-!F!odV?M~=Nm3)I zpGNy1`-M`9aZ&f;M7F`W4D=g$xv(@;T-q=t?kjWT<&5J72;U;qD>I7>bnhg3=+1u!My4Z zZr-Ils0}{D%~|`X3$@3UrQ8TNuIwj$BOLEEk?R589q*591B1(c-;SO+Zce&LUpPc7 z;T$SMF793$NalBiWYLt?vc0z#q6C^S{`bMH(^WU2CZtUpC7e@E_KVl?rNH2DSm;Y zcjMm!eUkS6#X~VK`{G9RR;qdYIwvdgmM3AtH?VBseSZrTg-MU!?c~avRl8{4_17l7 zgw6LL8Tig7<$Dm0wB~D*NY1uugoGqS{9z{;-s&y{Bv2&&yc3DPGXVh!AQNX>h4D{; zR1%qMl}Cgg?O6^96Gddy&5CGNFAEo;>KaqiR6MQMNSM*kCXKk^Q0QRFDxkzY;ZWi_ z94d)yX9XXCNYd247DRX^Xi5NM!SD%Bp`D3bh*}l_sQ{A0TVF(E=T%9! zB>t{b5SgnJNJjh}XGnMos;V|sRibnqk+V_NZa^AY6)zqY5pqlY;&>_vo&lw5VdiTc zN7#2>o+ch^)rylq^>*|Zc2aRpS}l@_v**)}yoxJc4=p+*=FuWK)wAzjrtVYA!)GP- z7%b171m`$!w$HME<#UoZdTo`hs*yK(U3U;Dg>Nfw^qTdgv*8=P&beLrjNTi)ygp_2 zMRxK=FZrR~LC|2S)+ggO!WJ@lwG;K<^j+E=-*YOon-Ve_*+t|9t&yV9qmj8p)~}Jf zc{P%S4??xY$S-R;08h&`A~mu~Bb%*}^{n6{yoVau0%W~(NsVmhQ*4M>v zKzfOsi(2jml5x2u@ zjT((e-Kf{dX6eQv*yr^Hb)0r1;|kOx?Z((Yz~tPe z?FK%s6ZW9z5gRl;`R+fbxjosgU*@^bZ}n22d!L{5rZCjG-qgTX*1fe44v+i%q~~#4 zCN`0&Tl;t~v^{sfq#d&FYE_p7(n6_^brZ@4*vrxu*y3ms3>%R7-8O*S7HMw7$3ui= zM2rY4ffy0i5H=#LC$d2io-+;l&3cSsX(eI|OD7OlnR|$=->{t7*RWiQgy5B`CaEt8 zjcks-M5)y5Tigo7Ug>tWen@cXE5|F=PhT`+x~hQrSwZv$u+17}0z2E~o&?p|WcRKj z*`_PiZRiEED>d?|>`E!pVBtSO8ZEjeDUEiGY>qS}T|KP8Sk~ODHo&-~tC&xvWgQGD zlmnAit_=)V5us(h6G$x(WmzSO4Sa?-xFpgp@yi6WIxBIHJ3`#7&e~2|nt1hA-50l} z^Edu})&1z=*&p1XMq=swJu=yH$8a@EvR5DIBs*@_L&-}u?Yp;CAtgDW*Zkfypx^O^ zy1Z3h(Ya@xz2PqX(Rubd7jbfmY-U)qr+Y5ql*9JpFgqBw?PcwgY_W=bq00{0xGvj5 zLBc?Ve?t$Ii0QIjKunkIC2YEE#?{}_Wuxb!9_p_2P*K-rT{<6+&%oG#_qZLuj0ifu z+qqzFlAWs(PuJhMBCkQaNsn~rP=VWB`2}xEcTE`^Yc^ct)vFbUm;*@HGJZ1>>Pa6) z_2@`Y&iBcIlAZZLogfKdXP)Cp@O0)T)?hkK`-WaGJ53j#veU#{@#X)B_C?rK>E5n<-XUrvRF`&twr%QfA6u{Xh2JJFu!^YagDy_t~ewDG7lP zdT1daB{b<0I>7)T0s@L4qJkm@sTL4H5ETVQ5EL&cDou(N5D>6}4Fn5z1k|8#iP*59 z-}B7O-q|N4SFZQI_w&BLH-DVWS~Ig|X00`A*3{kEV}~5~VHOEfOX&|U1wcKNj_5`L z#k&s$UJJs^)?-5K(Uhc?=4;^3XsH}96COmpU@T-+S^_AxDzer&jFkiCrCrgFb;fYT zF4(;!z{zn0z(N3ea(quwzx=@>et8LVUXqi(>*$Gi6l9$qFR@c2tc~0Jg>&BYXFcQP zCo|R9Cg;2(hZXvo>Oifh8MH>udEdIi79X&Y(9@QGsHaJtx?{W~haBBH zK)`WL1-9f|-AW-)tZpThgDPbpT4wAAk^>wd9Wi+tP%e)K{SK8Rxs3y$H^Chap3rLuxUASp+z9odaMg zNfpj_H#!NKYYzc*k1%uPdvl40om{dXr2s5>OwT}Uv27O78$g(&b_EWCENKrA-ARr8 z=>-5oS(2LP?kv)>$U8;)ldQ`m=5|KJr6mBEE5(L54xtn5$#j+N!fYS+rnCE&HP9AV?;xGP9U+KF#}@`+1UYCBOA9-wvB zRMo+yD}DDXz9Q?WFFJ$7oZ(nU?efRHjZ=gSc)%_4IxpDT!&@|5OXypDYX?E_)}7&qqTh=Kv^RLb-k_SF3_66h&b*JZ6b^wrQ2v3f-})_&fu|*_j@dkoGvyS%WOy zQHUMP345IT$C@#vmmyMFtYeQ`5^(JC006E%&LdD9*FhB`LtA8u-%! z+(`nC87?TPDpG*Km0Ez|xojOE>CG3sfrW4aG{c7gY>Sx}K!63Bk`!QYl_LA61h@$%CxZkWlhYl5V{(Qv z?0Bb>2$W=UT8_toOZzES`=F$glv7)mK;_!lv{L&mU+k@_P_8; z;LHlP$l=U(GC&*S{R}&tDInnG40Y8RQ6kIw6l08otCh^8uu}oJeYqupV*7H^3P?W3 z$@nzL<~hJ-#LUuw>eL$eQ#wIi-AMwDRW1NfY@Jl6eoX6XcsJ^l3P{@C5Oz0P5}@t< z6)`ygv;&{~s;5(<4@YWhgxg=9M}`p&sp9~q5}l@zu8xKN^0*)k8)kV!*hUZT4T>#`c_;;TY^&o$tgJJRcjhPMbrd97J&cGn38!A z*Piom&+#N%I=g5~|1ZX{{{QDeoF+bUqahAaM>~f8ky^$j%Wv!xV`*Cl!nP)C^1I7I zr|ruu@93ISb1cl8RqZ#ABYgBBkJlqlKzxj@CYNv*)7*~wLvt$!ke#~QhTnqiJwU** zy(a-Uwl`so$M&WZ@Y-Hl5ZCrL=v$2K%|sS=7#<3sWYac@v2qxG0~VG8y6XrZ0AjAD zq#R)l{ArWBhXh=c%aV&529(KN>zLem=fmUzk|y^uG`A%In%sc^1^`edH#!pu*#PNB zpp^sArcF+>fU>m>Lg*e9dJC3&4n{Kj170ip8^){@9ub3hcCuEu( zGYoHpFpr~{a%>S+K&fixk_tF7%M(=15`()3s@75)nw7y#c=H|v|}e&czPk#7?0K0&rEZ6~fN&pH84e6)ZXzbC;$fs2Zi_x~x3i zMTEN}KwXpCm&EB#CW>*VI|B${;EZy*!)kLwMN;FGhX^TFx~rV_I0(N}@~8&vW>SeZvH$?C60v&TWp4?4l!&mS zM3COQFeg%ay*$#JlkL;ei_yyLK^c@BjYmGqbBu>*T`0K}h8@Xe5GYY{#Tt+9$WpwJ zqU?%nIJdK1$r z1;dVfw-YE)zRzg7vUQkbyBu-)(&^eB-Kq09Nun$CIW&o&jPLg#w2YlO=|A9fpEZiH zE~kfUgzUx+r}wkfUQYiL@)n`>7()v{q1oo-V21X$Ngh05LJW+4~d8qWjPLc&Zu)IXz~5Cu&i18oZFzb$Z)+N>ul@oeVpoK0u&EQ5T&CM>)e|L1~UiILmVp z6g6jh4&uy3%}FS8RdwicB1(i@3a6+!8Fdh6ENVIXK1oJUs+@h3gyRlII0Gj_8h@ma zqh3PWB4Vaic*QJXkC+L&Vs3V^DuaEY8N~c5#GDR_6myT$#QX@7Nw2*zk~{v*J$L!F zTybXtb(K*O5VkUaDrYL}^N zcfPJ2o1;jT{SHd_!!ol_3Gq<7B7Utyyz|+P$q#mmCm!5%iK?3-m>4>Y!UpKVhM!hg zE;WAo53Um_%v+IBw&X6SuAf$@O<|B5SEp5#4OxBu*6M&aph4YnCx-OOZv>Lc z&INYqmCpu3dNz(%{s<6YW}(AJM7&on+MzN$tHMo)6atP{{tePPBT|%J`3WH8C_o!T zuiQZ>8zeU*GDyMk%DWSAyz-#{JVr3Fl&%`B5jX#daH}T0@`k|3_Av>)@8r0t{z3{meVS>LA;b7ee=02)sf!{ z0FL~&GwjH3KLJO6q!A~-Vtw-h5(e{%8UO!Z_05ClcqB|NdL`__o)O6FXh6cVp#4(9 zX&wpx@R_om=%Hac=cz1&y_24K4gp8HBLFzkoyxEy-Gu~7lQ?Yh+wuUpq73eLeZ&^feM-PxSf%681=fu&1vb zLJi8~ppWK25^^wpV3uo+qjb=(Kx93qqsjX@EYcCh0dicsZ6_IaM3KG8ebfuw`9{M{#ICfEb=q|$X&>e)wVjV;##~#WaN`%YBC_VJ@r7a;R%QV3B&?^HW z^Ee*5gV6HhEt$GVBdr?c$6GQJ9fTvlOd#UqM}%9lyf}0oFtUjhF@5;HK#&pA+oKPE zJ`hq(kU~0l>EN3y&}<#+2-JnOKpog4P`+VT<{{+U?FjVK32wiN(hc8^NE`rAeT#m0 zCW~|gI)HN10?lLC5$G%ePT#V_MFdJeJPAlwp!CD*1ChqolJWGzU4-L@I|z?J2O?9P zK#6eK8l@lpATZS(y7a>z1%k(yB zTe9@jmy%T!CO!2sAi!vepr>9Qh&WGuqfRbILL0G^y(3H)*1~k)LSYJ1aE-A$d~f*_ zsx`Qe5MyvgFf&Db}n4un;jP>iNWXOa?$bJZio3p(Q2|^)llB z2Z42dpP0c)v79*If3VO$L0XupkcHjzlp(s|mDtc$!>)_lBm)_K0ZiivW&a(!d`|2; z1AK+Czap>o?r~c@L6*0)aQE>VQ~X5!{yPAO`&V2qHY-r@yaQu5zsDz9G{M#Hn&@C= zRs#pWyX z{?TuQq*K1SVPAwBIEyBPMERzM-3sR}u5E!Z@Cz4UMuNNyhqEv@=y`g$AucS|Srn9M zN(^r`WgSSTq%>ao-ZY1B;BM&Es&0AxO)&#JAsui1-x+0#qm32*48mYRb?zoyL7ASq z))sTn#+ngqP4;`q5FN$`74Xg!A@1sm9#ib#c_&me*hM&StmdpqIM}2)NTYMPh zwZNu@?A7*wx<1kCx{ydmn!$KI%!kuF>AekmdM_a&V->#Ct9~(djl>Ic66V_WS^3zu zuMA9O!~XdlOMIFl!@6!uv76kJ>FXG_CyXNB#)5?uy4>YB2|bs)95t|u{X;Aux>XB| z$Hb4W1S%-HrG}z=`xU}=P9PL?o*Sr*1g!@`Qv=6!l4&YS;3hr!9mo`))rrm=ph)xv z%xm6(Uvvgq`ql@_2IC$%I1&#4Gg?zS^)~ zEU?4}byWE2ws`F>RfU^&@QD{1%djwSp&0hJ_KW!^fWacXysc`VjW4fU`*=VMnhVU8 zO!E+Kkd{7*G#425yP1|)enf>!zvvg8zEt6#_Sxc^zss-|;T+R1u3ZN@=NfkV+ih{Y zwhDiGkx$&0CBtY&^@jM7$6FGxuyXX_ptxuXboZBihUnA?z(@cyuCm0;+8XfR;uAgV zY2bQ4+(_+ zGiq0)1vO}IQ)K%p4+o=v7$ESraJWB!7>&T{q6+PvH+lB)#7ke;StJ_k?RNw&uzk2`GGVTpy`0N91pt;Y$m90d|ExrAoD zb`k1FsvHzU@=*A^y0&;DMFUlL`^B<~ z8u$#Wo%@nCFm1FY9;~VWVRmF2230o1k{D3G8-_Ur##pk?Dvc+*nty=uLTGvaBumVB zR|EIn?Gu;p*Fe*jKC$g>4Lp|!3-*x$K)FL@d`>N(C|gHvutZi!18+98#p9L+K6wvQ z$8rkLM)mk8OPGm3wKMErr&wZTDHWbM6=z>e6)v^g6m81NurQ}%E7Kh8R{jAz3ibKZ zh`SD~d3T3TJp6Ex2H5P=4%x5xCZ)H#65xy3g8gPH8vjyc}QJZ;^p^Xarh22 zucZ+m@%$XW*!WB_5%ofN)2d=I5f|>qAr_@8LO!8nUzM+kh&V_2cE&RtK)NMXD1CaSI8quID5@|Yg1;|EC3{vmzi0#h?rP)(ZYTZk&l$U` zJm@rPgPGlxAyMmd!@lYhQ@nJU3?q6iqRqGQV{O@BiO;8oMC~RxDb)?PWVW3J;BdsS zR$|>f6&`8rmm`L`q%JbFfLmkDK!dKtHy7}6k}x96Zs9 zX*IwU!@ktXE}dYC8;&RdMEPMGt1kSI> z0QlobwBbHeEU%{k#0^Wa#G^LARjAd06+%3-G9YTtLBb^Tr3b46=nuVX@V+6A61WY( z@2zcd<8J`i^oJVw#HvV8)c!GOSeK_+Vq9Ad3^~^lH^MuUq(6H>h(nW64)Y9M4L>X$ z0NIsN+Yr+l0RX$K>SHYN{V7fQL|a2dY)$PcZ0ykckmYn)VTwwA4LtU_CGKjaf%7`~ z#7Kw0u&RD>BbFCro+&9Yzt;8j=oabFHWSP&I@92zOcnzwzdMm(dpM%BKJO(1>2<9`;h*(+z5e^x=Y+q zyiPO^6uaZ*mM|Yk#ZMF=`#ZR=zikSNfsGCGZeZ<~*5NzUL^P+aA{ixbo?R9{D=ifG zGI(}&46mD=XQLzF%Av46Im?i*rj{B)RC{EyM&TATGb+^2M145hl5c93>djQ#@v*87 z^T`j9l=|HV)Dukg!yHSjeej~ri0ktbjw~)j1NZw3b9hr=8g;crFHG-CC1b812eicFhDR7v zuV_qMvNHpO_3h_E74$rwWb^{c$KU#!di1nZ4+GK|%&Oghe)KIXdlqt}U_K-HJowCk zI0A9NpP_b!c@CG=I)I7_>nIMHUe7knL$$w$m5>~rT!aO2{5V6v+z7GTFXExg4=`ma zbr4g#!mu*^awDQ06x-Qqy1R*b^9)Ruo1lBJiia=;17WUjf}cfLHk9Lw)f|rn4#aX- z>7%fMuMW1w-qipO0EoQm6L&J^djJcYnPMe@F96KNCotDw?L_A3vBxI{U;#(wX^8J~ zm+Kx-c^bdy6P*Y!&&um<5x{wKnWs#aUz{Rab(c#g1W4Bl{@6BWHbqp;-3odjR~n#}t3xg8sGyz^sdH@hkzx+4+_QFot<<$NHcT%hRQY0C?l1B}TJ4 zTn_R!ThGyE=9^+H^&RuFyj$_c_59PrgD=5njA$E*q$$|q7gH81yf;lr;h`t+LM8hU z=y=24I=nQ|6kBy2##=t|xK6*aye-~jUqRk8q3>;rx2!V=>lNVzqYb4AFN1SK;Y&$P zcn!eKt9(im81qPHOykL5#tg~Q7XIHK(|?|!REg!p0da-K0Zk&9OHwVE=Nqgs$dQC~ zi%S*<#I+|5h$}RXJ7)&y`Ck@Zm>!q{Wj|!tpM8M$M`|Mco?&n6VT-RBCLW`jRAJz~ z;SYZ{RlhBgCLi;xSGJ;|z~5ZXC(dFRdH<*JOL8%TdS8|64R5{365qj5MtwxZ1uxj* zU>Jvmni>_NxPEX8+zGkiUg2J!I8+l6wF5(M!?j7oU5dEU>7fv>aR&=<6@`y4RlFEy zy||HG`dp*JyD8#=g8uZ!XQsx>R{1i3iasnXvqG)`=cSe}v0VW(D zJX$27oCRHlT#onE;VPeK0$;22d#3cvW_sc-H2k6oHpNPRZAPbcDLhzM`h;0GGTwub z`@Ye|9!%*U&DxPU9)#K&Hrs)m)$e&rV0B%T4#SBzyZXe{nEI4XvarX?Mv+ZU^%j3( z3+5^9v!c&<$RTS|WTgk8st~{_Ka#+b7OB^W{Cc}WK#n49pH)so_jod)%*4nG9)zM& z)=MSHN{xhO7onooS**-3dJ-MYbL5hr+&+E)a)B%EZ#rU8T?{FBCKvU#%BNr^t|P3xMn3ThTyi$m zo?hS+3%bZMaP@TB#mX%snguUfA{~;hi}YUn-3f4qC|#uQw8`hz)|;lJ z@QXYAVh6>Eyf0Pvxty6_%TSytQdUWHd_Dc*W^$>!VMn*w;yi@wPBHBHIFj)o<$WIH zc|8|1<{_mcVr%Q`YX4pezty>hn9v(Er0}t5F6=4y!>?hJD8mh`OtdsIz0*8cI|5F{5zHl!)TDOx?{Z>?_MW|Dnw*b2Axn>Bm0V#p-Ug(KxwO z8u(R+7UbMqVB}`%Xxw)Cnwr=XZI%z8+mFFgZv!fEzfn@ys@%{ghJsLH5L*`|WU#v6 zutFd7yu>eIaaY}Mic{zci9Z8qg@Jo9iy$!QdrO4j5|dVZp0?=B(;*!a@Rnkw{p=GT zF@jmfT!gbg@D~$#6EzNa4|aSHD-bM&#mxSgxx#D$i4b&ZaRYiQs}Ti9=)(6^$7IR}djm7IY``Usz3*|&Tx zd=McqDzCJTz<``shTmf_-^EI`97GZAj#5{Y@!^XCNWUa1tY>YXc%P+$ww1QfFAh^W zivx!B^*DU8g-qxQpx&K+vFQ;cW6beoKCu$ZS~BJ_Jgm?d3wDVWuzDBQ2KzN3j*&Fm z9TyWY^5OAIl;IbwE0_R|hQ zS_1&2mo}`2TVO|Rt!j_i2kYh5IkyVYoY4&sJ^F7rT-RR%ZyvJ6Hv={BU|YPCex3#% zookAk=PN*155b@ClP1-n1N^W)%@D<+PhtOU6v-7WIzG>i6L`nuY@O$Jyw!K^pg+tr z1=|T9IC=877-FrH=b}=0@UE$*R(YxrxqbhT+O7)?@vT$qv!3yb$!y&}u60HDk;&iq zRZD*vXp0QZSF3LT2OElwvF|X%&=rdP!aT2zHan#r?B)|K0d>C0kk`QJWx5U-UWE@l zbeHmnV7Eo*(KVxGu!PPIL|A@?s|QS&gOH!$QqOl>>><<+XP1K8cd2wKBs3#grRwWR zmBmzV=v3JD5uG0@CrYh8&nK>hW8HbGQK~xDj_P2uuJZ%x!!mn4x!Znki0W*}<`|3H z|AiqsZwa}jB1V=PV<`nHGQ`4yUm_t2((8`)O?aZ1dq_hE!&u9`uOnfiPT(e4S$2gpo z1aQ%mP&fSFAbqa7O@WJ2Mn(oQI2R2)DbeZ1_2>4QxkPervY}*0A#l z;9I-lYDgu%0&u@sJ@f(UkwV}ltVN61%P2GhV7tpw!_z=H2Vpin)MqzpFC$?8`4<(} zDmh&T0K539k$uQZR&w?rE4>$$o`pOBRHc^^IL|y+R(c}|He`>iuWCp>!fZ&84PjdLzIK=C#vrV>Z!4iy{G3+j z*P*I%Q}(PX*q@08Mdwd|`4yFrA8)e1I?IyNvd-APk?PzNPP=rzGDoUA`JI0aT(L+M z_6g{BJ{1iN)I1wQc()xWgGaWCzy|G$kp_xJ1MA_=|H;x;(OhJO0I& zm+?=P*S+NOP)e-rWONxM>3k|Vd;{1s72(?LLebb2*FpIiaj0zUUGQZ)!b3Wh4bMUN z0K;K36g~z(90f4NND60xR0@HRSvC9!IF$jQ_HV%|u@2zU003=AhGOSkjY1G^H>_;< zap=}kgyl!8saM+x;G@;iF>fkf!T}YbJhM#XQgD@=C*p$n7I_>yuo_j7q$(xlp@@?R zQ>hRaU9eK6hoKdKc(ewcT28|D?PYWQ-mWMAus#ye3g#hgpON6t5 z^L>>AG+7P|vlXD(a$uOQ08N(z!+Zs3z6euUV8S9aVGbkhX6%NmgeiWgvri?zr*%|m0_~7 zB>;Z-FGMyD1)x|c6=4?R97R|Gz)^&q2s?^!0AVUZ#4#{zruu?;fRbjtd1AiZuu2h1 z+kv&j5hMR(15Se0keOO16OQW!P$$y?xK+sk;8bN2!cJ8dBJAqqMgsqoPVSealui~P z{BPDt-B5W7S*|&C1I8J-MK!;CfuyrpIMu9;_|BGRs!2o%Q_VyAu&s1gkSB2YYl_uG zw0^v1bld=?VstQgJl8#HNkr?dT)e`cc^{4r+t=P^2?n~&BW z7U$PTxS3&pxZe~XGn^D3_T=@_u{T~R#7j(HUHNzQq03I=n=OHV2d75r2JFA+lA9c< z6)J?onRc=WW+EB2hyA0=psK+!ItRy~E|*pcWb1giNTSQgjkW zuvw7=ZV5a*(Pd(C@CKa$RS{i=CJXa!vZux)_&g>G?Q)l4_uX&HmBcP<3>-x&Y-36M zkz?EtcuP*(AMI@jQtfg>V9MR9eMu~Bc72xvY+vF>(P|>r?`D|l&kdAZG1Pn-EH%Qo z$phxyp|YL@mLM`rzpXnW-A`7}C7?f9y@z3ZLYz)p0z6RduqAa{3Qq-aw1tr(fTu*`COGx*%FhSy$+-JRWleFm~umtQxKfiN3jpefTAu z%)?Q8g!SsiZ|@u8Z;Y*A*d>KOde0J9FjssUl+pr&jywS_`)?&QUAijsE2`53c@^wv zL8?;QzoT-1%g3K_9{q=BoX7mf&N!ojCieP-iSso$o|9~gT!3}b52Joj|E1!9 zb1ugz87EnlI=1M7MFW}V^D9ho$IBY%hLuVGGaC2?2e&?S@?8I>A!e`8F^^v)#FWQ1 zZ~+Q^?*$E*I1RLTtp?t^$P@>iJiYt-L{qFJ$wK3RxVrrx0F~#dQma-fp2;LDFN0)z zS(X?~$^K(tc@0CfpfH*2LQFB&Qc46mePoM>1AH_?hzlv^)2Iy@?-#=;CB~c?pe73P zB?=sKa}DG+Xu|laa2xMdYnCzryS`&V?fc>1q$0s0b=XI);llAyeeF~o zFx59;*-8};Q9i<1;JPu*!7I{2oGwKl!2^M5q2&H zM)zu(m_tdL;c*zx_aH^<1!kq_fPt!-)e+0V+^rQ6NRf_z__NB5HN`e|(AM1VkZ0~r zT#F4?qEk&`Y#hFifo^Qxgdc0~&-khyR({j!VIjIQR%91-3W~H* zSbJ{wh#@Y(5_MXCETxW4GetImX#h%&`Dq4DAb;le9{oRA!}La@VP$mJORdR*=LKpSy5IelH(UM2r#B>5NFm2 zY{n)=$pltBfnzS6P!8+%V$>4dPoO%xQJvvG*`mD@llwG=(q>5ZFp}ARpLojwj(%W@ z+Z^ELakjX;xlZ=Tckl)s;0dhxeuNcQNxIY?9OLe&3mw|TCr&oic}iwt$uTM8g&2Dd z2$aFM8B0#~#b%r;e^s-p%K1XfAwX8m9WKNS9Qcr|I#JmWHw;D$8B#K}Z{f^6j4LN; z8$e*zE4H`_cS>ZQmYtv!7ia=;$!Z$dA1*d#NEU8~lNy^aY8#Xy1mF!w?p&BS*)5VsK}aHUXCha({=&G$1O?!>y%J7-!_ZSzRpG4a4x9c6%Ti4wzyS zBD*3oZ8pDv=0WtDY0Hx?E#ELiuLU?euaAFSu);6CqHZjLEs6s+g3HI=g<)dM*EgzL zToU+nttrZpmy9VHIP^6RRXn5#EIG$7uYUbOo(JGm^H!KlHsyCy+)MtmoH(E}o-pTy zF&T3g6#rgIhRM8u+BvX3Ut)?A6!7Z-jN`amr8c^|IpcWGU4HQn;~SZ-D^Zg?Y-HAs zIwSj64r2AiYN&4ognc4V$;|>6K(sDzlo9S%p%*a;K87CU$I$5>{p?s|A*eD zT$DosXI!fNZ)%z=wI`dJViJ|(e~r}KrnL)T$Cf?se_zwqGTLL?96ai-M>(Ng4X;pItLup32B-D*THHFPJ(j4SVPvd<&2iI$D4DS%?15GPMJxx= z%uQ!T+_@80v*xBk`9nxyF2?qq`5l%-jTq!0?$n6!4q}c*EOHQc8I2{;=N!abAkKLTcRzsOs%WFTjh5kafmr%Do&ld{ zWQ2!q!39qOQ?c9I3(NC+0CaqyTrh&MdOp^8(GtV2Dy*zlFn>+aFY9s# z$I-nLhAk#H!1Frk;&{Kmvz>G2h`bQ26z!k$kJaXA8b;Lk|tU)L6Qf~g(b z0Z49ai`Oy$G&Kxq1K9T*2Gg2KB$d-aa`2T%p3iZR98sixbH~j=_QZ%7P1GCJ9CJS6Z5nNK=on zg!Kp;;0Q~&I^r=nMLEhkFbAjrM_LEr3{r&S1}PWe3{oy4Zjd6D{BcHG2X+Q2vnFi6 zR83aL;Z46$Lh=2R&}Z0`-;U9;6;3R-{gF>;v%iwfi(XL(pQsM8X;}iqJu?yjijEBQ9 z004GHqtg&(yLkGb^!-MKNIS@b2%Cth2G{iQCocd`LLQU?!OFKH5?;fTyM0q3s7thl zA?&i@tmi;TT6tOfmY%4+OL4OqTGO$=5n(bG2P+^to^K=y>y_p3elXf~%%;xpz_}!F zkB7kQZ`HukG0zBBfyT^b#jY_r$mXvH;52^^!@Bte2)oTsfLrv>Ha`P-P)egDo&xDk zV60IeZR7>~goGWYs`cCGdOW`+8~BB0%-x>Kx4_Dp>}Ab8$j(5jO-9*RZ~7(|!#yNF zW*8CXCAV%Sw`M{TGPRe`{{48@gS?$(L`amW8!`2*Qf?e&5=LEP$PkusOZz`oyFY2qm9(Q3^$G009&+{T>F$nQX1O_{zF*`?@z!=6 zR3uA>lBFRtF+zZ}(Yr*)QXYh~G^Nc%nS2tHCz|OJm`fm9G-=FC6bTC-SEEHoKMcNn z(MLAyLr)dDT&`T5jup%>tFwaCDw-ildgnh^tpna_oh(`{*(6pA(w>DMSrxC(v~iZM zN_{ipxLHiyu>p>93X>P$BnOkBFLE%v^m&*~XZh(UQ!YsStNRC~K7UKMasfobIc9vD zTD?%TP4EBp+myRVw+W{wOn&t`zD-fgtKDTnDW}@TU%pWZ^)6JWHaga(F|G-vlNwtE z&6Czd+mBVZ6%Q543TyNH>^+=2=_={)$nbpx&YqVDb z@h{i6CaLQBqPJsXLGjz|?NdhRk?%$$zCAY@fBo%b6I0(J?Rg!WaCGH6K3JqZ5B@i_ z2h)Gm9{3=tKV)O=MYd;)>JLNNAGVxPTV#Kj!UorFrqIzr(}!xYO7 z?ke1y<+Xt7nDGi%$NVo)xP6d|)eE0bERG zzhH^2PRtnsz3@4g>2)==IACuDQ)JZBF=q&z`~uH8H_&;`5LmMZ_o$p2!~vf+#G{N3 zHN3qf%GB4S+xEo6WKP|BUga0zhB_weQBzEFk}bz4ynl3(Jv7b`C!82Bpqxjm!&Fne zM>6+=uV)B+IMEQRojh^Cb5(6Iy_KdG2V8x^7Aa0l$-rATnqmj`j%9W3#381=*j1K5 z%4{M2?!+9!T~12_!i>NPw0gZS#AXYLYvYtdwLUmVEi`b>QW+H{fvu=1JYjbiJ7G}wG}&YWYGai{b-7hoI;1M^a%s^%Vl+@%@N`zCng8` z>km6IJxAe$xldEOq_ZVn!=(k8=QXUJcgB^q#*@*WhpOW_C|qf8oR7LqTxE;R4&Y5D zD*f~sUe<*5fh%Dz**6@o^J2Q$_!_^w+nJ6-kd4RsF=Uu)Fpiu3us~#PKtGn#W$$WR zHLM|YXeLCHwlXRK6rIVq{jMQKVcO87o0>_>1h=Rn%_XDf#5aS4>LIP(9#1Z&EfJQhUw?CV74TuZoU}LBUK6SJeZzM=yH=fCx z2L?;v{iprn{c%AF=r!z-(16Nx0AaXYxxTsIl9sr|Fg)(L2KHNC{q?3;geL$w61NzM z6g<6qT8er1sU`3h6On=w-qTV%cC&gfuf-Ikz_FLpQ~bV9J)hSCZvmQ%QlUXlq9}XE z57-C-bPg^7c*4TOjT>Qo+0_y+FxKXP#2YhKZjMoiQsa*`GTAQ%J{1xzzC|y(?L}K` zSfc>7$Z35#QHV!z-lN6qi1z}h#SpBg$P1BjG`|5wNO!&01$Z+S1AWUiM)cm5g{uQN zh*>+S<4Pe?aqcp0jLp>;xu!2!QWlWYp;qiuOl$c%s?IkJPfM|-7e4xpor0F=Typ*A zv=lF6b|h1LgcKC-X(?XnuW1}ciWUt}89qgD+EUx_Jmn3y+~+Q?r=qSc_i;7LJOy6M z=DQ2MXT7baXe}Q$qNk9OT7~rz0r;=H#~{o!OnxK_Qp(}E1ula)@+kP#6klx)h*rCl zR!AOo^CYP7n6h!LK6f9quZ`$dUlhL1K)CoTGXd|F8D#l$H)hOpV4S6ly{386OX?GH zt*$}Wp(aULd8_^!j!&@*x0>&BpO%nyU*J2F%17fWk34^}_PjA+RrwaDgmFBt)idm~ zyqjr%T*W6YA?kO-x(rX)%jjy1=1pWP`&pbGtBl$|#C0ckLCsah1pzIXMP{5bwpwHs zUWkwnXZ*u`hba`^f9}zD9Dc_6gNzzz_Qy0kI0t&21N?R&4$)(nW{i9~qtub6$_Tf@ zf~da8eiK+CBc-_6Q5{u&VT58xnOh+L4sMZ{p2-O7+c zCq%o-)zLhvhpg8~pqzTGJE+zn+b)j1gM#yMPQC2|m1DaQ4)V+ZR_t@IVxP`1maLCp z#lAbj?vnKg0RP02wQT$>1xNd?Xo!A(Dvao>0WWR0a^ZJ?~>D~ z38q?EZaV{8)7RmVT<)s39c-wH*fQKD;k-mypdr%rPCP?4!wytc-!?f?2d2_UdF`-ra6Ah zCpI&TG}S&f#X}6^Lf@;x|(^BUUP20*>vq}D&pI3!8Ho! zt0zRn4H87iubzNxM~AF;Df?j0C;U~OcZ*czy)&%} zFK9@z-m08zt87C1gGH)xh*c5h@H+Sj;Tov92(Hg*vxxjR@O&0H*6BtW#Vk&*o`eZX z8En9Gnx;f0cXmL{P0$bP38g+68+VxTLsLMaPKAO%16O%=VCs6WO!TRtHWZSl)noiq}V1XqD&FwVV zhz{3n8_2dz(QTXc7i?QS-8T2G?5#wweWweOJ;G^h=VU|dNJir>HzPwnRDwiXMW<0F zY)Ij7_YiPU9BWDG=aq-lX+>=Dd|X-wFFLKP;ywezyxwPE2**7GLxg$;Cb$3^M%|#` zI<2e`;>n71NsmhC4j&s4Ep;{tR~gy6J3T8$noK6$912q1Nv1l*RbrL4VOrP9|}(f~g?B^Z(OQ8m(`uiL4tQB(Pk9L61H8DGHuh7rqA;YTbSNO}#B zPqOCt$&ZaTNf6zNKG2W2|??-ZXgQft0 zyFnA|@NeFrap!Op6RHTQaMe{x1sy}RW-ZReN~zo*x9QpG{xfM&$=f-3C^Bw4=PDrn z+q0ch!X&m@Z{-(uJ>)uJXu9ZnxX=kBT;kYE2SKX-1f-H(^OCnU#Y#rRdqApd zWw}rP1k%abn2CVXn?fJ>#INwMyAC!zv#}J1?XTdz3fbQES|jfEHsB(Mr2bmBx6NfR zy5=z)HI>6|LP0a7K3Vr$uo|2{oMwe0xBZmgQbX6-Q4ai-gp5UeFPe1`qrsoyJW$XRW6rV$D5`dJ}p*0S3thgRSS zV9ri_swA@w4ra8zP>A}lh}ms8yWu8;tle*p6iPMFRoibxs)Igl8ckx>`&OmM92jgO z&|s1Eu@#O!t`~Tan~2Jhhdqe2>1Iqsj(w?!z-Wl9gCLTK`jZGP+qnTV8o3kuvP9Hk zio;gl@K4CHku3Sbst~&Z6P7&ydL*|B8(1vMM_5i+w$DPT&v3#LOX`3lMkx%-rweeF zh&q`8MAj!32L#TRr9Q%#yZU%FJ{}~ca15&h8RUELMq4x|-*;glb_YHYAce3WM`Dl6 z6Jlix#2iJ;OW)aI--(dOT7{V4by%JQhq7iO#tX>3c~@5T4?$M5wX7fmT%9vQ!H&Pg z$tw6XWJOj$Qd(YD!ON2J8bo=y4(&uZc(Nld9ilwotk3+ec#FDq1`(K}3q@ey?~M25N^Bk)=C%n-M4Nj zh-WSUM?5PS*5ZjSI;cur$C`fbuO6M+S0MsKyz7fZ#(EIRIYyF*-siz&y@Moocn~Vd zQyxs#+eot9gHTD{^kA~~BFPR9LM6%fV6xsqk`FxymBj4lsqP*m`Tn#dmAy%JBT3AI zP*l$LV6yfhNnH;@CK1smHK#CV5Lrk30%_q0L>%0pMf|`t zL!<)WlEEs3sk!A)1V3aPU93<2NyI^1Il!`tOu&7^vcw*^r1z0r<)4lKyEHrD1R7ux7Og2$SFYwwCp>b?kUb`2ai{oyBtpfq96qa${1jlKk z5o3bSss(P+FjhnXH;N9?1PG_SW0wowsT0sK&i8~Ar+i`)OF{Tf%NAFXGQxv?vc#RtRRs!QR>cC2S(~dk^Rdx05yHssj5qPS zn&RocA(7p{uv@~~-b;LzA-|+q6+@Vm(+7<#Q6AT9vm3;YLKrzvoa`pafjQcgf>R=U zT&>`KZEPjnrLu_K3qg!v;)xZ5E3{R`Bt>MGZxPGs$FIgAu6!h^6T(XoR-fvQ-4D7O z88xAH>=eq|&v29ESmUQ~5Le>cBz@Zu%X%Ae?dCkAdqm*Q5c?vUNkpUI2#ileu#;hO zlJo^qXEJrRQAfmfl=%aU0K(2|VXk5Pz|5iYzSw9I^ZShn<_Jw$qd$M1=ovqRrylsl=cu#23qcUVN+@*5TQluGyuwrJc zE=bK~6yzI1RLW+RopM>q@Psx}7U?*>p4~&qA|GLyT}o^&mNOtRAyr~OfeCG-kcU2} zg^b5Qp8g5W6JSd0UPvit8^Vy-1cWyttRxoOfn=%M5jC-5Y|$6JXCqnG7~V z|Jh&MZHg6mrU4?C9S|RfQBKb@W6-B4;|F5tN6{ge@wrg!Me?3u$d+}ZtSf+6_U=f4 z^>ble$Kdlat*m1z!@7rT`RjU>*|(Nov1y9B}w?aP=MTE z7M>hr&BzhLyy=7zr2uneiK@%xsnTVan~SjGP%$OPTHvO_3Z{Pd?C_#na1Q`sd4=wS zSzrnP+)hYZiE+4q;nz7c6S2<76np`h-j9SIL8f$sWhN%<4uDr0UeJR#yl7GSQKL$v zH2h6gS|aofhS**33`R&&EyA_o7)&K8p8o$5OrU^{{Eg8-HIeXot7k3C!rX!W+6$E2O+5-BDMhxTnavAzf>c95)90D z82AAgn1NIBl7X$g#gTyxJP1{zz8;KZU^fp!B^m9(NCsZ)L8v6NJQ&Hq>pcjS?c3R2dnm|A?dQ7 zKC$%!H6-2hmL>LntnhcdiZ`0@jSUV}^BVfa9eAyV!`U0V@U{~M84gulCz|2_&Ov`;gOOC1=*18I#^8VQ$=L@Ib-HJArJ)mh*s(me=d>Le1b6p1wTz{zhI9Lew( z$Xul;L#0G^)1*jK4=h&~goyOiIMxudZRjdq0uh!+@g%|{Jjn)+@Z@@yM|cwUuqgJjeq(d>#k8K}|?wCO_VOfelNph0kliN69{5 z*c+1!(d{?bk~W6D_gj4T=9CH_!wvVcI=p_4Atr0Pb-^z_aSUr*+20%XQ#f9^;#Zaa zwb!vpuEG}H)fDfMerdz7N7k^!M~aYIg*IPAl>PZ+e2WY36lRYx%-V3I?BAAX#00~> zWG2RZyiJjf@Y1@Ln2(nV5f=8(pWy-41Ik? zxz%u6q3;5POBQMXGkfzZ7y|oMOqJSlVlmXP=YEN2v5u>7*|L_nnAUwLQgR+>-~S*! z^i29)fZ;sD?mYv~U=wp5F!Vg_hNX2Ko-@pWNkH`YLcK71MwsdXXXekez+$j`^oa$egK&{{f&e3V4y;@f{+SmijJhi+CE_LG1Kip60C{xGp4Av9B4NI=lMQ=fA6sVC>=OiaMn_?_pPX)5X~R z=J}kIYIVls0=6}4tnO7cWRX0gAh#ae<*%B1ZLt$Wa&}!K%B3)xv%QpOJvHyGzr+B9Ak z4((N~#t5TYeOV*j>KlycdP9Au;W!JQjKbG{uWIud5#upg+=e}nyj^Hz`{eM$h@8vt zc%x2iA%OJ+eh9_JV07NYaFgWVv)X^;Bq;mGrK4H(u zE@6*tsi)IBews9ydSuUMU9^b|zUs9tserf^Q;g^9j_gfI`3y&PBo(3OVUt>tu-1ep zfK1ygsVSELK)vns0alUL|2y;>ITp0lRw=B&r{9wC$_J^@R@tM&jSic9C5Lp;G(_MM${&J5%is+=)%<-*FLZ8wRMJKAhNns2#o$ ziCvPOw;^U0)@r+Bpz68i%#)Q&pu`wq-tuio?WeeQh_FMhppiMvTiC|L+0wRPvyD} z!y}HB?buRT;hw!r_Yea|pq_p3Eu)0hsuD;{M8$~ZK}g3uQYBv{f%z6a`Z!2;N8pndM`DTZXL;06gZ<_-0Jh zu#+X1y1$!+C3FDJF^5cs^)ZLYd){i~;;YDqHG%_V&s;M@ZoLmc763e_!g2kyUFDC) zYgS(DJvUVijYYpPmpph>4N*Nu6f%!XOg*mz^Xhqc1w_S26%Rr&ueq0b8=qn z|3tG-q(hPX;SQ+OT;{(4%wG-WuK+;iw*&LHBP^M3+=`|HaF}1fu*3YHy|o^NW?)ag zuo_pH8IiIYA*FGZ*+xnu_y$V7%1n+__a+~0wvIIPCLe9~mdR6@e6&0}OTXwe;q_ar zrNi4fc#x$Yz776mnk53b)zfRfQE~SDLVOEHz1Iw*LW`H-mLQcBYtjaMc^x(D)hyVi zlqt?d9Ov-8GNbC#;BLa{-wUyc33GzokdTa)2?rzLSFf3(ucBxz*=AZI3;s~A(V_9+ zd=6^fYkW*m8{ibX`b%3(gn!y=a%dV7jbNfFDWbv*lz)puslo_DEKWnB2jol6Q<>-? zTT%MKNi-5qPPc4=L@PscKxruwVeeT~VFkI_<9K|X9u#6GOWa%{W0+-vqH8Q^fQuQg zv%Sv;Y6n$&dmygYi=jXTFRY)L-pPH(I=$$6%9%*Q#IHXu`} zFBa-F)zCWALXl<#{K)d*;JM}RejLYjUiCYL*8;*xh^)Q{`@Vnky^4Nk67Bx>D# zwqTobu1~IAB&zpX+)RLmY_-1oX!Od^DT0gs#5O-oB^0j2miPTBKfDgmboM_LmjEfslfPB zlyq|gOE7Uu~m z4%oI8IvoMLn)#h}erWkjC89oirHYS$iuc)z_E@)Hjx(HVb@dnE0aoj(mrT{XJwa$_ z7WgJx#Dx*5*6*xSy`|4*foQX^Y7RR~pM!xqks2C7RqV4ji2jH*6H*;s(e_XUM~YB= zvb&N7soqwUs>37?Rjc$&Lp*^C)spWO3s6K=yr(7Qf{M%0!7IQEVtysS+Cla3R(zvo zzNOBSvG`*}i~sQSMp;eoffasI7oWi5C*t(5Q@k*twMAMutd8o`EMioo2;T;2gtvu{ zTxN>zw&@}=PNIk-dEO$bohF(ev3tah$Rc(ZEn;giMLd3!UmU_7sAOUqi}(m{KozzE zhggcVB2ccd6-}Z=T9K*|-c~&Lp-&uwk(WhO`wm64U9S62adN8J$Rnq6r?s&9C56g2 zzi9E(iz&W$b3ryX*-7CBW&cRgn=7WL6 zVEO9G)uvP0{JFBhS{epz(R_QQ;65bg(9CVc<}Z|sy-{C?g~;4|Te(;s(ynKCNn+^4 zV^~RIxNo`OT$n@VK}ALLe(Ax7;^4|b3j;0V$&u#$l7r=M^uXtrjdg-cd4RM=mJNSA z9X07_DwlHPG()5U;F;D52$Kk>74l5$2=s0j!85Hjk<&#?bzZU*u}{&2Oi*dQqg?C; zG+_Y4x(Rs<7t@4qkcYHXlPU*0|3MQzMH6O`7Mk!4yy6uIORtzs*a_fYY66-JBUzej zX#)1rT#v;ytHD})WE?MSZ3p7zZjs5g>ws{q5}pK@UF!NHcgdhPvc zRLSk?`Z-_dixAN7~Uadl)+hLtK>JzW+8vvH_F(%;=WNv zg#JdE%cm}+kcG13j*vWseIZm_vNbpaAL80b;TGPTl_j<}3$GCo5qFKKHcJ@@M=E+8 z2aQ?pX)FVI0yklfNCem?T7On2I#V~SH(=H@@Qcntx1{yKvcb4l`HqANpTDMK-uhs7 z_jVV09N;?mRUcS!+prt5dtNH&e^VRK57E1%G)|&PQX1cVhp%I?C0%UyLUn6I=61CU zr9s3WNMnl5^PiE1`sj@uTDqZNXU6iv3^jh{&M0gQ6(<*SIQJ$b5hXOn`w9p1{K%qIHLzX)^ zR*;HizKbzWnOx*`n!nT?JCpuU{3XrxH)|sw|8jlq;r{}Oa79M;=8z+iqga}ewsngU zZLBp6vp$i#wdgyiUj+)keTjtXJ5Plldctaw%5+2<*F2{2J|cP*5dYp=rzRdhRPLhN zRrWU2(z(tT-(#-(Z|E^S&|{>Hf@7ns?YDWl$1L;3J*1Pn4DE5AuaINkU+bzio|P=p zl2P@QBcHpzNK4lLwOeuwwmDuV^RvE?-SJ=?KRmv zs{pGUJW!SUD)3S*voOa|j@ez>^zE|4_f|DUDo58>?d0$~*JDeLz&g8BECWlL0|1Op zwWEs=L6_nnI&0effhvJ&*A^m%Y^oTYI7z`9QOhAXzZqzU+{|$|5EqrRqsN|9@C|@T zA^L$A@mtW2_Ru*7GsO)+e7;jQ)g$Um}8O#_aRlI6=74;oJ?RKGP_)DmD zCSyLb6Jx6Z3b=ccOc*whD!;8Ve?F@%;zvpKF1q7xTN#Tb3AFjz7(vPW>koMI1UR|04~Z6g&zmc zS~8pm1}5R~aSi~j7v6i0}r; zY9|n^aisJb)n+c_4Y|%}A_aB;u>h({ft@7a2rL0B#je0I0Js7h0KgI0B!pdoEhOLw zY&`)-U^@vo0y{v!5!gupUV$ax!;X%?G7(k+3sYcu04c06g*A%+1Qp^pg_bf?E`=_I zv=N{yq&)y!A>}&&g(OBGnIohW0EI%5f}%oa06k=;R_Gi84uA5P+fnGb09^iT1mN&z zKf*45P7-kVlQ0s1!=H2l4u3KUIQ$s^z{{UJzz%@6f_?ZvDJGrmuc3e)e$7I-h#mf?`L!N2Tz>5Y;PUGLV;p{+ z1W<%unAM~~HLV@D=?Ty#&UPlFY1TbaTij+i6QBlYu9^U4A5q87K}k=5ZpXA%PJqTa zvsp}l7M^8_gfX(f#jAiT=h9XT9j9Ez|~MiJeLj>z;hMpUloqZpJN1Qjg$0-Ea}sATT* zIn3fJTKHTHP?JDd4p862IL-yY0jdJRD;VYgbpmbQ4gdpGl-p<|%vmp+AK)P6ATUt5 zM!Xyn{BInr_Ja}s&cUjH^okv<#zF?camswe`k=R@0>D5OYmabCgfU2k>u`f+jH@ll`VDB#{GjrOUbEe%pw=5NS6plr~9)$~0;8C~|c^-wUk+&C% zSE-g$H_6SB2A>^{QyhSkTSk~56v8;Uwjmt?REo-dN zUe-wCJ)jO)-lBlCtwWxcHP+-<*8WD<_!um5Sz8331->*Pm$eHqREklM%i0JO`lCS0 z+SBAeye*n~yyAvlpDp+WpRD?JBrS!Iul4epwrVWo;Q0%VmvzdSw*~w5)Z+l)8rUw5&CU z?;B9aEo)f9HzN?~T-NBDn^iAsr=tyuL8TLyf_cYaDMNvlwQ}T#B2UZOL9~(~Km33O zdFD!nLTn{NLA#QHX0K$($5t{F(y@}!p1AIZq3J>!!;89Tf3RUOi|l7zC*m%JT+pI4 z{)hpOPRmQhD2+iI!Q*fnthL8s!&748unY1$-}gt}9)}~TK;zK$D#$(orI{se=_7=- z^aW{~mCT~$5GSD#+G^!;x<@Rkz#*rmnQ%icffSZ=slXvwiGm%Hbtv%Ev>AC0NyAf> zko2HJQd84VNbni=B;+&WC>FM(=s|sY7SG!WH?~jfD#Wm>Jy;0);bPAF+WzRb-GKVg z3lzQC?!9J=h1%Z$ik`HV&ngsxU0&anTxZB<6^5PQwVynqTi?T`dSegk$a~>KgJJuT ztd8KQ{2Um`)Yg+nZEzy!_2K8~KEU&2!@A?sy<720GQAT!tQ0>ecLIK1>kh1x!{(xJ zEk0HKCb5kIn@TaC(l&_Ed(KAl8hF?|oL2~=1p4Kzz6Xn%_+*-9~z2)1`51Z;cfqrmnq zqr7GBD&$pr*N~937rG4}JZgC1$>w?JFptlCd;ThrY(#+` zBa^?IE%4-bS|1^cZ;r%l)c?@JZ0dXJBX2W+NZDR`bU^vt?Eherm)#3n#pWRStk8Ul zXV@z~IY^ozO2|8&Marr{Vx1Q}`GsG2@Ff56WAO?5%Zm)rzetGTLHvs5USowQ$80&g zzt`h`2=m!Tm|%y$;qktSZz=D8aYzhb?eX|$UJ(%eiSVGuyL1T7@F{P2JO*XFg9ez( zYa8)K8hj|tAoOi`AJWxXd!ygMrTUpzW_fq{& zh8x-2kA%SXV~Fo_kv+O6`aj0o6Y8}NT}_Tu?l)0cy?-Uk%6&B|TkC;*D_|SxQ?~GE zJ(X_-MEAPG396iw) z;!(~J7gi2&!WXOJDOA&^gfAy z^>gqG{d7bNPlH`C>AhKk{5c+jQvY>`1~vGI#dt~a=9dFvb9WSGd;C)l@QQIb-^HGV z4&T(j#Sr+xNZW;e>%5{p)zm5Y-X%CC0J%9l9I-0`wVIQWYq zaLnbNU`P=db*g!Kbna$EfKQKBp}?mbYbbA>Zfro_>R$PMak0FagmAi1@IGoN{?Q{w z9o4E}9Lybx{67{q2@k~e`$FVLEXK8I_;wg}kL02)csitSpToC-D2({W?$S5AZ287z z_KnN7Z;W8yxD4NlXw-d-I>|R_v-nB183nevKk{tzSma|iFO*ztbHR7ZZ~{pThc=2X z!HMdipACW8U37iQ-!j@4=cSBja2ifjPgOV?l+cN4G>UF~41{R3c3tb=IqFdmg=qB1 z(^w>!qwu!iUSKR}38s6f+9BPgh9jYYMq*(r|1J^IU?XI=3C}<~tRw!TT82(rih1l8 zyvPmy5ks2?PXVnB%FU=es!?d`fgaHtW%Ob(;`FEpp9g`>BwXGiyco<4w;*59GI%NS zPlJ)>gb@>(gnS2i#M_Es0d>|M#5}NJ0d>@aDZhA70d>-`$fFVSse{f(o*J-#I_EMJ z(0B#ZF;^kaopKE^ai`pf0(VOBbF5P~LtgEaJy5ngi`eqw@LtmS*y;*|-d$WP^))3o_yy{Kp zSH+utD6lt^kY{g}BOmi-o#e8;G1g)(@~=F=FIHkw8`;d`FFw>KqDO?qNc>*pv4;l4 zeS|Oc_}`y}$IU387mrtY288`$Gj<3@o{rzASRWA2bVfen@%Vqb)Gz*r%Yl(6#pjb1 zh|?;Jb&YU^F#-#&_u#?!`5xTm9$kcQ2d%p~Ag;t%8r{=Tuzm>lflIuiInFmmW2bx; z-T?PpY37T+^og>|tH-Od3crvauJP~t0DfFbTS#cA-nQ%7N!_h-RzhS3=mNJy&hcJZk zBG%@n#)pRZAEpQHn@`~p^RvYksq}S-HY;HT>iM7by28R{_iokX3j%xi-M1X znaq`ypOqJS-YRqDn@~B?Y09F?A427J8I`|n@pI*$s%5I&KLvLn7WPGD_{xy^YvS@< z&Ts$5b%%LIW~_J;@8;4I*W+f%UkluZp)hVvM82={{It%vWg-5I0i7?6yBJ+j{=}~QID@LP3_lh{AFms?T*zM@ zZ@Q_-D_XL-j~ru}yK8WBG2X1gr)9q@1x880YY=^K51;Z zvc$fqF9vzs656FTZbh>jy)ivh`ufKqXL!W}yWz5-v=V8TW4+=&A{`)NukB(d!n}TZ z@i4Q(^20-4FERTPg{FK+xS#~*;+wG*Qa++h!L~vyd%t6Kyr8*!Y^@9Bt(R*LMqYO+ zK9*?K%eC_#c+H`wtz%8liF3L zSm=+KSTXWdiv@48ETFTY(Ra2BEm9_i(XY|d(6JYHiKqP7<^}Y8cR#2sAKgwq-aQg| z`)RECDDbBHGUV<15UZ$=(0vH`nD-iD=clnYprGD*-;6SE$2a`b`aGMEPYw4#(SB<9 zU@Gua!(&k}pI8f1mz|Gd`Ejj-jjXn7P2P>^6uDC=m+ppdpcRx;>k;?3oeN&2)_@@3m?K!MwCGxAk80>tf6i`f(P6w2p1L;pja6JpO~ z(&VjnQdw3yDV4dC^3Oc>Cw&tO?Lms=LX@9??riLhiBb-FET{H7VyrSZ*~^#9PYO|s z^Ar;~5?>Vx?Gq69cZG^;u?omf>&oA+KKDMqxEFfLaZ^jqO}n5QvEVz4{erm4ZwY;` zEKB8Ung=^TC-r|ip)G%=RdB$i=C~n~%I_+SJd8e1bSj&%YinIOQ@=02tC_G>(1Ro8 zFLX*pMSD`QAte=b-dFxn%n{j~iX&8ZaYU;4EOiyH*GR?gRtunqi1O7X(c7&SpmO1r zMvD;6Xk?QRBJX=l5Cx+lQcPX-&)$)(%Jd;GoeGA4+K;GP_lj(CQqc|RGs$vm347n> z(z5)0bD1yC^Tge0v83!@MopBIi5hUz04nnAB98``w;~<23#$lKFjDrx=^ZAT} z%57!2Gyc=j`srT{fy)?sM6YTW5RXA-_)+rvY1a9(f5qvv{OMb@~e=?!Ws=AUx?SVX}pc@?J0=T)JzDu z&h6yM57N>~2$)1ubcB{yF2|Xaigl3@^G%;KiDAYj{@%AMHbv9#8;4#BWr*WmAC!I5^(^1iBm@AFVJx! zZbs&3glazM(cL{A3kF~_ZWR><>|XGH=yY3oXOX=oNWXDa++vekAc+;$GyJ`BjvkZRXcdetOuv zDE9w;y&?Ky9E?2G*be(pfmA6o$oeLvg((2?F4kNh_OD@PbH9{LQW|Mcnp z7|&$*>;LFZ>}^|mghB7Q8hx-{%O%(U`c6J^BJLL+_X&Pnahp$k+fL@qFU$Kol^F8H z*yA1qwdy=9HC`Z{U*Sa4d*xd57XT_g#YRHe2j&mtRy^nNes(gxTCxXTxZ4?@r5O9L zU;c_f#YhzH-On#(U`emInC@88ck$$B3+ZO89N(Xf!v5MPcy6bm#}E~l;8BAM)|>MI z4akbmJl!IvD+u{3HPM?b3@$N5#aEt^$dwAhWceN{X;wLqSibi(3a+tOs6SP#YZJL& zDNB)1kz*nfk%O&M2wG@iTN}~v`6KazBA9?GF6QSde6v85+ai>qOIxo4rD96gSuoZ{c|*0>34*5EV*z! zTIoG2d^81Bv@yCxUQ!TE8X0Xw{?EY7C;oOu&!VqTScZa0qSjeOq^?HIT4uP~GS^ef z%(zmB7pMzfM=fKYD|~Lc;9c?SY>#+`T4t3upWInP)!&MiA-6VAL3K-pU3E)_-F9m; z@v~bY!*VMc*Xh#c8d_v2re@h9mzeJOR=j_lf%jq1!>E(fzH`NWXqD(o=GdXD%ZlTS z4iS%nkUt6)?P6ij#-ieQqkW{Mf{-0cM8>Jny^o?>IvqbDgmtvyUWzWAuE>6Gn{(g! zhDm?a8zs}osw1d|$6!^hnTbe^!1$J?{R_3D?;0z@XZyrm)bLMv^U1VgG*`u1G(4Hr zj|!QL9899=UN+u~rb)gP7vfQ@{GCw!P^$h#Z#bWN&Lk=ipy)>d@^VuRsTBTLWZrh42$p5X)_K{xf7GOY^V=l5MKZe ze!zUTp+fi~FIdwtosw2u=WA|0$}OK+y8%lf+BUS}okJpgdgMIBH zyIY-_RtVXtBd1ycl5_4z-@wRc#j(qiirK!R=(pH`qJF!IDm=~CH+Ud!Cotm3o?&?t zjLKJlVMK9Q-UPGD)=e-j^Gz@=+c&`&!8gIU%y%C)zyOb$Zq*23_F!hKBy?FQ|77#dJSKew834hj{^echvNW|%x^L*ZZO zZxp=|a|_i&2-*XRym*?4po(c92uXxKrq9MmHFvKtn{QuGE3Wc2&+iVsJ>Zo8GGC*7 z(s?ina!-l$jimzZDg9zqPxGIA!*73U!&@Toh94aUbt>7_DlpZ_X=LLpoXEh$iqSs# zf$;fISaH0svHdIJ10h#Y=4+h4`Uc!7BkCmIKk~1^Is7UVlf}UG!7P{HB^{3jVD%JNS#0(#DP}ng~h>A~rv5x># zV-W(C;hQNqd&6cwZRl5gX?i+zc|_C)hKxMF?$ zca2bP5PylERbOZl#`S0r<3(JXHr^QUiZjrcxgADd=MlFe;NyJ-H{iOgADVW2ux)TQ zF3XC8UU_eq_U^jl>cuW&@2(pg{bT8(^{E@Ao7^-m66 zcG=R!W!{9m0)6}!$lw}`bcllYpnL-FJ z4b}4$KUSaW5$|A1n{`LT)5<+h9MVneO)Qpg68vWL)6_pBTZ6EaBZORa0)?q_K z|Gq0$9@`$XSLDCe>|bDsAPJ4f*Ey&r>d&)=wkS9T^^ESiS(Zxb6thNj$BxZiSQ*w3>##nO3jR~5XCcK2!T%d(El0lUo<9M>zlS&x z{4OwN9rBvsuS4)ZCRQu>+mNp&_`7fLiHjaGgTENljy!|tjd8>)T*GMrv*#ChqVyRR z>iXSioHfLj`ukR-qj8K%N@o@h&aafB4g_Iw`g*%cun1h;1^r7YXCkA<+?vpsZ^ghWt#?px{MMYj66*nG}As=L=P}=lV@vGyH9h=v8?1om9y7Y-fZ+4_9hW z<9poXG44XsdP^FbkAcrR9J{>*H+$qo(ySqd_4$w=(E2Wu=}LXp@$mH| zXLSGJjPB8uqT3(mq~x0&-9Odnj-lvAk3c|)XE0YZ*b*Xy4C(^awsA(|(D7CfsVg9; zB6^h-!#zpIIHP}bjHLsS5}n@gHjbWUSx=ievnq@|qQflf2_bJjms{2oLeAevMbYuF zZW1;3M59sk1Em>ejYhk?q9BTT8n}kWVU%>lzn$o6?$;jJ_aNu!p&Jf+@i^S}L@g7p zSDr=N1_rrnaPJUvLu_dMi&>~TdkSW{-1 zy?s)N{je1=Pb#HQ(QdvBl`65+<-P#q393ecJ4^r!kyOJulaTllLlQh;0vE2$TBCSB8fCQ~XJUGhel+2hcaV~zqizc6VYB#(yMf>hVrDsMYbt22Yl^3J-6jgBRvY_VE$idu1#}^y+zh^cS8Oi_xu!V0@RHd^g7^ zu1i*m#81KMB5^fE;^$y3M`9paJibkron;QNxgpu6+v-c3?uYorx9J^tEzFAYOs&_36|_Jeq{@Q>ETHFB}_*V05(S z!sT)EQNu;`q&@$M$i}zlpvTxx*)x|rJjvSj#E-K&X4b-^xlM%eW2M#d&);LMeLuIh z-4|L#Tg>3pL#UR&ik`w&Dhenx*8R|-u11j9te*B<##U2Da+tBmi*6yL6~vyrSF z`H%DJV~_kk|FdFbdNK)D7^){(+f%Sl=xDLmAG6xCt1t>Gwf1M&d6Ml3DxLMq_QWlC zbN*{Ehx?Ii&wD5e%GqVsw&(TSGoR))Y2SO}M*eD?VkPOxwTMpbuSv(EDP)_B<2C8d zXW~5Re|EelS=%#%a3FpzS@K`*UBdVmuR3<$`)DK2L$dFk>+myc``#ryitN7k%PjU& zda~@C_!djRle+19yYTst-S^)8C9X}HEspmjYx`cH()rL!U3nDYiwc-C8_x@jMjmaBOYF7o;@}$C~;Z4!kjF_Kqug zegD7xxp&B!X@jGmXYI`NI-jrEo{Tvv&XbSNjh~sa))PD$VYbP;e5Uf%OL3lTTvAUw z>A-W3?a4kz#;toZ&#Nb%&~wvr7PUS3ZZc0Ba-3|dFP_k+XQU?;$jH5!w_f0NPkOQt zZxg9&LDsI|=kkcRJ!y0eU&TsK*3}nJ#`1`_Jvjio`Q|mX^rYbh^`lMj`r=l+b-V9( z_-Eftu{Rl}4>m6>=k1BnB#Z;;mP;Qz))Bh{-kSU5#C|60NrMXLUfoFef6}0)@%J#Q z+_{%uS)B=X`zx#GqCmTA@++$=QAq2~THNMrVkX*WK$UJTWM)gVJ%Szk$SQ>%PxJ_% z=z)uSpJ&@&VbMwi@W00aJ~0W+M<;9}sDXYj!oMHzc$IM^p3^f1{}L8nCh`+Fg!F9j z_$G7@NI`lV((|*Y(0`1AFir^v&bG=JwD_pWA^r`!ngY13k8+9sQ;SaJz{3%rVbSR! z!r&r*6W`Ak1ICK*cJPFKcUT+}(c06@cY%Tk{cMDNQ&oi5n;#skB3`1`_2uFJ+`^m2 z75WR5a$rSIU#V5bdM1K5z?im*B5BMcDuRr;Qb9;#7N`g^<`@+bGbV6@vD|!amI4YBIICW=#q)6Y0?T;m5`y+#!VSi+V@$Wo<)#*ZJrwjcS7KOOc zNuAEw+0Jc_H^hb>Y>1ujMhDx?BN{AtG9ak88Jj%R;zo~B{JXLk|3;vkcj^+KxF2hk z_a(erC5-XZcVETBa>nV1W1jH(#WXy@<|~lGLhJ>mcxy)E8@a!;H8JIM*EeqtR`;$Q z(6dj&Gn{>p$t!G*xA8H6{4Jm`Py8bw2<^Ge>&Y8{_L~OtJuAR`GBSAwUn~^np8NR( zp*`>6-B3(^c*V~2BZ^}9KiJsa2(P@mdDJ|3XhO}~`AQ+KTOAg@^@b;|V7?ffH>tfx z^n4O@1D2=-^F8Lg-7xoFL-Jc7uNEkzu>nsZ&2MITZ9L@3zj^0?D1*_)wV((w2mgIy zt1^QuMPqI}C^mz<4h}^jy}xXDwpcR=5pnJjSV0(?K5i^EXM;;XkkiL<3xP)qg>hOl z|3g;!7qW9`tH94zSq_r+4TDr(eKS7o*S@1a(8E-Q_e$^pPjTP?rR=>sB0?Q3L^onU zH&cqEP0?cHV@mrI zrNpF+Ws0p7*I>dZjVYxvDYcK0$XQ{}H^Z?!qMOPYJ?GR!dH&oJ1BjTpYx~XpzbUi_cm!ZaUz4d-`LFvAJF@b8k z%TsX19bVC-AM$HKrKeM(gCE2qMATu<(Mu0JHhkb1Q`q?2=W!I);{|`HGCrp77Yad- zviijDc-W5Du7N*>MRz=oOw&jJqlY#h%$|2=TjZu=?ea37mn}kimMaRoVHC2$L-D1^ z*_J|D?_^ucu^||$x?EAPT;F4r<%%*DE9CVSf?{m0kd_9Ckju4#kSpXE6+tUxiHeA=kp90cylGsa zf3spNE!Pb#Iy#;R)AD90ili~mstCDUD+u%4K}C=;gH%M!n7|QAhzmAhC|~kXn5%99yk_J*?79BTo&NVr6I$81EH=ft?Jb} zU%OhLgE=q1>1|j+)zzAASjJmJbJItIENfz`HLa2P2XzaWtMw#nwa!255qv!x!&t7? z`4|7hFj{#GO1-`F zJ>o}DjGghpu_y2f9^L>k`gpwOPwi)>ONlnEL-|-|CZQ~+ zjP^}KCxbo%Wol8QU2_pQ5}E6Ophp>v*^$srifjvea1GQG`07%FfI%uPD?U<@2C`&U}n1MS&?uOF`e2%Jco9-k=X=ewcU{ z6duJ2VIl@PtMqmuK?HIlV=|Y^01v^JV{h^v@();I{ zhMxg#C7rar6b?7RNylo+pV1~5MxOYfO8ClrO&bh>4TPXD0#OkVF^jc z&uku~R|ZIi%A^D=uOdq*8QgawfkPD**$_0!wFz;D=$tq2;KO z5K`vz#-W=~UV*ZV(pN>IK_lcI1fnlV1R!xAI0%767{4?QJ&DYJS>m@gq5-{xv>Ax@ z#L&Rw53L7BUelOPxYZoRLqTV^Zuk2Iozl`!>jwE^&}roh_6eJxb)ge<7vovIo%z;4<>kzkOooJHjG(uty3$qzGQ}I=*7Q4QC>LBS23} zP}h=yKQ|nD7Y`? zQp@{9zaX5y3R=3@TK+!KFMfW!YAq)|ivZG9FKpYYYFQS}e-K)R+FEvL=@X|tT(y=* zF2fr6t*K=nxI!LDTP_RduZ5QRww6;L!y9iDr{QLtW+Ra7(OP(WsTHR)EiJQ%eoZ*^ zr5dO5UGrao)|I5Sd`SKW$giXPaYGQZ&+y5bxfC<2h6j}zA~*ZQzPK(UZ@;i=zzc>V zcwIREYiQYQY5W!WW;hoxHTJn1i`WxYYdjQP@;EDgeX$6V=ThTM;e0RVvwoxnHa0|l ztgZ3uV_`AHvI-jy2d&(SOIE(6Z3dxC`>DY>mtDp~V3d*QsV)X~N^UUV=TR zDOOzHw=~juQ}DiUXp0)x(>o!4=f7=;ArwDL(}#+tJs-t4Y|QwDI$Fz??34HcfcL!{ z1EM*F$rAiX5&Rn`jk}p)3LS3={+H;FLhwOMUN=xQEWwS6;L>K;E;pkQ`j;j6712=< z=789#HhmJ)H~)LT+;t0J*Ui^rkXPKj3l_05zbBrOAe*Ydyer^4WvGx9gjS$}d-2#i zRS-Iy_5zGfSTKzO`bWRS>6`g8sz!@|(Gy?jbg3cUyD4Z=^aZ^FJw>lAj`Gvd9`W0) zux$g*?)sna5m%6*qhY9?vUQ?gEWHs{lgynsv(CF21(MNI^xE_;=qYh7=-IRsv`kaG zdD_2XHjn>Oug90c!m`(VGSvR{2wMfNBq`MX@2jo!RXi`-5JOPf_U12M@g8PxS-2QK zKv#jG;$n52g1ADQwzxu^YPEoICd4>^Pjtgt$=6Q#SbH|$VubI}V7*c=%*Nvc!I;aN zK1B4bX%95PXPczHZ_HhE zn(2LFnPTH8NKdt-E3ocQhkoVaQSJhlk&R5`DU*<7=KXk1ee7-ct_R&ix*3J}DEOv@ z1K%AO5VN2W{Ym&5HV%Gll`)+P;|R}g5^*XRU=tx42M>VsKY_3~I^%;Qz?^Hb_!>2q zI+vhKGaJfMg3D0RS@??}v5YKe9uAiyzY2Nd_J{~{L}4vN<>`L&7NMa^*}xvNWOxn? zm?ed;MN7%RWywIQUt(jLheM>E%d!gc_(m|$u8gn9w2sTtI_b|PtfH`o^ygBP$zxxk zDZyna0lYjO$A7Eg8ko&a`zh0ouhi`HmSEmbkNCyNVsx8BJ)XQfwtB?w?NAtsK41($ zwDUUW;od-Jpn4OE)`k27@J-^~X#@B+-ZW|UCC)=g?k?Ftv2}#@I3kbl?~_#HIiDx4 zV15uc@^0IJ)MuPTcXxysRLKF_2;WlK0omiuK)umv7!rlFJr%_E)c1MVw19-QJtbyH zeRB#B7Hg+s5A0OzHYPUOZUl$Ylc&&V8%RBwPC$q#M;l?N8&}|l&>HT>*P}pObP+(m z++ZH&(34dL%r>~|=dgIzs?t$a@P{`&LMpe0US(+-xW81Erhyy01VP@DOtYlNk-g$8 z#oex`yTjO+y9k!*uAE#*gLIdO(p{+&?jD3M%9Dp}L2ynkvKD1>Sz^_qcqk_qr;Xzc zvT+bL>bXgV{Df_E#l{iwHp-pIDQqJVd2%5nwaVZ4Y8aWhmu05^Ck0`Q2nS{j!k!Kd z@n~V-l*8}~hsfh*bnt5AL$~9^l5RvVMS-+XL(0wM10iK2Xur0jf{^>QeiecJ+R&GZ zj!Nh5l6*oyxR1 zzRoHmyym^^M=gZy&yk9?a{sxPf{^|+QW50OPl^u3pYYyFM++8`HAeD^v3#JjN?;lgH*wx}b4>@)9ak{-q9f||b6f##DpLjBe2gkLrlXD<(_65b z_(V^f-teq30o#2uE6ngwdw+~^tX#%W7`=DnGWFad$Xw=8^S=J);yXZ?Kz%a|kMDmw z8}d@bN7p*qg88*)-^E__rqL2FUs6xC<$z&ndP~VMm4ON0V3iG!2k@N78Pt3O7p4iWR+9yr{ z(to;naeFwrs+{nD8;@-&5Ij2t79(&p6}3d_xxI6653~%G8&UbDHgad0$~2U{{aXe0 zxA@UODEAV<11$lpLc%k>S75NkKxO~JRxt(yLwIJz7^ob_Kqs@FUE0_hs4N-SCN!b& z^xMU0gKZ<7q`^iJxC|LG8XNJ#b7VK$Mw(nbqe|@>s7y5ku2TihcL-csS-{pvCj*}H z_O?bUlSbkF0yEErZBfGSt6X=ISM)abA*)0v z*#ubwLaD8R);{V$tkJBYm9s_>n5fopd*{GhwT!lis}XHcsm3@4w1tzwyp1r)6N~xX zI7z=8F%J}lI3U#D14}(EUF{9OYuQH*1upV54dawpHXC^yxXRO}fk0Kon4bc7ds^mg z0d^<~K3eDVA|Nd^N!{{Vpl}Zr?)T8}!wnjMPkgFOd$-_D&|vKE@zvu0fkPSc^8EEQ zK3O879N&bYGo=prsSR<5bs07e1sW9c{FT16AP@5lR92~+zkX&_>8L7r{(t;JDvvvV zRi)|twb2Qc7F~J%>b&qAO!kVS5qh5GKgSah`&-gvEA26xHppi-=+=)sbtOCxAbCGX zeF$W+qHqQFz!qBy-@rAMLm}ON^D>?l%A0bgLh-V{prm5_xOo%D%$zrF?t+=)=SU4Q zbXU+Y#$jTpbeb$PW+!}?xCM0z941f6zYOscmXsK#xT{zEWg;w|o$+$kM9lFqp0h8- zJ+mv+y6(d}PV`bvjHh$=fVj{^Sb81=WBL|dUo0LiR0(|g<+-4+Xt&_{)&HkL} zIBf6jQ&a!kA0iyuZ0eqYBSpPQac(QB$#C#Sj&Z&+sU3j;8 znC?t<^*i~vTvz2dOLS;wDgyj%TDccwbK66Mp$CyVF$l9j6~{<^le zw(944IMv0Q>745L(uH@chw08#SHF{w%XP)Ct2bFZ`{7J=dYpV*PLw}YKApS{pR9fL zjbGgsp$ak;Meb@e8TXFr^&PLGq1%Q}7? zzNT_IeL6hX!)dB~I{9Sr$=Xxj_>+x?j-UN@rs?9>=}8t}Q~Q#wCs}^BODD&4XIfwQ zb#^9;clys|ogSt;QyqVO$FrZ=<_FuwX|~yyZhJn)Gqm3VegYWh$DXs*;k$rmAm9+d zXoY|GC59LT7zP*%;A7r7hPVK5DPSdl4~{RVjGuzv961RvA8-bMk4u&sVg+C&;8p-1 z?;!sDt zJc|5xH=6dWgiUt?2HhM_e;GWV0yZgf&mzzGuM@yCuRvWP03Yu`mUI(7m;in;crF86 z4!Bm~Ukkfm0elSTuh_pC<-Y*}IG=*w^EN|F0MK{NE(iP{;2HoQ1CbwE1->d7pW2R) z`7dB2U<-hcCy;-^!vCn?pM>n!fGvQ(6g|%)|CWXSQ^EJX!w{1Ja{#9S_}B;eL#n{@ zyv!-{bD7g*@osY2PEXd~Y~!!%`0C=}W|vMbhp(OYNb5_Sv$Y@9)UKM!>DtRpUv1G7 zttU}Foxk-RzoYxFYd^QR=;Shuuc=*ba&GiY`<1Nz`etvs{oCICPc~jU{+h;#<(#Qo zJ&E$`^wf7e`=6{IEayyhdYpV*cH`I4>k98?cU{?)u6lPA|J?j^qo*t0b)|>>3H=oX)WbujGrPI5; z$g>}u>ipH=S&ma3pAPRP=SJ7*)#2UrxzTlcb$B;@ZgidAWbtnGxY4tvJ~umebh@sc zI4+#(__7Vp_HwGTkLjGI%I79uQ@T#BzT-LWoa+2xI;W}f>Ew4be4_Ex#l=ltCzmYV zt)6VBC+n|{pZ(<2jZa5U7d~6;NS8l3J=MQ=;?~~D#?MV(j$VCx=;G}bx0=e;RIjeS z9KL4ln~U4_5x1I-CpS4adanO$AN?oSj=6T^v96}c_6wHP$+^*Wa@mHjsUL1~ZuD%6 zLw&KwEv|0#`r_yIYNuQKBuY;g-}V~koL{-~03IWh=K4dfKjiv@5NZr^eJDa#j}5$>g1WusgAF%@N5^SIy;!osg5sM zJnQ3BC(m?Fb$rR+h5=HyT!M@_{V;5THowW zm%VQOyV28SN2c|-`H?C;)Ar}|r*^)Pi(k#+my262Zagkk}5UHq8tOtX#O zX`il~tlc_2PJFiLP1cTd@$2*?i|4rNjxSk!y7eVnf41@0G#+kpZuE4;!L6QD z>FKglr^n4com{%`ZuPs-(`83aPtDf#9W8Ek-5=fRcca&Jd;NZwAsXFnhz@`f03TzJ zp9+``I57eIrQo>{unO?N{f2l5@CIN5;A;RMiSn@?r##_50DKAf5x~cN$UjjP{vJa- z3Ha91J)V@Dkuv03WK}8zEmEeI@98 zsB$WvbfjV*>(A+_y8YDn+>cm438yb^tySp>Kuk z{{W#X`skfDaXaqy~RL3iuU}-3(~? zh#^`7x&e9u_5kby;Dh*{06YbF8Ni1Q|0;MA(VGdrH&OTdfQ?U3h0q zS-%cH1u>rim=9Q_#GmJBXUh5##WP<`<=o`m=$WcFS-t7vXMa;ob@rsHm*sW(bNKl6 zj^o8?E4y1bc?qe zJ=Y$o_4n;9et({Ai10bMuM21j;QrGL`3_2%@wqg<|J3(*L>3#O0O00FYw)yD_==G~ zKq))r2ZA=e8oHBTSDpzSU!Lo3AIrbA#1IFbmpDJm9R!&xY9Pn*&U86+ope6-5@7p! z*whJQDZd8sSO6V|U1*5gFT%do#fBJ+{H@40Kz{KhhFAh9S#F3PfVsEhnG`_7JMioZ z;QKq1kAu^XTzUH%@45EOwP&smH(0!{+V2P^`d1=xgVyt_@o$*N3k`7d;;_ z6fh0X5zGLz#Jy&^uRj+s53mH_fqkz7&PV<+-1pVh|8LMh6^a1P%*b8tVz}c1u0XGbA6ySKk z7{GME48W;?e*(@0ECJjDxEJsW;8nl}fDZv%06znoK8E@MZ2-l9&VVj}Qa}&DZh+kZ zdjs|X90M2yI36$tFaaQ#ZX%elEMo zxzSmVF0C)}Zg!?huW5YT>Sev@;&apEMrV7RshgY|o%QMX>I&~>SE}?(`<3nXCF{SN zKgsG#mcO>@cdN&Zo~&Q>ouA|3mg@Xuxth{-a`he0ap6?w57RkyE?vDj{Pw+`rrO`@s(-NEoa*dgI;ZL8OIB~P{5pH<3ZJO`b!A_+ z)$10oY_m66d))j>m7c6UndW!%C)4%o^s`-@ri)LfCx@?{^8&Z_tnclR^UrKSjsvIl zyJ>f+9HPE+O6$>;F3)9$%A=ic>%S#oMhOH+rVqv99aSw0}AM)sKT*d~)&OIe^k!f2d#mf!j{kZfL!1IQ3vfAr4`)1c`1&<3 z=h`dRUg{XG@BM*&sqcQ|?5|(rGS~0o&l_|7w|@0sU3=A5zpkx%bbjXW+1X#+`h^=k z*RGjq*Y0ca-A2HAzz=}G0Yy*8t_vTtXun!CZU-H{FJ%7-_#WVSCZ>n*6EleC{=+HT z$z@J+`1tjmpFgqKW>O;0M7$H1n{BaUs3Sv52wt}WlqzLABJm-rGOg&tCj1F zbmC9b=uZaE{yS4$JeW^M&o+F0vp3t~S6BA9wOg|E4=`4~2K)uc{||oK0niq}$86*m z0ImY8Qt(_4r_9e~PU{Pv?d5bQJR>jyFcL5kz<5q40e3#&0>FiUivSk`nC_Nd0^S<{ zMR+FQe82^O4*>rKJcH)}ig53LE8tn=AHe*~$nt3O{)SA5*sH(m9lOOKnqZuE57k*prJ%b6ytCs}@HeQsr) zew|#p`E~j-jZfCUblIb;SBKZtTU-3P`ZJBsw13IkpJ{t^`Wc_Bz4e8^uKnZsooS}y z=d91Itg}Zamu`NYzD(nj^)Fra=<3zsb@kR3zpnmFhw7IxSTA%o19Kx4qx^Dm@Y0HXHIo|$>Ld`Gu7#F@^Lv? zem6Otz8pT+Z>aC&`a#XsH6C}I>f*?BPIY|A;#r?F)#-8aaXDH3MCEjP>pR}f|4jSG z^>eDLkLjH1_>#r5K4+@a!BPLB@nv`5F6!`E#6%(l2C+TMxsCF`G4FPC+CnC?uIvN_$Jx)F@C(G|9r_-0ioAWNmk5gS-n9iw=FIhb6 zbEY~yPChOt%kL(q)0e~N`VI9RT|cPne#P}WQ=Pr(!aM78E9>gj$)%g$O`ndQZTMv4 zl`i{r_3H4tdNa+ht2c*_pT~9aaJEmXd^-7b;ghwuzSo;B`*V7#--k%HUon5C<66^t z+~nNonf9x$^t0cb>g-@Tr#ikJ4PV#s;QBe$#h>Y%>iBZ_>gUB|f!SJQgj>SH>m$<~u;{%o}?(|+spb38cJ@udsT^>CUly~*mS zt@^nhPLs8>zVNeuoa*dmI;T3m`hrilAFPklWaHo_$8=70`kBtDjxSlfo4!=($=b8M z@^c(HO_!gU(wA<%>GHR(^l&^l&9og{52w2Nn9iw=FI{-9htp*By2-iGldUgZ{Iz8l z*TbpKex`G(9}&ca;mG( zjjoeR7VlP%8$H?jvW=hpt7)q9C#Ns|KDaI(y7=kvtS4LPY}a@17~-1^hUoa7A$kG$ z(BT8%eW42emB8Jd2E6ZGLm055FJPczj}G4&{GR}v{0{^7Y#Q*~j+}CQxa>@`m7cA3 zar|`l)fGNl?W(JI9V)B^tjbiU+Fr#GmYnYLsyR*T_=}myqjIA(re3pw$m-u+2bbXr04Whf8OF2pH%7G z9&UQv_;m8g;%lp(WbH~9e_i{R?)qz6pId#IrtA8FTfI8DWbtnGq)OM>i#h{k}XfL#F>e1+e^ z1@PfUKj33S91NHQI1#|dpU8VZ!SCP#rUUrU;n`kJnV-v?GX9{AhByQ;0&vCGG5zyV z{wLsHfSUk({D}NEKnT3$3cn7|^>NC2xXdZzSH5M4TLGT}_IW#2uMW@hoU)#GVB5QZ z{{sG2>|{PpnV-v?))%~+y-epc(|)d*Vi32uG#8$w%V1h zaa7y>owW(SYY(^`a4%pz;B~-vfGvQ6Z*blK=mqEpI2KR_;NwB${|$H_@Co6+HADcw z$H~Z_0ayvRS-~&;!4Q`Mt^`~Q;Di0=G>5N#eoA+I-hJ5+zE=!!3}7OF4;_9Mc$Nd+ zf7KA10DS21uY>o0fF|I5OX2?o`E7u}YdCiU@S(%s4xY~eOi7xpJK#@%54r+?D1hqN9YA&SLHs{j{C`;de$a`(06_eG0DNScpKKxf$riGo zY$5x}7P6mgQSE;M<@H2+!w^#deB6lqlYsXDpC^dFw+jB^b%y8;=nd!t;6sOh9y~7q zUIVEBnA9<$W8>z0L%g`0Gt9i6F_y`2B5n6ApQve;-3j1{*wX3 ze-?oFZwK&^X@0VW>?d2uezJw^CtJvVvPHFj?u(!S&I8;E;6ueP1^(t5(EkaUGXSLD zDbMQ-r(7?WIn6Y_w(7~WAIa)xzd6;(Go4c%Uv1%k``r*P{b7jv|A*(R0eletY2aS~ z5dHBQ&^=YiEdcIhz!`ug06uO;{uaPpfCm)(-^fq=(-33+GQ>OpA3A&lyiEYbfQ|q@ zbodhR8~`{NaFoKoJMw#5_`wO_uKSmI{Ld7{RoF#Rrqz_ zebM4SK;eHKIO0DHI8~1hPrPIo@m6KG8~taSC;$0K79W6Yk!8b)ik|n7Z-I6{ z1aQ34{?*~PLgr6ENa6nq<;@n}lK}oT@C^JLb3Nczzz2X$06zW#eHWCgqqnr^%N%l5 z;TwP_V(~9h_;*5{_|F5VdUSZ=CA)~XD!bk2y&=~Jus?wO=ObDCfsj2CKsMZ`=;3*f zQ`XOAPBV>nt0z@@vi5U*iKaUJJG#6sE_H=>wujD+Wcl3m=;%8d-WgY2Sr->4f1-RW zmo5B>+M(l17e3Lrq^rLAt|!%aWm-Pj__95m>g1WusT*IW=sLYS8lKyMQ=R`z=d`x@ z-0IWOGmYnXaH^}1>72UpWs0uT%lID8Vc!*SBw#Gy1i(B1ACDmaEZ}{>*MOe^e*yRy zw;p?ZfU^LX0ImVt0^o!Fccx6=YYU#^0IUK$26zSVIe-ts-)-UFP659NvS$G<09**T z0 z!C!&=ZGig#&jMZs{1@;QU@L%+0lygHP{4e^DS&GLD*=3rL!M}70WJgF3U~y-$4AJ2 z0r(Cu``7HkM_|u>fFl7D0IGe2KghyQL&`_8_~wvp31|=K2-p=+3g`= z1%UWF0EoW?K>Ymx#6JeWN2dA77P6mgA^XV|vY%`r`^gs7e%*Xk+xWV!kL%}l;<8(s zt^E54uQ&iO7;qkd52rsleC^!t=eTD&-dv9}t*v@%tDaQ-V|ksuZgid8_KJ6lha0`F z;^JnP8@;aV&enRr^mxTrfUSUSfRN!8VE`X)^g{5q0gM4mQRH;^mEd_8@Nd9#3jeLh z-(%sQN&x>Jc<%Lj#kB#ixEsL7SHN!u{08_7kStv%N4i?0zFvU-fZ>30zNC5u@cs2pH0Gj%|Vo$(e!0&*j{+QlG`AB{*zyQFZ06s|H z9{>Y7LyF$+!0is8y1D`Gf$vW#{*MA~D&RK2YQWQgmjQg72iaQz4*;G7@X-=Fb_EOu z91EBLm<8a2=Pyn(jjyeGGVMoQ>355t8(n92P33g@ba<}EnQpKAI={Ae{12F8+6TR2 z9pE(pA4elU3-Et{ClkOE?|i^{fTapQ>3kdT6TlzBJPSAsz=ulz1w2lA0eG7L+5kEL zx&cZ6q+>9E59ZU+6Ya;WFH`)iH`Ddh7yTR$U8?g#$Ip13T(Wr9=S+2aoP1nPmOoWF zmfz9Sn#O%cj~n~1i(jVkT)#8b)$8QrvW`DlJnM6&Iz3K4E+@EhSvNfxj3D~C7t?{#s|#aYLn!{_2zn|(mnKhuS0U(%&7U3%CqPSd4V zr-$oFG)-1dy7}Go)s(K2OBY@j-*oBM>Cx4z!zZgJUHm#d^#$*Yr_OFCpR=5-oQ^+- zuX?@K#l_hUTuzi<$Cqh5+o?-+_3QW38yR*^NI{I@iOgn?B~_ zG+BN(Ii0?A;cKgYu1A;Z{9%4Kx*MNPK3P21!>LZ5>71s@r<1Smc#e-Q)%nN#I(o8r zH+`wnleH&Vezs4S>hv+c8{LghCtu(3>^G-6f0)i`qI}HnOcRw)l}{(1X}r^4F6-)L zx-(6d-zm>!ot{kNxqeP{^)a1OH@-~M*$z&1^<^8rzS`?%cc$r?Zbvu!GhKg9fA#x2 z+&-M@;>C1M-S|?ab3L58>0>@lljV1l)9K6MtM6aA_*5Ssw|?hF&vbm<>UX1O+P<9r z>ibtNKDqet7^O7VA2QP)hJ?LhC}197K7fyO;h%-hb%1>u;N5ZnA0Gkt4d6F`Q1FkV zOfp3Kk!aSDEWR^zmH_$zsBS*gK9!CA%4r{$>)QUC5W|}RcLVNI;+Zb|pggY_1~?v2 z4&dVtLMB!%aR}dvyG6^(0Gw z1bd&oqh4`8U=4teXR5(}2-=T;UjcjsAX@PwZr8+6_Ycoy&mfRFvE!H)p# z1i(y%eHmSwy1xo9Ce^7m?&L8H} z`I~9Fu3jCU?Qu&Jl~0vVC!cA&oBvGL*}-&9Q{~giXDfcg=Z5$a@D1Qc03RF=PO}Z4 zt#&0FCpSORMQ1&n>g;5?Gfg+Yo4!=(Y=5eHbnSH>mZhV=d>+~jzPt}iP>r0kDRr@k6UsHb)wJT9RogJyl>-6UE z*|{!cTf1=o<5XuK(>ZnH%M@LwSBGbNb*WA+(|DadI((+>$?4C`eBpT?&$Iz{0dxcK zp~LqE&w+r$0LLi&12y=`z)uCN2fPj7Lx*?vFXqn{Jlj!Mc5(fQraC(lm1n+m>0x~} zP19vZy7bi450*=p9qH1;cGWaZmmTTSQ&T^(MJ`+7kS;sYr6*h3r>1sfOB~W=N2c}Y z^y~07ZI}8gmy1L7=f}0(uG!Ka+nXKf@+Z@Jboy(GZ~v?zdH{L?dINO*c{kAdR72Ov z7aY{s!pc)A%z(v;wpSbO3Y&bO)3G-obk!eKE(Msm$}6UNpqM%6xD(X!+0S_3P?o z{BNHa;*x6Y+kkIbb=YVK&&P)N0=z88X(!Mg{yK*5fH8a>#>i^m)+zYsk@s$j@v(fm zQ$OlB>ys@+VrJ0$nEo z<^#@F^e#qz&Nf5L1I+l%5VHUaeotS$Y~RVy`9KZyJ_MP0e;MLLz*&HE0Gs|!zkO^c zr%{Z>%K`ra?2NYRkFolkGG3W4+0^(D^T0jIZnTY1sI- zV&_fxcH^6Y?6GqrY?+MjR(?eHED+`!}Ia`5VXjS-SLQo1S6s8RA1+gJhdsIeThnT=M;* zi;%el@Gam+Mk4iiglGh41!xc8Lx=AQp1lD>0HXl&0jC4_aHFfTWssW)n5W3Q(RKZX z>vz&KjZd_`9hFZP|77ElZap0__m?$^&Hv@dH*4w@%>m^Ar+t|&vwsm}_5$<=Oabtr z!|w?O;y)U2JToKJ;hTYWI^Y7p{(5m83G)`Paec@+&DSjsb z&H^lDB&E-GjFeQ2A2)B}n6h!>W{*G7Q|Rd!E%JM#4V$)%J}{tpp=WqgA&fmd-l!1X z5-~mMjqaJZS6*?R5I(!;r=q_E!i@s`n=y|Nf!3a$MT8ugcTC<0@B|fvpAeze!sd{O zFmViT3ISPcK=fEK&!$Rs`HHkeL~M3hj5=ggI?%B!Nx|6B9S64 zu$O)E7JHftv6CH)y#1O}I2v1g&7I=1>J|>ln_$?Cely@(R($iSGmPVh7SMYi{c>-o&?(#2`>FP+%0q}nslPT*!$@AqA!Ln7ImGf~97K!E7ddqf^A|;@4(d1ZI z(}Nt`vB@De)gl1<@VBQ2_JlflLp3CYTwspM69iMtQRg}{ z$f4cDjtOOLcC(GJ1ug*oV`XW4@* zW|pin*8V}I^<;C092Q`Cmd+Sirv^9^aGEJK;A|ic4+|uIXD8k|>#3rLGzuu^ivZKYiiq)_4Y`W~Ku}Q${O10)j ztUJ@{#$KUGsk3uYI!O~*!x(!W(PdFm^DBiQV!J3q5L>vd5MUOI%^oz?mA+0zw-8wU zBG!_1FOZqe#)h)6k%j&DC@OYj%ls0ofyBLsNF38pM%j200bbl|!6Qfl4Og)Gg((#wsyu ztyD>x+D`3;Rjdu{y48AIlr~W}=SWC|I;ol+y^__j){~8)3|@1z>f0{;qZzYs<+E<| z*ti`O^{U8rk~t)z(kU>X(@APJcDFRFE#lpG3iGU;tf`Zyk6(R|NBG1f>_2)uokOz7FSqF1kRgb0Iv`i&w zYrM~ib#^wNyQ(c>E1y|5eR8=F=yE0KK$thDmz_9yBAVGMPMc9dIXovkeMSW%XUwEY zl<@eCDRibebH`xfwD>SNvTWIcapT8eewjXbE}?uvnEeQO>>F6Bkt>_Nz*1)6aB(@i z?4&W66A2%*c|$_L@yXLCT4;MZp>kM=xN-w189!&R3`xAme?DsxUk$b)20;aa3=T+8aX^jp4Ay!0e}8N3y_1|I3_^SRzwi6;^O2mr=4U^IHd1gb88*~50Xik4&m8&(z;NbByJR3eY{cl{ zwv=v4ssD%8h0@*FGwBeT!0>%Rf-~J3)luqkMxWL20zYeEA zFv(8z2);T(GDM&$^Cu$K#lG632dctd0`#`hgKB{lruXAiUIkGc@7p=aBM z0MJr-bpnQrJ#+L}$k%8j7&p*S!fsoW`8p)`H$?RO95rKCLN?&fh2Jn0{rCo}96Hn; ze4SYbD^}DxFTYJm>h#pGp^i)F)6pTk`KvTF%n}qGuyF3IZrJEQoPNd`cBF4IQ)YB# zY8PLQ3H$sOcrer+0NTNBG$IQtJtO!wboi)|7XQGQiedI^E3$*tXO1a7efY4HJuTpV z8~Ug{95y<@-8Kcl+CReiqT6G~4s$RPF&Q=TjIz`1Iylm8eo;2=^mAN2NN8%<2-`7Z z1b;H?;7_J{wvU(md1m?PLsNe!L3q&O0DddtGm~-tw(8GR@rkO!pT)yZPeBj$t97+d z*E36op6-@J$Hk>3wo7W10fRHxHyEPY0M!8X_%kGc%oepn6*%DG*JDAqaRCys>ee4D z+8)?H1jqb1O6?ZGJN%wFcp>7_zYkb86S$skcLi__N1W5J{29_{!OKdwe;9rG*nraV zG3-sKF@7{c9}O7=Yk!0w=&#JjJuG4nzOU%iC6uX|oJ>SdbSs#;>^{)!^A%B$7C z-r$&76sNW-wR9`+D>Vj{id7IZPZ^aAHq$3Wj%G&Y;_5v5&oZ;B>SLz9CSFVF!7+1f zB#*)eqBOsCe1X?HW||_Ys7Kdtc&V7#G_HtxC&bM9NFiSjGOu~Ip?P_Hqit7f+r^k% zohDEljcLs@x;N46Aaiv_o<5j2Y6|UiKjXKXRFj)hFzG_twz!qq`L|t|ZTXaG_FJ|t zM*x`N726T+uZq`G;Q%wkAM%Bo;#kVOP+kzt@M1A@ZYBUfH`T%-`o_#{-TC!YdAv}6 zMf#x~M|-e=pP$b)%%%()B$q`pg0IQRoqe^N?dsmuT6aKeUH@xlfEb_VWO#|>U@tbq zRSyfcQScARyl587nKZg6+S5D1yx6-a+Kb;eRu@Gxy?;Nq^CsRYu_Eu^YdbBB7euqY zKIZDtb!JgOzl#VI#nQ%-zGCnEwRtvK3W>-e&&#ZIo))OQ>`I>0+1X;zN}2$|kL zn58*IG_%W}G`b)JFqO>qbBgFKa%69H7NcfMrvuZG=N(}-j|IygtBlusCsH?>;!}!K z&6h^k{+XP-j_soZ*?4pNsJsX_r_-SL56O4|i>lL-S~8lV2Y3U_#t|IRoi!LpI{j*NfcC4QhSF)w9D4$J5YJe}-mp7s>Vx0^k+Cl-jB7e}SM zLCXNB9qqbow(gdZc>o(S18nWr8`^yZ%=YVz*?WY!7Ug|dH0>T1d0tM^+{+BK`1LuR z9L?xpFPStC`&AZoTBXDJ=|G+K>hQ3JRP<0UBWBi(vWRE~?mHSLOdi-|{@5k`JIw26 z7K-qkWP!0MC*IfpzT zPpG4>@5Ic4%)IE~boyFp3d+#WJQsX;>d2u`8$h(P zXH%qCC!{A2_HjzrXIT_uf8)0!OZ#;0IwhE*laR^O*C3OYsdPoqprHe~aqg{|w})YZD<1+hAD#~AFfpe=j+pC+Z2?S2khu!rEh z?08+L$A8!GZO82n4urX72#L7}b7G~lyq+_W25Ry|@*(bC&s)NuZ~(98O-?}hpKBb- zZ8tIPZzkiV(IdRL`LG8<|0`n)M2e?o zEE1jL4o~KVZ1b*3slK_qs)*m2W@dCp%&ZxU?F1#jiyY1|xW6LBpY{A(yq9(kwXJV! ztAW;K6~_PxvV5v>{Ss)gvAqRW`2`mLJvf(p@#oqMN)@< zK|{@sbVH5CYYn!(Wv>XTb|wi*DD|tQ>*yobwh|v$Vil7UdJrp2nIY!gu-vx z5{!CJN@p0J{jJCq&Wkf(wtfZWmw%UT}{50Dn};cCwm9Rf8`B~=X!l3`F*|K z>(ZF&^VT|v7<3X{tw)tVBRzH?H)fhC88V3;V;(AzpqXiwWg@+v z?0st%bOBQU)as6&2$d{*QAuGaRf^1Sj(}A&QNeq8KaQD)6GaGbz0BhV2L3-HL)U5@ zP=BN+Co!k?gTx#&uaDNwLOVAEtUpvF1kjFhb7%0k$7rLE2WCv<6dIcBcq$Fe_OZss zDeUq-_OXXET^%R~+k0S*l@)eYs>mYv^F4|XljHS&X(_qMmy)0B;iTl7Qao1dA~JNYEn^YnorkApgYdon$chl{}a(8oWa%V~j%9%&d%_g7&;Dp$@amwz7tpxv56(xmKyi_bC=yPulA>5|ldi z-N{X9yV1~2gqvoyaw{@)rh8;~hsDesd$%94`lGmbt7)0XkKIX&IC6^~3yv=&NDhXWO0GLSEK>W*!bpeSf~6sn|mPt zUxjMoOVtvYe`=lwxElDG?pjoD(=gHv%wnA-1&dY|sJG-#b4HXVnw?&;2 z*bZkxF#eC@%z{+iB=1P`y~uYmW{nY!nspW#L6hgI@+Iy}?}_gNUol82WWaQjE1SgB zbD9FLzBH7C`79%!^Y=)FaJ#qJ)U6f@^IbEYgYqLvA0A&6{jremrOJH!;l`+t8Tn+j zSLY2e=hZ}x$)Mf2X(%dPHAGR1PG6RSaU5uoK(P1~Q`8Qp>p6DMjF)zM3*JqUfGE|Vtkk)CH%`_`idy9t(EGf3t)^>Bp z^FkDBw_{T866U37gQfWALvuB$hpYCsJZ0x*HQP3L(BLlyLxA}b1zXU(35!E}m_tZ* z19L}i?B0KX5m8etwOeRziK0BW!m+m*)MQ>w)B(^JEJDnP0m!yQE@nr^KI~c4hRy*o z?GaT8J1ti zP?&Db5W2i%M-bU4L{hq|y2+6gB0!=r^JNuCJ$NM#iGAD4nZciVW_tz9VisXOLZi1L z;^a)*KTo%DPJBGz7~0LeCAuU0WGl0(ZcX;nf(edafj)V`hKs^zQ90OXA}ss@W`w!! z-R?l+@^S^6z|0;n9PJfVDgB{;A)lbl&4xP9R%sA)n&~}h-7*GzZ`WkkRd?A>`%tB{ zZli+!bZu2jMI4jmO#Qi?KV3+fBR4y1WQ^-?p0WnFg!!(6qCPtjCeN(Ns73HP++0#E zXY`fj@j7XII|z%?rJ-mv5M1vkt_>0Qy|Q>Qg!=3zWVQJTxrge#Zf0>RUt-1Xkzz4N2^dSW6sFZq!0^9|iX3AuR~(!qrF+K-BaSs2m{68^fG{-= zWRSdMS%F(f&}&Pk&UbG!X%rhPJdu#*1Suio9VtgPSa-|{Zyfmy%rP>+!R8;1SUO#motJ?uG%)5E z3uXneG>5fT1cID7{CuWT($^sKGXit!B`IAQDU9XIEGcw*xCcADD23wCD!CU*di+EM z7pQ<*>-1x>eze6&0qs1_il#rM%~t65>aiSNL9Z>7a=>$J>GM%dmMs;wXG?O*t@Te< zXRJkROVq@P2>Z%#9NV+=sAC>h5)pfZb?pIrgcCi{O?I%QvHUc|{?Z}#{5FXFUWnKq zmsrG}qSy_>=wiovgC~O7c84#iF1D+Cn#jd(n;GDQp!sQKQD->znU7;1S9ZiPfoOxT zUEJnt7hfCK?hSBFTmINMY;ty5Iw=n2+(}W$ou;dU5}=~a-@S1th|b@8WjcR>reaT? z8i-jI`$x-h_UR=J;ZakM(@Q`nchudnT0OSj|1BYAka>ATQzzIxMFE;0m2|}J`&6)2 z1q^u|KExuZRO9OM_Cg>}wMN)S(I zt{RuJA7bV;Ts7?M4Lx9fFT=$S#M+s}MqxI0%cIICWf;88J@C97%-yj($v%&D%eN(Q zlqPc@`mRXZI&3oT9H(fk*lnGKcd8nEX5fy(P8WCmL-U^J&cyoej)v5ue5gU&W2)as zD(<{KRat8f(ZxAV+J@6vhGP$~<2R0%FhuV*$4#8pb=~%)`&~P-|7xY1%NN-?@x9Ho zQLJpR`2>rR>eXRUl3x6tFM`#fMY!W#-`TN=r~bE`7g4_ty+SWL{%a7V)Eb5y`Eyjo zZLu`E_Eg5{4lkDO@J|{-qC08z{43rSQWKXsKsEN<_{svS#9ffHa)HpqxV#P>J zk4HIX33FFvF|>JW6p4RZs?i-Th|S9>MTKl4T)>9ghjQh8$qetHr0Hpo=%buV9XD(N z2cwImpFOjnl%uCh3ytheXGiaNvmNd$v|U^M|Bl|?BG=!J-C%zoz2fwvw`XGG-}uo( zQTr%~W;&%5B}wNnI9)#rw6=aScA~ajCx3%jpk+t3-5pcGa_RltZ1dcS*-*3F69eTk zkC!+z*wYnGoe*Ey1p_+Vd{)we=$02d3tc7hz24s8v6rGh!)mpy%oz~xjOcQO3=j=0 zq2q-kNo$$hoYDf;RHFR^(JcA$zM<@(mPNfo%nRKScH!uy$e%w~n|7;HJ18MI?O5p6zeIi^7!rHEnJ`y% zx1pQH>(oIKbg%KPn?}9f!8IBU^nU9=lQoc;Q7OfJ0rpZm+7L!NjnO27oQO6du2L6a zF>S0f8uNBd8G*nYJXiz(37f|(>dzofpISmwC*H4PoyEtqV z8FSG%;Ht=&e~?15A}2-hfo3L%W~0qw`8EP)+ju!VW{!~Ksb?6OS4z2edpl zx&x*EU-GW*dbPm%xx;4FrO8s(J}qfb9C6;G#9Wb|G%yhDe6Y-$`>%_jrTmZ|)dR;}5H7b{R2~r)ZQNM4x@%%LcTDBd3j? zUxTo3GV8o=nrkzf`SZ0JtiR_0Y&PKi3>r@*ND~j=m00Z+qj{l>1HJHmWa;b2CBy-n zKjzPc{#4frE8a0gPhA19z8NEA5`-I539hWzp2?L@h1nf4_)F<1TOK5(p=(KRbz#5F7as3;G8|(Kf^mAXD47dTD+b-3N#?!fDgQ#tBKcY8sULj#sYrM17?)+#g7#ma+-7~7vo#J3ZH&vU zmeuTK{jQYLI?hTLci{iHczhH6{+YTm&2Jr7t3z?EhhrI&4u2j5tk+jCV>|?#!_UGp_{ABXCdHHMN-)1Jd8mEcy?MAO)P5gXs;3Ou@)mE7p)=z!USy`1yC>|e#q z&Ess?$Y#)zoj+s-fUgCqI4rSxb0_nGoIW3?<$$dqRn8`yI^*nG-;U>bgUc;IrgP8k zm)K@r?gqN+Ml{W!`yXT5fe%~=jsu&o;xMU+Oq8A7N!x7ZeF=k$XR+SHap(dX^CMjv zMr45hbgPA{m2r09j)^?DmzT4QMxSFi!ZbfQ!5}OEaYh(Ui1S%qY@BUjE(sXFHa~ee zfVd7_xL@)$uNNJ>Kv)o`=qAWlNeR4Yqp{ZqYc=O3RmEN*o1e{|AV6~CBw@xlE6>b` z@Z%tJKhqm*W{+e0uQz8mnll<%`n8E#?H3N4Cs3qwO#_|tXOT8|Ub2?)5QSquikXe2 zp!ob`(Hsr~0vGeRH_5smh!IQ-xmlbniuWCjN1_zp47-!8_j;X(1bze%OT_YlOGU(p zn`vcJu3%-CB1!d4{?HpZ!^>s&W&mrS#FatfGCPpCr^+meyFFn^+;ir{VA0lygdu>SEt7VqN-Ix%G`=LmjTI~-KH;=8&jA3<%nL{|m3(72syF1ZjN!+7l zmc%V*T#>j3`N?LlO!y>j5Wv(#__i?7mc*?GD**jNbZ!aSN8|R9psl4RpP(&a5`AN4 zT>^r(SV3Ql6WY#)!AmgcdGIn}IfFS(h%&7l9P$x`odI$KYC)>Jd}Q3;Dafo&;*xoa z$g5xKoU|lB`{`u_FeR`RqFS^?v~2Tu95Ij6pSqjN5!Z7r4?c~BHY0d1<-=q6*${?y zct?QE1xT0Hr?(u8?e*`_#PM~S_*=|SxXSKLBwYBLn3%v`F!5ZF|G<-Be`Qbz1Ss&f z_fxd=^2{HLykpMxzWEg2@u+d%1Ud ziS;kD`irYL;lVNKVeX1*?USqOuQVT;{2APohjoe`633Q(9>QvAv6-CA=U-OFre1)- zIA;C>4i%zXF(`Unyx>VMCw{g)@RXQm5_zhzANa>w=wIs?3YwAwl%8^wh7njuAx5`S#8 zWOrK)gIufV41DGpqGjAqDY^g#{t(I+6!>Q3ZVtmo86qNP`Gh8@*n<>hm&eTcNZjDW zMG>sA9Iy|GaT_GDvlv};RV~%#a_Q3LZN05AoW2v2+v*RO+vdbGwSHay1dW;koJEG zANT-V&6#8g(#6DKax~1c3Gf0*O$%Y7FtR(~SpZbB5`;Sg28ID4&l_}B%zTEf{!^rR zteM{j&ax|c7kh?91&zQ1_P_@Ktk5*@t6-L zg2LQ5VFx(z9Aggr32RzJ#G4px1F;Rh0HZVA&-?;gEmLdRTQLS`l!uXgn(#h$<$Wt= zo`x1=vC+4Vul2y8xA>XI=6xe}Hz?8wT>yGhQ3ACwAH)FcCF2VP?2lu7>$}rC07ieZ zm-{P#ooIp4RY0>RQ3c$)usa0tWAC`yhxXvr*#*TY^M5IVA2L+WGX0pr@TQ5^7QV7;4+AmGA)R2AlS_Aj<_!~?~ezw zGf@U14nNe+Tv@>}uu>(}6eqDS(xlx6!EQDK3U=F^Ksbk=x#ogO=D5jTQ8iC>FPHeXin9CFcZJFrh9_MA>2}TeCc_eKKibDBd zbBDTb-+|HCXfV$Z2`oDGR+%I$W_$%592GwemcIksJJ##}pWYCd3iRej2v-f}b-KhR z@`VRAH7DaFV%QX| zmM|k$JPCvomAwnNNlr4vPYf)RES$AfqgE>0(=3XlVD2YOKTILUT)8hTg$^$Voe+T= z`LmaxHKvh(KTF+alFf?UGH-AZA0qz&zD|M7eI97u=7`8a9Iz`JB^r`J0#xvHI96zp}?;Hphd)7WMLNsCpKx+VABfS?s1%i_e?4Ek-?3 zsRQh90F|$(akU+U_CbN|gAEd?M*}n1=aJ&6bLN;wBk|txbuYc#_P_Yrc0XTAFK=7- zC81$$6%1{c=nF14Sj?p!0vtvT^XEOpVhMC9sn$0ci6bfEpRK}ovw?ZE2Q~Z9Tvabc z??r4}HVKw=nzA{FT=#hd-J`a)Jyy9(y~OY4yuu20EmL~2(pDw7cLTjG!~BE2b!!!R zsJT<|h7VLqMmJYxfFW-|V-d5th!sMGdkmt^R!;9+w1dd4LX^!!`naE{B*ZSAjgC?m zkXRi>yf%*jhdyS$DgKq0d6w6gEI9GOG|w~lR$7bY<7B-0DQ9Ca6q|`KMX1Lhvj$3g zfI*%*aHTisR4@B?Ue5h9fZTLQ5KQ8^C^Wnj)V~RDF?jL@zhy2OU{BT^NaRG^8Hh8S zcyR0#FK4MYWV)9#ZW1hw7R>I?YGEz~{mqvtYn%BLvz;_d_QKvfn%7&<<04}=HyxX7 zikw?UVbIm(>}RqGygQub-7+c~P0?R7wOZM;->b2)V(gcfKtFjCcbYX|f85Qt z?S>tFPDj7cZr`7Q^{CMMo@uDzh#rZS)lXJ~1qnXu7R(Lf;>|LY+n`Qek@>dSo&pNj zPiU06{0hbTy^|t3Q8(3ViGn{t01g~^_xNsz_jPk)-dQ$g90EjC_z4iodvS%xNijJ) z-#g5_*-c-$7Cj1Ex!ie|!&sE@;z~qzWxS~4@7v2rdBLx@kc0iQsApd4mLL5MU$<1I zxBz1oCR?~-e-sUyqQ^sOZ)f%@zMLpZHCl`5-NCMI_prM`fPI;e%6{@{O;7Txg&=?H z3TRES!E#u2yf6}%(czzi{W>N?3nUNR0JiI&*`^g|!TMv^rGC|@5@dvd&MJHRFoI_O znaNJB(IwVC?YjA%G%F6@FH^2jkRiY||7Q=e{w)8_b~rS@g^wpk4}>n|6KnU+#Mb>= zg9CWKJRCcxYDx(+^G^ld(UHS)ZOQqR^ft53DY8XR;_*Bta%3OfwvEMq?5NK_1&a%= zwBolq)K7#FmOW~({|)wHI~|cZA!szqPV3Y#2Vq#S!WOuc9`iF`Ajk!~y?1?rNB|OA z95XcYOdD&9?Q-x|%8pJiTMg;-xSuG`=6z75zQ5*VmxJ^t$d$9+bB8+`PH$OEiL5v< z@9A>GzjDbb+@`S3D?yz#UDtV+I{zk@(7f^KLu|zGO2H@9&Kb?D+?J4tv6D;mcAm}3 zB6(+d9?O8#))F$^Ux*XV=w;XC3wzP!YwGgauDh(mRLU$D?M0W@$%^|b(bQecaz)&S z?K|UvEd<0&Bh`z42*S0z&%ic&<*8}gT#IEdmORwi`@-rsB{D?HlIEjse;cIi1di!u z2`d}R(us*rJ@Op&2$%30OW^b-Q8e=aOTz5nUPA2TwB=7r`n6E^Y^_=#hJ|@4|c=7F~h+t?CuHrwuI}+ZUk~>o4FGrN4lM8vi5usq%QiOaO10pvQ&QE zw+Kqs?<)zNS6Zq05v6!Zn2(i>x2`nbyq8pi6WtH zHB5luXoM%aHTWMI@B-Gv8#VP;kahcVo7Rr>829KjgS#gno~X&Aev`W=(BwLW)wa$E zOZaDK&E z+9b>=w@29XCo$3h$~n3rwS{=26V))cC~|ze!?T3N(`6DP5{{)c87*yAXYhsD8MFFY ze~nFUiJJYtHriB7!OHlA+^3Ph=8BlRoUI_o>Mp0dGLVLRq8@JITNLynyI<`0j@pL> zpHPr(N!$6=-1ip!g4*tyfN@4YLzWf+yN(=z9VnO*jMR@P*6|U<-9@W3hd9C-F7AxW2;sw$M*~6^+6j~>d###_+S?lqsi1)WA|6| z#hrR@{ES$$1;BWfp( zu)b!TP~yBfCt0o{g|QXS`43PYooTO9wiEtBvk;T2OX^ zFCZ1wMNdOMIy&Cl(U7phWXpU8dy%tTI`FVSnIQW@bvhK>fee8U!i#zm7Dn-}tp|0OQruQ2pdg-j+R~R!V`8zM- z=hX}+b0Pd;u=JO;Py<0{X-0a#(olO@`HO9Owwe%Mi5Z2|KEmiSo4gWG3pQ^yCs~p} z?*PI1zI5GfJt>$)gHLgGyj#<<|!BIexHfR>lrn zY-Q?L9g=2QoPbn2(#@Q}=xOFKNkiuMT@-EKa;zm5vk3U>03%`Lw9tYzCA@ z2=fx&6q~;>oahahz+%bM+!+eLZnO>Ax+{o9)z-ad(zk90RaiyRH0pjV`)ua5T2sP~ zZbk)16HOA@>`-e*b$Um)QsuwY(YwT*YLe4pzI`R^Wo}H9OvkUgJN>$XuRc6Z^erV} zKO2If))1Gcp_awcXY*>u=6!<0{s^GX!;Yc!VJoAG9eNi=W3$WL9zkG#lG|mL!hwyX z;>7649e9zOyOf1-&3Gm5{3ez|k>xrfQTqrLH=~qToiH5c0#6Bsj!By5$tSblGJG{? zIP*cNpTj8}?E$;sL$Nvi%ArPBa%FeTgYdMgv4;Ju$D7Fk$;-{Xl9nFqI$ z?A978`P$!XA^U{xi!JI?WCeoh!*vm8Cn1VQim5-0{d1tXoJiY*dAFv)tmj1&2^$yT zxRLz8QwOTu9Ms17+P*f1O!rMLAisw_{bon_xH1JK5@rrp1Br~OlDzPGxsnj$fSfOV z@evsgmZL`45Zw?QcLw12N+QYr0mpm`jtv$Z_p|}W&7Fc{J_h-Lcm)JJzqY^h4H*K* zUVgLSAR@U9IR0$Gv3VEZ_(O0QZVE``riwd$H#W~c0en`4xbK+=5;7~BPe>QGJP8F zbX~L~D0;O+tIva?RUL{hh78#mKHi~dYS%^eLD3@}THO*9-O-`w_Mm8fhoXj{Xm*F9 zMM2R89g0>5Mb~yHTGw^a<3Z6i9a=pZ6kXM!=q*d(4^6|WDHtbX$-|rtGThtc7&a}- zo(o+Pu5F2Qz_kZ4@>#$?QraCG+3XegK- znh0t*0;kv?75Tifx-NP;G>!D|hwEC<;Th5YMpXJ&{=i2V$5RDAqC(6ZT8r#DzU@Hx{}{Or(Ns4>nr+)B{#y~&s6V#ZBHI7X`-%DNV7~kTj(%qfMeV-f z1amNzJ}|8%!;7TjKGFxCFn>7FJaFrW`uLerh6Z#{0)9^fs2&p7!mk(el^|#7&gPyz zspwGD?G3|=tl@Hd1po7?P8Ac=`3li?D89+5DBe=QAM<(QN>A;2A{Y54;IQ{PD{>F^ zdit49!-A{)g2AM5v-oooKySpkmD_e}&EW)Q*TDa-UfCV9W=-ZmUiUe0ouK15$kbvrrj z656guaramwY&eY<;SyHfIgeOAP2>g=u?}TNUL30soFXr?$V}&DEPpzPQgcWQMFpJ8 zfKDL$Gb*nFJ=#75FqGeyjBG$sIngeK*erF6i;@(6x>zxhpn5F4Z%2yImrPD`8gwo| z=5}HjSpwTm>k{t#_|w{fc-+afbXQ2zTHnRA7L9CST0LF2Zdx((L^)!`)+#%vYfX_Z z4D|M;(-2f|B7w$|XFGv0{JMjgT2cI=8a84mvWv7M^B|e|?JoqKrOr|vHu=P94Zot= zGR*eC0}p!AUSbt^2;aW3jv1IVk&tr3$g2sF@;LYJtP%PVm_X1U!v<{-t56w#<_Yd zX!viy2vVNpqS>6%V$H)Pz8y-1&D?j%M0w&$;vc!IMaWdKG{uc%s2hrHXlpmb@MqlK zsS5@a-q>`F*RVmwG$uw4o8yFHo%vU~QA4hFb`HT1Z@L82m7ug%--N|piBhg5GnTzd zHjzj)1YM=gtF?Vi8(zmxPz@t3X|jsVJjG#uj_wPRb@oz)aB=#m1`G41SOb&hfigrd z?ZM3MI=5M7iIs=RCeAA6{aLy4^U0L#xY;gfOF)5XN9N#julep%%9HKv4)w9tN5EW6DUFpVyg_ zq=lcA*7jz^HESw{5?l$Nia|~r% zv^5;=It1}yN~=mt2S?^KLT=Hjj#QIDTvkdE2dL1J$oKnthkxIyC~rhDPik0UvUC&% zUd^ig{nI_?t8kfq!@SA;Tm9YA=5O>Fz86M&nP+ z?+0dfRNBwB$^!eh8)zavS634%@NhYX*S7G!tUI)2ok9@o{s89w;LaV~txCii&D=4K zv<1K-TiCMp+p2^hk%E z9u0chlHOCZ-_sL*PYvqn&Y-6!gPu+bXwEl86l_}gm(%ma!x;|i@Aytwom;xpKbf4w zbsUH{Nz$czDR>56gp3n74~>PbKb1kU9b6bwMC`~!kDE}gsFxJW3wgy?Xu17uE?KS7 zvp*-96(br*%r#WXald-Rzd!ke`W>i>ve{pOuarGK*ypL?l;+zh5hdgMg^mrD_B>Rx zXVN@tGl|Wf;I|8lUxLY=>Hzq>EWf!T%E^-oL z=Y!`ctsv}+%yecuV#Kjp*>Xs-=KB2tek;a|!s{nUa)O6^B>FFq;1CHs+2L$nb(7s< zCp)*pWZz@5@Rg*wyq8OZ|MHkRvY2O@sTolHiAiuO4ZI z()JvzCr5l9dGNKMCrA=G1fu%o@RZho6%gslESga7sCGEP4}uw7+6$pTEOkFj!HJ!k zf?)Y97m3BQ7vNr?y>0TtAqcpQHLQ6KzSCnBIlc^-i{)Mi)8>QW zS{ZV_yKRpZ$d+B3z>779Cji(LHlmw00!blot2lu+Tq@$ZY%9t5iLzxiF_&yo(IH2l z!!S>l$|E+yCis>kr;y?tVgQ}}Yf~98-${m6i%cKFu(K|An=Vb^GQ^f4h&E5_MXGB{ z!Yducw849HfDY1UxZVfg%wrKdNmNKO2RH6DzFY4S4!Gv=0TC>+xV?@*!vxL!kVt=i z4fezBNo_w8lkag#pQs&RM*u@61kA!|gHsrmH~_ljP)vWk;RSB>oy(UZvlMR|+V#RBZZvARTNyT8F>9 zcO^}aEua@Xaj#_-GtZu8OA1IK7F$(rn$(iF(E`&CR~RM|Zs?VWKK-C_^mc%`J~Q%N z{0TFJV2_Nod}w}Fia%R~WQdbwd>VqPbbW&U*Yj*xfMpIsL!{jqnac>!H!}-?s z{yiAr_KU$0Mlv0|heu60WyxTvO=D#F0{=akiw|XuY>RfKzqjPyr+jIG8kN?Zg<>C(Kaut>o zj9^K#0HPj5T@Q!2uhUI}Z}QdTLrmunJhGMb|& zntRBEr=XEt) zqhn4TInp(le5^uU>te4O5NZklWou;F?zZcCNt5JY>1w;`orS1vC_%WDv)xwSKVesU z*&N_Y+r1ni@qP;O*hs*BcTMAUQND0{kgZl?tC8RnS69DhevEYS+d7$F-z9ud8+(C* zd@e!+7%8UqRyUW9b{2LLCtf>IP~!DS;Qq>=Qe1Jom<-^^YctTZ91f%c+f76Co0`dv zj7BTOe$^Y`Pd%rFuWa~EPD?-Rj&Su$f$9it^A%vmNF)*klUn=FBKp=M9`06;v|AKK z*2_f*8m@SO_7X+F&)lLfn1Cp=j0XNtw7C=+5fq9U^w51lp{DWz=d%nq>UOtL%i3?$ zUYu)IekVew5d7R~R9QE@0JruI!`BPLx3pro3nvWcI>*iRzI~bNTz{?vJ?-0EH)*bq zcR5$$F+|H2w4ZAlF$#$lcRy#^x+p{P_~Dx?hBgCDi&7rV%sf zF;#TeM)UIpcqu{B_*&Ji5oY=D22d8IJ>_usSsSJ5Uz&L=e0Z~IuZZ9lfqi|KV87Ra zeO`O8?;ScX_EBUfp_TiD&QEHtO<8MELkDBS|7k{ z6)+R58mi*O4p=YyR-8E#Anwa#YoyD!Zh*RqAh7-esjC9Oc%};unPbUm6-IJCn29*OMNYKPwZ!^S2qHR zw;dZpXLhqEWmMA;?KfH$v{nNel+xPL_?TwDA~# z6&_8h@y}eXd?F9GlZy7+nfs<-e-Uz+WaO)O*Eo=mWD>fJaBCS>W=^nqfbhcY2*jo4 z-HJ=HbzP#2%_o6bS0a6X6aC|Dyva$D&(>$T-*|Sd@o6HrQW3AvS3rO8>EceLD~B}~ z>NwujVM~MU4`nOW#!lu}?&9n|8Eo)(b#%XHZmcT$U&WBEK6Y6UZ5xuTXM$xP2T$q= z*#FFnZX)+jqD%=6kK&B$L@-g|Z!sq|Su9BxL=>ZI9~7HSP7fp!tFXz3|JRjBq|L3y z2JH;JExvZ=)>od-PlAPU&YF+9V~UznD(w+rX)9vAAn|2)g(=Qa|(KG`ZiFIFjeb>DI3k;AQ1{ve>tfP^W;+&2EEK< zq>GSmg-j#wvfWv1^V+exM35fmud5BRPowTi4s9SllH7ylQw*sTn5Ut!TIm9^W?{sg zfVcfv3$kakkRiL2IVDGAnXj;O3%s{+nO(o1;vp%`d z@(DOSOY{<6l>!6@L$kYr7fQ&cgjVm19r^xWbJ5gW4zk47u$Yh^{z#Ins^{Q+e|y#rKw-UJBw=&u|h)@#*{*8 zU~+o{YmY1sPxfciSDdAGh?rAx&WTdJ3#HQCty)6NzGbFXfRTDx)o!f+WEyIhkSjFM zgqP#(>lESIW-`C7)_q%87B5YsPj_}*G{3dz zPRax?`(;wZC?~f7vmNK8Ch=kxh_T`<-=e!%DRI|Tv@=O!-Rc5(i`{yL{`JG=ooW5nG2|977^$$&}<}iu@r4pPcn%&PKmg%lT)c%A+%}!7bn%-}Vf-@{ z0G{M`XYKZ|trg(!>k{zp9i5O;t#5_&Kkh36!W4H+Pr;r(!1g)ztR1|4G$hy(4yyE_ z>Cu+F_9@z8J-X&u44Fd2Gr_~s-GXD2z_Fl9aO@fnH?>0NSG&T){m5+gp1MA!70&B& zg=ri9SnHC0@mE{Y-V)d+w4{bTUD6Y+OZxd=ZAs1W3`KD~-92&=Q5@^wez?GF;Km!g zP~!qO>b<@=OPj_@cUY9gnjRj@MQrdfizl;9QU+bcZs?hhsa5%0jNaSejbjxAvejo_ z>&g7K2b7uWxFPoxxZAjX^esuH%PV2XB4pdRcJOtWhXlqibp!Aw#tz6{8sUE~7_G5& zw1!Sb+ut;q+lahvA53c3v{>sv$xGwpF9$PU*gEreaN2X~M*nl7!0Fnq;q+QC+TE?A zDRwoTr4u}F9>?=8-qq3_hN}eD-sAtqxsZq4WwfS17%d z`)B=7`WI{{{qcYcB`gUWU6YC2LEP4TJQZKeu*A!gUJ&c#7dCLvcBG*DHXSK2AXH?F ztOBYq&7LH5Ye|oE*M#iV3>0mimy!eiizHq%WwvP{iHg4ku%Ks%4no($9^=CK!)55I zLMG{O>g-(rEdZN^^M!rGT!B+q!SoHJp`f){5<>u(!~36|ddmvZ>+-u@V7}URK)R%c zTdPN*@6)5uHd3IzR~~_pJ#u8(#$cb?6g)`yh#g*xv+cyJDnY(LDkyJCc46IYi zjUg`3&`C0WpkZBC@q55Pw&%3NgKeGrQ~MBi=%NcJPe6>)++GiZzU)N!t=k<3liH`) z+L&Ku+D_b3oMa!8F)9ygy}72uW>|hxj|yE?0ts`0^onCIstY6Mxs}2*z2+@)HDiI8 zM^=m>_*ow4L9MAJ%3erN;rj|4(3?s@sJB9`U&FosEpsCd57&TEXds*Z4siWY!e1^c zu@6QpMS4jKi{$j}E-X?Br+hf#+TdD079E1twL}{TiHOZ(3XHazeD;6Uh)CIRLHjnb z#Hj!6(}EPoT7Xx)UVP2v?6|NR5OOsnOzbhlMO8{0Q7+nxOWH_=9kKhe4%p4T*)A3B z$GG$vNgkDEI(VP2Xl21!IZ~a(^+f43@SsM@rP=$hbWyaXGDlwxKF#q8c zt-mF}m`}!u%wi(@3=Y0e!L}A~dkfl|1ls4mCTMSM1+A~c{>_2bM@7YsccQ-T0_W}! zV77iuz}(Ram|y*k;@sB;OoIUP#McB&Ln~l@v9EyHGb3_m_Kwcz6ONF4t7SEi;JQ5r z3@O#i&giiVteGd^JoYt#Gp`jmzB>K&kJFw3ha710aV|-n{>u9wSEm;+6~X$w@q46B zQ=PnQUBWue{IZA(b5@;xkvpfmP^UX(TGGB3N7C^^a{p6$*>f$E2&C{dz52dj*ys0n z*!{^8x}Nwmn)pLqPkd!C@hA6g;$bw88=AN4+8MG1vzIjV@~($|Fc^BvejoZ34c*xF z&})LBAK&Alqa30xNr#sEy2f1G^_a?J-IdSkY0Bbcp^$^(&)M>I#?8f}2qL-#Q-V*2 zl!CCA**+Ylbu6dnLEPXHq3)IK>y1-V z3nkt!0R;Ug&Ewe|7pz@o-YCREjdT8!MSN)EM6e5NlT5X3#5vT7o8{yvBES(QuDFi_%*_d2A3NEY7fcxv+@Y!&WjW!^5M8p@kxu*zKrxcab5Y%iu}U> zKsRwhgiF9jn6J7Kb1lOtx3c%aFv zT~M$;W-qKSufWZ39`d-pju(t=*AJ!n zTUG(G^S7UwFU0gm-OO&$%)GvlU-oCT8!bdKc`BjJXqz?K+^;uUD!7tNVhs*^YexUD zV0BjoF7-n@y)w5_d3&!RO6Vk>?!YCVV*L#Y0yQl}#@aZSi*Uy)!1Tk6dQzAXZ*imIf8Mq!VVp6- z#hipQQ&RCXq865sRx-V8NC2OED9cJ7%DoZaPFPRi&k&Ad%Q*i!U|4lK37;_R5X4^w ziOMu{`#2Zj#u4?qeScUz-dyItKOFXW3t5s#CeD+fv3QGldThRYf_G#Up6MQ1XetBs zzMi{ai0cUi+Db|sRN=WjR$ZzBn2N7Hi~ z2}YuX+#an@Z$OxxLvIL(u`yEMVxrp(-XDIWII>kKW!*Wz%qFNsQ5w30jZK!M9jzA_ ztTlFbab!Kst(-j#cy*1Ryf7T_ie4E6@{ppic}(P|+`A#ROX0U)Ke($D4%txMV zF#pkhT7mnO*?ko!??(zUTLaZ2kB#{kcai>4j@SMjwLvjcFh1g=Itx^Ljzk%m7+$uH zuICYWUYv`a>P2SZ`ySo#HucIVXuGl!E=c|wcg)Lz<4R)PFh5%O@em#F!342g?vQv~ zP@BAA$0Y|x%R!>^pi$$z-*8XCK9p>hkSAW>HxL~*j>GvykYzM%JTOBQ$f-%d=Qudt z?CN^k0Uyc_-Zyd-K47b*EKXjAwXZX%!Lh7De`1I?x8&_+^26`O4G zxY=19%bNpfy?;*ST#>Bt)NjbvX7n^qaJ$p}Zsd2i**dD$3XA9S3eh+Y#Al={&`U}$ z*EFz|BpBjre{y8H2(wAaX8Ze#Qa$@u;KD2~ijnwW91g7y$AhSHXfXgF=q)_SHrqxi zQ#Dc!*F0?op|IZr&3zM!Add)82SOD3+o$FbE@EUrw;g_}4nNU_SgYOL(TgLzbu=;s zXobyO*Jb}qbUzQe5j-F!O8z7L;j;LIP^*Kd2@uRm$DEfi=JhV14-&>ww(RNn+h^4QjT0(^hSrGhk~LfI}}YMb*F7LsYB5v zLD9$M{#aGPrjUffwK_b#WH}+Kw!h^8pRktEqqoE5KiR4lA>K3i|=Ebpf}2{U_`yC%M^U!iTYZkYeJbJ*nO zpvhhRpu%^Z#dCK5sNg?jYp90a*gzuF{*8GB+IeNtJs2K7Vfu_2EulH?^(Ce^4 z7SL2Qm#4nB0g36*o=3zZkM{j7-P zj8>x=nA=EjY|RWyvPcv~uCG^!FUXY!$So~7#HGt7Sve_%sv-5SRz*(9phD7I$Lo>V z=2r3oC1Hl`|L)IsZo`^Yq9YGhSkE`ciwJ>%xrCcf;V~(*wL)qW8tJVOUYIto)=*W6 zu5-1bmptU78+jFip+6!lNH^R*^fMSN;Le_l3KuMTnTvEw;G^+=0wFzZ>W^WyvX83h zcRLqyIvWW|wZ-p!N)5}MMiO#MkY^A=-RT%XfVl4=2E5#^l4Eqocph>jjFOvPyy>l* zYAY+y`mgq+`@c~^jz_JFH#{)1lA0*jLp!{YHv(|Tzr>rUbh9BtyO)b2{@ab-0R?2Q zuGMRZ8@YUcAS`DgkVb#v1t)$Mfh0?5RA3gnT5J7U_wlp?)7$`m$s4^bVu+B8@yCe3R#P!)5Gc z-@R`0`_rn`UokIT1C2fFMkYr!WQ(o`h;*jl`WwNsQ%nyBl>(rW2UHsWFNO*fYuQbsZNb1L%97Ee#l{}6!{Wkjh>ua7_# z-hiC=&usDQIZhVG9Y(-GV{eyQi*!x1PR?5Lp&l43=It~83rE! zD7mlJ`!>DOh?$8-2M(T=c_NB6inPw-EO#F3Lxd9< z(G%cM9L9K~qBsDOthsf%(zJ=U83IrhTTnry8uurtyu6Ov#WP${^A<&+p zoAB~ah?w(jB#St>=?4QJV*X@J9-Z>=d#T%&hhJW`H#|JoJQjrqXy-uQ9W0_zFD0>d z0?O}%zF6H5A`pUB#APNYreW`8Zk|+e!o8Ys?@cPis%Y6wv#8URCWN z4Sd0@vy(hBZ@%EAV_uPxbTe^$zWGWIP)!_f-z`43d*uHx{<&Bbd{&mHiSf{_MI+>! zR%WH!NcV_be?=ggJyf!Z_>4`3_sW@}LX_+J?s-&AnHS6LgH^Y7r|9YOT6dggS{`6U z28%blWan0Jh-21gx7qc)w!7~niDHXXND|zr)B9ezyd*Wt9paPpqg0?Zi@83M3z9w@ zVP^6_-NhMZ=*+9uE|5g$?+e{^?uC*P`62LsJC)Fb2xljVMv zoXP9=o4 zazy%;NY-FE=-t}+73Ib(tMw!{BamAEDLDop3ZzLtUJCb@CVE@RP zO&qnWCGu`?7`m)G(|w53eH161(|rI6Oy!=<}CZ40nZLJS(Afpyt}{(hlxp&)J>@-HYwUUQ9%= zfG|lfCanab4g^Y;b_Mo8n6*GBY*6H`1Jvzgnwdh+ zLhtyq?2a{8GQOh=jQT)#UM&LK*amkv$>PoP*sA#zYu@{9eijCT+^TX|v4ta( zY6T;w<0xQvD=C{fs|(m83S zW|OV;F^@Rl_)K7(4;+wE1Y>n~K(mzYJ16*)+yLnW|9t6`_ptc~a)80|zH_`Eob4T0 z;tjq6yJ)$zaw;rQ%uZ9eb@d2MTDL*%wm_=-mT&`fYE!qz0C@q#>~a_^MI*EDtHM^wx~#%gKtEy9C93l#^#bXFFQTZ+<;6qBo(a@ z>Dq}VZlk-s7VNV%h#YvU$PQ!PCew1R_d7Gatls`^NrQj2$4sy_z>EyY$B6Gzi8_-7vLe6@#68u7sC)fhMb7qkDuFZ-Z zfd?TLZ!~ZGQE&uRKEdR{GXtl{uyYZFUSG|J<>==Z0P5dKgSqw)27c|2R+6xF85vFT|7Z|~A-IqDY^xC|EYH z;&Be1#Ux@#w)m@ffKm2<_eFpA`PpN`yxHf%|TWfPMk7J=lK_ll-T9g3h?Rm(bgrZ zn@x4rwe~5jHr?%PyCZR4m)#LOV4cpnpx3-gKjA}2Mz#SHx=fl$JoFkmC~{f+1ta03 zyD?#k>u%322Eos*mH~{H$ECGQ#hFjWQTq^WuGEAVa(I-Ni!d`r=Id|%EfyhvDaV@D z%p+xD{nD0t%6fSTG4Wp3@5%K7J}_-aO7PZvIPVL2G0M)nx$NuD+dQaQ+bM746@vt6 z40A;W575&hE5>mYmsHoK?Km}BO}JgIU$3Why?)kywnaP^E_tCFuTvM;4_mO4_C)D; zz8jeLZka_-aY1lv(>UE<13V4ZO8UPTOFsrn+cUeS9$4<>KNa?0Ri=0tdD6tR4>414 zG!Klm0L4WqYp76)n+AJe9uPRDv3yPD4*-0Jb=Snn0K!KzD{^N^=cbn;l^$X9B&#LO zkF&j(i{fa{IKHx94^Lw!Z)f{!TsC^2)@U9mZ)Tm#d5@h9AEn@%L3pEN-f#bUXSmSG zIhy59(>z_z@)dv18+hgSo^Wxt9ObsTqT5pLx;B)%9?EqJlH|y^^_abylNTA(PAZ+% z+s@(Ey_iElgwc?ibT*WP)$Yz>t5_z`C0qCo-<06Rt}R9u&TcpA1~=+wqxNLwfVwGC zyr&RCVm*f_69ESUL@z-{G=h`Aa||j8KDHBmA6p(inT^$vKO&xCdGk~it0V6~!w_$d zfOm!b;4O82u$Dq(B#6Z1gk;Qbn$OCby=IgOgYpdcHwfE6jvR^9lS^ClwJ7>iajbKB z`z(5{R=l7l&z!3J5SPGXrKK(som)u8SYJnk0nU`$WO1a$>pRi87LGFqJI}&@OY6*} z4Fq?Zv`%ZyZj>i)4b0rPHHr#c;dD|^Wo{qdGHp+#Hn??vHgZqsMf-JY)f{4xsXDJ$ zEkp^WteXEh$1o7s)Q8zD&=mxKIv}GAjK1@U_33uIfDto26mAwk;$cBzMgR$CJU`y7 z<2`jbT^3KE6koU;SRfloS$i`8Qp7bf-@IOhf+|;&dr65?xpq(&J|286KNp*22q5w8fGTP>PM~ICTSv7T~lKP^i zW@+uSNfOC93sg*-w!&Oop7NDTrwvK~J;ppbmX%#cye*-k=xF5Fazdf6w2~XscC>5d zGS}2iP&W3fD`C&(jVKm&KXxx9yVvFVu&nc8xu=h>r%Qu?4Kw>@9LnaJ1g{3hkLAA3 zIeO%BHv-eW!3;ha?sjwEW-yJ%NX^bTz^+AJ{DAcgsR*h$uO&PiX=~) zr6Xlt52faX9hyFA#~&Q+V=f?qc^@GR4nQSFK+J-{!Oq=}kHgNhhCtOd=2*SMH zA1Sqx^Ua_mft9Mm+y^ZiBvm(bKc#o;I-#fylp9Dd5 zt%YlC({@)=S_@gSKi!)G`(t47?svvqC{NoWGj-Cken5LTA^p3cr?LtCVaf`)PT9pyRgtiW+3xPIp^hHeP zw$?0oq1(;YT05x4b7)D^Sb@!SAVGe_*hTtCUT>{*p?&rI(Db%*uxYymErej<*EZMm zuD4&z>x2ip4@K!8h*nS|sxVgmcY98tChm*I?V5ObGX_09AiEXx@{qxmY`-9GF z&rD=^g95X}avTkTt_gGonHN$;-gnOO29395b#Yi+C*Tb-uciuBoEVS#UMejjL3W)6 z?`Ttj_VBICO+~>_P-euH~2DHxc8vE#ahpFG+`R7OY+?!|~WmS&F{GiF! z&f2~9-un3&TBTiOYAsxg&OcB)e{1j@du!PeRC8OlJ$R43wQO}zwy|T`gFQ9i$&qCH zZF;_^-`#qyIa*X)oaLJ!TKj#Aw&9J8*3TDn&BjjUuCacsZEM+zpzNzL9m-w_%C>bZ zyBJe|?Q=oLvUS-a{DY%|&2^*wSXMjWyK^Jm%w;(ldODu4_EG+|)7Ht%qRgJ8i^p)1 z1|x7R?d&W)jM@)jb*j#JA^n^Vmb9g}ttGcu{P78H>*qNM^v5U4&|G6lGdIyF^>cF> zq!6t#;a`_%t-Z*0@_SW!h-927$4e5{0N>=AEKB6Mv(?&UwQcevcj#L`Z{l+=9}|y` z5wY=Sv$k zoSeZ69wE_gg~qfD2SwALWqRgAeszEd4YF9>%+;n-;uq;J6T z9|YVd=rBy;4F@Ta_hsN*=Xu>C|B|(&`d)1>S)(VAY|R=-ZXy;~cUxLw`Sv=91a$vV z?xNr!?%HTyAo4+tVoDa0WIRazYqRF)-SGd9y)%KYs=D@na`!!#n@a*D5D0@9s8Y2S zv=)a7*7iMLTWsIZ_O-En@9#q-mL~#+8|FbHqM~9L9H0;!K{O0br~z>T3<6GQz*#Vk zpa>{}IQ+lAz0W!K-XtIj9p3vqKYqx$`|Puawbx#I?KN_p3Vl`%3x-vgMsCBxj*jwU z9+8Z8#u&rgluhE?jb7nHNbBS06o0yQy=rqv$6F9el_k-<}=N z)@O}=8N7haX$Y+F-75cG^h|RtdhzHl%@&}QT8x1~BeP*XxNzfEm<<^Tf?WR+1S27= zSNH=&FlVBc#)xR3Mz@4yde&e002}C_1{SD+>TlP;zDICEFonrJ<}tm13%Vl2D6xB% zOm<*;ld`!Zhq#-nw8(LG9q~WVUR#5v=Sr~?SB&QJylHgz=oLVkY)z3`m3LASH(PNR z=1mlIG*_wOYh>ld{OZ=I@9MTA%Ee2OHmUMGIIHX(_M@k;NTQ^TxqAfb{s0#&i=iJi zi_4s-SbYKL$6(Ba1=O)*CCDMWs!My6eMH@sttc*AlR`Hl6h&T=YZFEdOqo} zt@r~5k%X0QsxxqwJVGaUY6AEQ$=I^o0_;=IUygNHgz`x~DFC`_NQaTci2x{|S5t!p zTr-%%p&TqYFo$@7u^_ftYQS>?SZ)hpdBx~T9Xp_pEH-WgRfJpe2V>|$87S{-ytF7& zVP75q#yDiyB++!9<0uMeJgPbec}~fgKCdf%{GXTyWh1x6%Q(li7}J$qhNg z@^3X{hvfUl0+2g3e%2Q#FKQafj|5PD!DFj3Lv7Kof%2i=nCtOO*2Y}Gg4&I_UVHzc zF$c6Um3?dydp}{8jp4?9(oomL69#L97MWWBvhN7ja?JWfxpp)~xvq2v<`lb7S9nPM ze5jQCC2+3*i{zc6YAZ*^cW5Ff#LRc3yKHA>#8?rPn0K(eb|t`N1wjSfE}x9~ve_}Z zCdEnY8$;*gx@L*?CHtHEU2g8H?cCpV`${AXN#1Ozl*6QZT=`+1_SdFJ$gY#e=fDF%rC(@Q$tDH}YRR27<7B}U;?s@QZw8`_J zE`a63AuPX^Qhh7p>Ildb`HajP{q4?!SJQ!ee*oO@Jb1(bx0CtF-|RSey=frV17t`J z&dN6vIXI-Io1%@W>Ghs?V+{-zYf87-@b$-v`eJtVMdQ-)7@!PS4XyRDt!WG$O zZv=MBi@nv5T36feyE-vte!!U`SGE_#OQpwDTqlfFll~3Spxw2%H*J{gxc6g8xR z&X?4^hx`)o?@tnYqXSmwSh2O-zyTRKMH!m8M*I~6xgSW3Cfzm74Mk{ZmgA!9Up0%F zOT?@w=UVk2wZTQxMOq3WbxgL`O`o<-)*R& zxF2;Q^`=9%cccwSfb;G#=whYO<3=kjhCQ!SHGBJ7jICL^Ki1(~>8pKY0dyd0pGy?A z>7DbX-nxB!cd{#1Vo#YDJ6_Vt-1}{z1OhK+aazs8VhMbBlw6lGFM2Oas>(WW>%jVK zpgEy~!_712%S#x2la2nh*q{kfY~&IJmF}Yl7aw^~7D5H$BWqN;rf4yikN1@<4`rig zLjk3`qq`=i;G^riwfT8FOXhr1nfZgQ{tE#Jjpq|t#a`z{IIqRgeA-+FvbKsRW3~I9 znv4!5utH+M#oJ89rzHx%z8DBdb+&vobNo5S>Z_z@k9xFShT?NJX9Q)nJ0Aa`$bZnf8SVj~M+*S@f`>1Tf z^@;7}i|CN%q1qMSGAuG4t2dQX4d#hH(yr205MM~y>~X3jgq#r zCW2@00o1&9kuwTZkA1)j=bFdl8Z;NPIVf{&gbS`N3h#R$jP(Ce z`8lqM)KhwxdDpA3J-jtiUgeL8Ip)J)4Z2%9`<=*yqVU!m+2#Un&r$>v)*Kl9z9p|{ z`-?ePtYM#7Fcw!*)$Jk5zO_HtL#evUaFj=4&= zn61%L^h67zjMY3lx`J$X+VtjuF;vi=XFAs0)DoTLBl)5dnnM+=-~+ng2M+{qt{I~U zHR>gObJWb5OsiiY&*W9XBP0W%r1iv(`MIaZa#kUmcO`k_>3dxOf0nitz9 z&H7}C6K19=eHm1$rqb2f=6!5X)V&$#D*?9b?AEa{eP}iD5it^*nJ8sR$RIUb;9CO`A^h(|(pf4P5Ew8MG7n-;m2vEc%*6%= zu0ST6XV!uSI{I%TIG8Z-8d7%Y_x3!P+C{Je+$(UfgW)*|l6oIG3H5ejtM2#@Z^=?= zp_w+=y1(X`Dq$gw?3AI8B)HV&>WHjdVH~d*iZ^&(Z!Bq(-F44QkJ)BT-;_B_p;XDp zL?g-x_A5a3csX0(KkI0MO*l)|`1Qo}WHg{0%FMVfZXpzLzO^#ZHJpO9u`#E1UqB@A zVRzckA!10f2YcrpqBE(xr`6rRrGnl1`C3rs#LVHoF6WwH`OWc&*Ak}_M)15OU}+EZ z`-BNaN~70gn>!>b{Ds8n=12b5mEqUdF?3Xm33Es5;%KE1Y$J(LWvsD^sD!qlW_;3d zys59Yz!SBXi0w#tss+ulT7J9CYHDW5NxxpkA60o!rOlLzoaL2rgvp;`Ha|I3_VH+z zmQ|_#V|hux{w)9R9REA=*w`8mg*9fYhFMVtjy?q;vb&zYzE~j8#0nFPb;!`bCFw<~W@?Bf= z_86eEcQo8QhmGaJScKY9NkGNnHU%AI0lQ<#s6N>9Kk0RkPDMM2UldlMa?kjQSfv{y z@-X_Ld7EIS6quQ#81*!S_?8B}XB=@MGsC4CGuZ&=&?Y7p;?OX>sqbIFME0Mr7?4sQKCD$ zqH3*+N|?|kBO%trW{CN$=k?(MybN{Q4<&}WjL2u#i!s|fz&D9VRYD`{Dpj@ZrAl#A zKL8#rvcR#8w&L>(5mu~08Hud(A2D35CP1rDOnQ&fL>ZG1X{OW#^ofO`vh ztbZY=zqP2Bb7q=9)tGZ@WS%;gA7(6pt!RU(3 z+oOA#nbAu96*YZ;>TOMFslCYcNiv1@=A>TUVb}necC-|$kvYMC6B1&et#Wz^RSI3^ z^QGPiXAzDUXjDN77x2gj6$pHW+3${yy}$wInR)_DXK`sG(EBfhB8%zry9;?m;ZuZR zpwQeMt>U>-Z0^&R?5@N~wUt?hlS%vDUjEWKbJ!uEPQE60hx9^lR{;&OK@X~M2>fdhQ<&(#tp~x) zjDau$yD)SJu$7LsAhoc_SAjQM8+`pM-S;Kw_`l^I@c;S{|2N_kn)hQ)&he0FHWnA* z@pkB+v&nwJZG3x{Y-8%YGkSR^R@l9%Djb~?5Ng^HRkj7oKN{dVvpQ!-$a-?k`_;Yl zrf}xminubigI(>({FnSUj{4TfD9*)+#y*4Pvlk~B8R;gpn(%)VAZ~WqlCLT26P*cR zFst1a%iK;%Dc6)sIP+wol}9x3VQ{%~4K;3~oM}8vc$N z$?`%cuV|tH`+hsYb($V|cWdDEq*5mQt|T>0fAkg(`!s>_1zn_du&Dy7VTg_weVL5e zHZ&1)B431IGs2l5AsnEAz)q2^&NjHdjGLU+LGmdq6>Myu1?pnP) z&rVV6ro0wu>o8HqA{_7sybg^Tv{0=aesFLHBR(qUyyEJQPm{S8(VLzjBrD-)nuhFF zAp0-!&hNrKpeM+4js)eE0FzP{4_{WH)QYz3?1ksmHHahXP~`CT)~_7v6sG+QAP zbGWzFc?D-tR%q4}2)j8&%d_K(k+P1Xrza+5LbJ=p)tWuoHT<=gJ;^y$b6K|ZK|$4g zBgkAjt^_$~Eq`qs0fe`05VJgdK087EekRY~i8RBBcTofvFFT5lG73Ce4TbM1p79bSikkXUZ51@k93i5gzT7sMmU+atY0NQ`##h*k zBOl?j)l&n8O^}7+)k1eH6e&X^kFWKKj54hfyfF7!hVBd@4`}oD3i7kSQkS`TZ$_{$ zXuXj(Kf&YGc24M3<;$Wr`_#lw>|#NLoWiG$8-40{yH6eY%8~~M$?1h9K@JgwPks&& z357Z7=gIcwMWu>Qv!Oh}(r0j?eMRFBg}~5~n_u7DyK&a!k~0aMlv}~GUcIQPxsE%Y1j64ufwW*ngI9w- zYVfH;&>*aO%)G_AvmMQyFyWlFgxj_n*2T!RLXh`NfjsHdt$!!!a(arLp4kX}UbI&X zxPlwFVrVuO3gWUG_ zF8$f)*de;UM}LrtgxN*lGU}LXM)=pBu*yflkfw4qQlH!Z+tTkg9k%r)ZP_E>n(?l?omm8om*7@aT3rTTG!rh&R@n&+>WQjmGAw1_ zzYsR`vdQ+2NyL9*`@Ola_L~gs7(&0{6Y-)`Kd8xP@1x^ch_hNI%n#tkbf(lrYUsWt z_cA%&A{{2XbWiUzu5)Bnm%eQg;pj4{hv-PE(SKb+qxaD$ft-h<#qn6Shvl3$os1?e zMNn6vm+Xnv5W3$Idt04?po9a#e1wZ1_4A0BhQbGKYp7jK5GF?y9T&N|D2-l1DCsgL zRr9--nacBAC^4QNPUK`Q+10!kVc_fuae9;q5_RcXCsUZ)(pCJ>ETtgoG zjfbo=N<&uUPmP%736X{bq;s&qogSe5l?XsA%01FdD1HQS!dx1JIl6)z$k6NT$nR(5 z&4ZT9)$(dauE62e7fI`yt;_f`ly-8435O}RGQ38q1X=dJI$d{>t?n*zts%sSE(}C} z6=B{yDw8R`&<>gOUeU_Iu&Z!{O@s%3R zOe{~>774SVwa?+Rnd>aZUKj3ehq*U|+c>4&X|Ro>v$Ca3W@2mU{C_gxHmr0-J-z1Uak8!=G?B8C19z54P|Ru;x+e_qwY2ZHo6PxE?Bm~>*ECVseS7q zj7h}Lf>UcDnPy#Tu`Kt!37A>rc)-ZhP2*0O3Cdq!)jMH3Z_!R3#y|<*3`j4QJqXaZ z^8!mIhX-L?&|Qh7Hf2FR{SueP zYg3l2zWgGReZ1x6&xy{KEPWP2?Ggw=J(eW;_Vui!{e6=n___kNscPIbzApI08r$d_ zClz}gYnI?62*LHT+O{KGfQDS1KCCN+*Jfwf>-B!G@A4PpUVQr;4y>MM_g%fc8(2I#mYru`=3x({wgq(F> za72Aiq8HN=Dald?f!$n$1m4Txsny)6TDm-QhQD&BIuKIeAb6@niZgup?S^M}U%OR2 z)h?nwr_Y@TZ#X}$fuqVbof)P%#}0D4k`hcK^4{T!8$z6wSo|$&d`C6@6R{(YOxOG; zlif6lYWQ0<__zn(S`HVcSx)XC9sujs9bHh*feNxuzMtYs8Szq zr#$0M3icrBDnv|v;w1)qUi^<<;xKS3zQgV0u-5&!cG{hM>`?R`fn8y%pb?A)I5gxG z7dfiH@gm{7S#C_Hd5JQ$>>GHW6@2{1EaJuWN&^i^~X1(CGEkyavXn zdB>Ke!8rVSBd^mY)zhEUpMs(9Vd%koFa8HF(OEO_7c#6R6F_R6?j?paUhc5gLTa@G zK%G+Sd1}zl4Ymb>g;%l+!xiNt5{#u=Q0Ft8O0i>PwJyC7t=1{r@LMLmZfDrvbuvA; zT))jw_8~RuL@_FD$@#9NM$vv+`0F|cI#%uRj)zJ0=A%YfZ#VVYB_MY@;#G>ZNd&(=raMm(Bcmyp z-<&1yO2Vk#I-u_;S8%3|rY=D!OoFA#M$_DFBZm~5Dn)4HLngAvl=k7VyVp}OSt#C# zHlNASw5<}f4JH4EjR#*U_FHOD$XYoyZLIQ!T@*JQ=t<}q5I1c?2$eP>w`6E1&2y3J zj4^)G=^u&_zM>JXZZJZN6dK_}hiHTcFf$l+l6?Ar^{>DgxYOHi_{+v9fzXdQ)8Y4f z8(9@xHir1!drYw&dNqDf7F;5Pt43 zkn8|+xbqoXJVD0T?9LwQb=H+;V|A#`YYq9x%pjpNrCTqGU#WsLp|Icy_ zU48sYIXOt`$Q`%A;r<^1Y!Y1cENexUO3QA9Z>-t;6kTuZxe=BZ>x)#%w&I{AcY*R_ z5rn0;A=cr-MQB3Q(Zy&2ZoqQZwHVg9E2#6DU+31wb?yu5yyVxpy>Xp~f;!KU2SR-< zjs)3i!oD62>OAGwxi_pcI+%&mlbAf5q$yZ968;6;M4K|zt};Jdy|jlj-#;YPeI z<$xGgdJ;gu>L<)*xsR*XoD{EJ6o88(4(|L{UK?z}e#dnef$sM?h%3x**iw1s`&B59 z;|si2@wHx2{46Y?cIZ$&k;_0IE(a%-a+w{*Y495m7#LvzY0YB7=ACN+gZQ(x7j&^- zi@1PH7)XGMOB^nRwO?RkT34VT>uUIBGm}BKmM|A#999INDn`Y931e927M6pcE@x4( zrMV6nToJs$`}hX9-*VxG@ym~$hQPQbcRM*%RG3vH;$qTE75ZJilhWHPL-kEc&3alm z9cvm{slCj_mI=1$caT{!u(h&r9)&8S#9Sy4SPtteZ$VyT8zVzx_}g} zTr?2+U`z`i{n)dQ*SDnO7Y$Jp1$U}^MU5TENV zBtVi~==MS7BZQlf&cG8Xd~p;`_Jp~%D-{;vH5G=i2@8+29C3r1&x6_(s%?JbvoK-( zmx3+)oVIX#vnaKJ!#cwH^oSkdi#i`y7_omk+!CIEoLzPlclk@ z`{FkNREPl<(xuXXRYB7=XDN?TI2_sjq) z1R2qq6oH*cJ@Jl6ln}rJcdT+h8*y0kRNtQc0Ry=?6HI<`3}!VyMf-!rUZP%JiPH7r zIiJ0imKesynuneB*JTGKW^T{lf{_X;Bx92pTD#5$47gZ*`^vXbP1YwKWxskMM)CL zw=#?V1V4X~Q&~xq(p{RA0$#NhdDWa9;D}`>XOj)E5y9VR9%f~vA{oY80b#$nt zuROD9D97b%X!d$A8rDxRcvHbB^zyM`^~~;Na(!wtb7f@xDkHXN^9I%iQowD_G`S>ed#;!FvQ+ zH|En=9Ddc*cO)= zou&4Gy)`7(IoaNKgJU=4+4Y{g+cmr|T5DLVD!Q06Ami{zy?PC9+!_mijCmcVhB!-s z3EqO}Z_Ki>NvCqMwbx1`bs)7vy%wg#xH%W&K!Qb6iPr+NR{u5~YNixU5tUK6Hw5IqrxQ%b($D)Wo+jXe9dRW_}N? z#xlb@zPGjV{uGrD_UI-(jqmSi`U3XHbmzK)7XU_^d0l*eli$nPWxDbGwZl=~l|IU~ zj1ocW5@lS8paK2P?t9MQvSg2; zW&N_Uc+tIVsOn?|Xb(H26y0)wq-clmDlwde*H_2Kd$tgla4>3?+GWDo^bB*C!TZ4$tRz9+{wq4{@}zO!Pxo@ zF6*yB^%zus!NE5&Bw2Rwjdbtcga3yn&+S{*?@vAYmGw>bAKF9XJlhs%u*3Tfz2Jl& zWM!Q@@PfVr2M+G%L-T^c=jthvl~q1qQ1a{x`t~auJk&3_pgegt!_zO5m8AxPkNRIQ zxNM|;L>sQmr&@-`APg80SVj3^*dz49&dVvQSSTcGS$L#d9yb~>_aQULHfxAK?Pn#Y zN|CCpu@}_dG@{QPFU-5|=-t!2izlXfk;^QlqWDA=e}afE2>MCcsVdt;ndRBt1(;$> zn!cd83v6RC_VrO+v)>ygM|VV##AFop3o2d=|K1g4IF-y>q}oxPS*bezq&_aSJbo81 z=DZmA^tUR$A}9{KK3m0C2gOccMD4*Uo)Q#?jf_?CwL$TeU|3hEcm~Do7=POs2dW;G;SIM{lM+>a7Y-@ll%uS`IAr z7nNb(i92H+to*_=xeD8xl0%Y45R{37&^GTtY8132T#_A4jj<0 z|G_t-Bj)et!0Y#?z6XEe9XwF9QU~A4&_i*0+hy)?Xa-bzLGs{dWwE&LxqXKKqeFnk zgNGb~M*5bO^&NSLrj{)0J0N)o#&kjdL%;y`8$4)O|FT1{YL0iy$|@}ze8JhJgM401 zYpF*#ycDlTpF`7myJ5%q%$#4vqjLY`p9Y_6SwTqU;33HYgKd+|va-th4mz*DK8W+& ze`xu@q<-*XSl@vI&h4w3_PZQf3HixH*ne{s578&N47Pkwzo6;7Mog&2;TTlf3TDFN zpuvOA9#lSXpc;WSg%Q^i4g1#w*i!#H-n!LR1vN70-2Nl<3_OPPO#&P{E8g_Gz>Z1t z>px627~MJL0|uVU9`IZ5H@JL|oh#K@`+k24AnSjdf^iFm(*L}^{Q@RgWAB?BZ0om7 zgCJA(*I!)#Xn)u|^&327K!3}eGms(u`=8(UoPieV{5*GXIX}+s&tz;3n)E+xm6g?h zXurNgY)$6kgC;+$P>^+db2@f6tx zB4p~8DR;hkP4P!M{2048#Xf+QSQD#`HbbiRtm5I^MM_tELe^s)$xCx*tTa|t%xhSN zjU!8=aTp0A21;zDWHfyJB|_kD^)+L`pOVZ;$N*blUh>db#G)%A$aR;E<>$%>m-eM9 zTcvzgH8>@9l2bi{?-EOToruhI*I0hwwfRJZ+v&z<*ZWxr@fu@nG|zpIeE+a3{ejshAeI=5|3u z5g{TtRw)zK|BCt9sm+S8;?qX=`TD6!}ew-A21PXx!(%Cm1mxevg(^a*|>J-JY`y!*A`F3&V8%7 zE(qO(6@4R$m_CMpauboxa^?Jn zRhz8Cs&OdP00;*%MFWVL6F^P6V;7#<$LnwkL$T36h^J8@(E^tE-BC5C$M-;+9!nyS zm$so@%)Eq#ARq7Qx$OS75GO(J>9KgK`5@qDCJ2BR1B+C99rmJt$T5FJQ>nduWUbf! zE?e?D0hNL}|Gobc6W?3MB7fx?0>zQWrzX$}upJ`>Tsfk7!M)_={A}-MxEHj+*J$%# zqDU+wFh1@5*34+7h6r`lMr-sa`d5|yIir+t`L=X+D_{TGuwC!8Se5r%-$Og&C0f|6 zsCs^DrjPTLdKs^Oh9MU@09u;egC)$zv^z$esXK{O=t+A-)?Ke{yp7kf49MiLJ~uE$ z#>b&Srb}xY6E?Sso1+!J_(A*I26O)i(PnmV`TQoO?Sd8*&>>%E*BdCni>C0LGYtZl z=#I-puGy&|Df7nmiGo-!0;zmrqO?@r+Z^*otkhPSB2$BTIO?%fUq*C=MdBMXM}m_T zq@V=wp9f18Dm5#x5$l-P?HxA~Lx5bf2DwCgqSzsDK{TA~PS7-2LV&4jhG87v9<|sK zg&rf!i{e0ZDPg4(cuu}W^pYQ9sHg~#3(9M$$eD9jbA`M4p}83|yY_6<53&?&=#eCX z6njK&A`)AB8hDPSJBG7Mt?_S#*QSEOp6M0sq+62Zavna`obfCtvrZdA!YEGJx+J6M zqG$WayyeKRq>8rb8g`wUUPXF_E-W~?or+?=L}!^K`~!vw5l z734>60vcZ7uOt}QmaG7-TuA+AB96897&*;6-; zt7@WJI>XU) z2ah-xpCgkjxVTt8BhL&km8I~#;BNj>uiXT%;}ez++%mEX3R7qlGHxciXZ8|CyX=gk zA;E1#Oa3#C=H1lbDAJg8Xg@$apd*kEglIdGg38gv3u|7(aqd%;#|d8O2#SIQWYCkt zA!9q(zQki8B%n`Q@M75yX{pCO?qU00T@xlb z6Md^C%P-;$mvI#6%fn4Bi(1V(6DRWpe1tew2y-OT-o|VsvQnq>K(+5f!vqk&o&6pu z0Yf89$TD{{s~1mWwh{Hk@igK>j<4P)PgMZY!+>Q(IZNZI3W&(sWJEJKo?i55F|^d{ zK=iO$CItg@KWv&9pw$F9gZ==JJlYEb9r9dXCP*~+5+-PAyksboKf<4UGjW<#c?5Z- zwaxaMZtOrIjOnHw0))gnJsdB7q5St07PBM#vW@UX9fa$*4~O+?uWB1)$@mYh1}ET? z>=?2y`F*tuj$j+%v>-V5dq`4Onex$^ox85mK?agWQw;7lGDk5&$#rdqxGifX*s4Nu! z4YNg5oF@aTpO@;WKczlqeg*_o2(JCya;m2Qi=Wllvg(YoDqF_ew0hsR3=fK*afDlH zbF-;K2~eQTT**E>&+E2RvoUv!Peu<1`S#-d4x3?KjSx%;Lxd;B;IwL|`vx}%3kMjD zB4$2Pi__G+YyT(A8$yIza-*4PiTj8?-G{MM5%B28$?+};hue$#5kUzyoA_8Utgwu4 zb=oDsIGH(M>-uA_{ZOIr^zkfq5gL4(bNGkmZ7f=Jot~-8M7mDBIgH(HrrwMD zTOXv%t;dr0NbV%2ZwaW?h5Z*?r{rQ;WcDI`X$}#%bG)Sja+W8=6R{4{sX$uI&Lrwm zO}wgA6SmP0aTwQrtyc&w_G_B3rBbpOL@~XhU0CrMoS>q4?-9hc=qw&{hEtj=zEkXS zb+nyXI}!+Og;|CrxG%!g){uh9qK_k~Ip5*Jg7+e?-zF=RW5L04vEUF~$6L7O>N2?R z09x*wwQ~ENXTw;U>ELC)xvrJH-3S=7%N};Dw~eIc?HF&d5-;M-??#=@|1U^n##M!AvXCW(v;%X55PlSG!o1lE2mPk)1t|SVJBJdp{sr6_2_p z*ayJb3V&H${I0-9m!}f#zL+_e>hhoQL8iP0Tu6Gc%5kMXlWBJXBk+t{HaBz7f-aAW zLt;v_wuJp`;%tEIef@pAt5)Hme7L!aK?;{iV_$MdaY8pp;C@AReWG1qZ|1jTUKbAv zFE|6M>d0GkWF_y(m zmF50C!tF+2>Y`6CQB2z}U@H9?Lhyqr27n5uC!hk)Dqs4KNB*vL%QSr@=0{B1$)Jk2;X0v-9FB&h?w4 zZnpR1T&WTntwJU~h;kW&+7aHp7Py^aHjc2VpLXE_Zef0pToTt|*83fCd8@Eb1d8T5 zmIqvslv=Bx@E*D5HAR^wFi1*vkP|OVi55D{@ zO8Yc9C=n7EGe-K(KCAlML4ffOpI}P1r*Nirr=_1ijdzRNDXXG(rw}LZue?(-DRUPk zt)G)!V`=Iet-u{9uK6mzg1;5Og?r)6_MYC-)ES6@bSb+%aHX=md-Mn~_v^Be-*xeh zG9}zoe~A5eGi{uQ$eyFZmE^iO8U}D9QMN5MZsbl>v_N3A@-rR8Ii@=eZk71V(q3(` z2Iv=Z1T+fGx>v&6wd3k}sMg=GX(2k;8WQkIb%dx8Ar^GD|9pYsLO7wIM72%*6&<`+EZ*8NwHhp^wLQ0iZNST@(0v@mDD$ptnD(dDtjeLy zjvCWUjpn&(9C9I8#pU|(7;@3zsuHxiMWmkquu)bcjAs;@*u3ia$?|k5su%NfDTTE@ zLIOf8UD${kudC^5V{H@>#||NEfoW%n+bdja<2u%_Zy}{zfw_99lSmDq`xNiVtt$Rj zc;x*hXgz%s#V!j#y#l@UaYkVU^I&?4#YwWK7TMqJ-3ZT9Y$oP`>8fd|MO-&7@(a9I z;l;Dr_K%K(cswG)`N+5`B9!pRlRZiw&yJjkeO6aR$S6@f>{=Teq{y66C199I#JBUf zA>TffCidHosJ>^a;2k}}4ZJyAk&ASs!WqrRC{aq2H-~c+FXQlP6C)}IKI-Z=%?}k46TUk)de+pR+fvVPPr?Me`N|_)_yA|WR3jrpGzxbRpW(^1%_lhrfu|dNMK1 zz1F{1X&+JBE!p+dl%$-CF`W>avntiBZl#mN6urm!ZE1ey{c>-uNc!w*Ht&R}7`(%!vz9PqqIEaydvfy1~f zA|)Gv2+AGp{43B5Sm(=dyG}84bH-1laK<(I<8wF4e3 zWhs5Ega~*$ds5>!t6=7j18bGR+(&7bCV^}M83e9#Rw}_X1vk*^=sUncKe1NZEPN;J&BRe;ndy@G9&6n#a9saEtQxJM1 z7P?3rTjT*Saa?Nf90eX?p zB5n9X81p>yFB}~kNw?&mK!T}2Z|_cg-rfIP+g_hjTc5MdZb$YfD*PcCOY}`kcK*x5 z?B#o24$m(RD-lIm)It=zt(l`xxOdBW@M-Cs?owi?XY{m~R1e*F>|^t!#YNiYDr?b8 z!_;Rt)rauhMQ{}$wjPM7)5pCXyv#SN$vO>6-o%igL$4X9TzP=Z#CrSWs8U1{?ab=t z%zDF+5^m!qX@7-B?4mb8e(Opb0(lGiv@Qv}L=Z2a&?smOTT5|-o0|DTSP2WhJBQ-t z*c7xaxUB5Z+y!grKx{us195{Da^Kj+(Q3UTSk1s&++V1mC&8iN!njj9b76#GZ8iXSmKMOrMY+bWl2H<3XpHEEoU;zaExL% z)k0NsvAJM>?HFy*5{rF;sbT?QUN3ieZ`N|Qxdt71PSFG*Y}lZ}7pOtI<}gBym_1Xv!-CFpt|)GW1EZ2w4aEZ!2<0-nXFJjsz*zc1K~vaTBi*l;}+LISdn=qG(1*BgxI-%mi5qE zq_5_ZC}s}Yc0EME-^Y!wi7ZJVPH}9HW!FeAq=m^P^#=R)jnSpT*~L-t^cnKj5Nv?9 zu~4xL-N#vqC353f6+;$3uq@K4hG-;8_gBc0s@GgJqS2zI_C!R8dosM%R-&~wKDWYq zYs~bvdn{)DK|EOwKg~Zxx+)BLE393j%j05Wl9qBek<1H4Pb(w@%$ggdoNnFT{!(TVuoGg!`f;1}b7U}B`%7dcE z)!*z8WPm^8tiMELLefO@l~G!WVskO4Dj0fc6h(24nS$YJ?s+_XBw^bgl9X__oa!YJ zG#BbXCx>Vr7E;(OS=OVoSuzw-_~EGTR4V2#z=?}`Zios?a!qd#b?d0^T17d&C*}BF ziWhVp5l=kx2H|(b^xSCR1l}ISjk`f_GFPy@(af!b?3EJ)n&tThQz0q+zZD)OGXD3q z!dMxaHe61>7wcmwlTteU-y%2QW&fvdV-LUYjZ*Uat9<*ogIwiB5bIV%R^^BoRVAY% z9_-qz64n#uKA@nFqb3{suK6QumFk;uA5&94|Zc&Et?QE6sfrHMR$# zx+qc=JrcFYRf>hGn-iL7PD^tC$&^sJ|D0+X8YtDYWn7f|4>Cslf#T>fUYPn1qI9GL z6;EUL>N3tLRFECD`YJS^inuKwMI?C!FI$lZM%AeSo087iZ-sPhEt4nK)srHk61s{W>xJ{ zB#Ro^Wl5Tt4efr@tKe^q&ViRa*zdU(o|f?Hj4CvjsOC*{CN9f^7;hvwvn1{>d&S)F zY_g_b0s4)j>NU-`8WHICnAqWo_+kzdk$L#$Tex~+CF{=813ie{rSl+eQHbY0w5QpF zW10E?C(e!oA6GN&b;4 z7AMclOcGA)ggBaw38R#D^oLxq6V*QYb6pquTe;Vn&WQ*7NCc0_g)#x7BCX#ns7-ofZ-DO z{uO}H%R3qMNe*fkbA|HcfpHid`}ju6F5U8l($F9TAPtlq`*Lnor= zCM6WCw$o77xHOVyokeEElKVzPdyNl?%Rw(&=6n=r^8<|heU3vMKo@01MR+xge{NAu z(Z4baSSrN4F^7FZ%Yks3emCNVn!Fx-OnR+BYTshp=Ou&=Y;gv3h1*l$$^niuuuUtUFDjAvJKUSt*tL z>nQMV%BkQl*-3<^Zny0VO*476ndDo>1L!>S8SxsuT;h)9m`i1lQa`efnH4MLZxgH_ zW11BMyXr@l@LHry;X1Hl2QcW0#su)hB z*qt=yk6W9^#2;_w=;k>8*w(|0LD2HosleP&PK~Rm0bBf@;{0Ael9kyJgP2YpS*MHa z7W>_@jPDA~HTv#aY|riBQ-c2kQY`7CZ=;MVmHER$acS|5$exvoSHF|7S|P_C#qWgg z_mRWulp7#N2lJeE*>fXFqJs$XIhHYv)oEj9Nte7Dq{CJ2CZIvy35#|0jIi(F4I#QmlTx0>a`8*3l(N|y`i%_q}@bjL+C3qzGGcQ&_ zrlubN_Vy*%eADXu7&F^2lKX2XtjUC080p%{Ho8W7u1c{3iC=4fAn9aQY2dFh@S7R< zYdFUhdfBmf>)7wvO|1U|vf?IrY&zZ)npcvdOSPP9fNH7GW#z~u4>n2A)>P$CEMTjl zo{GPvO}kW~=VQanFWUY5qYZ+Jwbe~`mLhx_%!9PXdf6#%yR?BN% zZ=#{Y%vLq@fVk4twiXH0y}YwH!ETbR)BPI9^L8BT{m+9L9cHRkqna6EKE1})d8LUi z+T)%|7x$@)wRDk(@tSZ@q8~n7r#*5{8eO))-L6mWNs%cq=5KPUN=_n+0o)V7{(YMa zz#=$vf>*f3v@&a&fJ33VNVNA>LG)Eo>|5ANP;bnk`QnKtzQ{Kd^u>*W+@=^5Zq7*D z961=YZL3&XcKMsOzZDs{iJ(s3&DMAI`fir%>1{pF%mlS;V5mD&qxwMYPHXsnir!CC zTOaECsUmgTv}jWr)|{rAQ@}}x`W%mahE*54Y10@h zZ1;@lqx_yb@pRHD^j?cNr1;iB;@>&2uH#mb8~I^t@O77%#hoL-^=q1e>)S`j67%Y2 z+MqL=045od)jS_isf54Q8E1;Ee_a#x^UZy#zl~@-Y3!FS3!tdGD?ku#Y^Ld4*5vmq z^!*zntS#0}gb31fmRjSsLQ|`EuP{~GxWkU&i?J4J86e3wPpMv=CV8hO`N9ZGRH~aX z)#pc8qOzcwQx7b%W^#q*S$(lyUo33K0sb5-Lm!Lv^)n+<95vv~H_xl?Gs@X@j~&Cu zO^#uMYOP})9AEcpm#ziWTKfCc!5TM=B|?KI(>kz=F5wovKcL=g(_Y%%Us1cYzyQ)% zqZ+G5h>J5@>{ymHIhJdN@y)fG-But1sibgqJ`u$^HkkQuv5x?>y$Z_LXKfTW$@m;Ziy#f{>}tlfX;RvB!nyMDQ?+)* z2$>n1kAaruneOo?BNXON)im3DgA$os1%C1wf5WvB5DU#JLF+YEff3JDA1^Ute~6ul zzktoKhPag>a#CNb<=7%>dYzu$Pqn74*51^pwfBL2XU>aYl+%4Q-p?pIoBL%_^#P;g zGyYmcn9)r3-0wI{nAuDW%+*b7i9+%Z(Cyo9605{)#WwV>Z34z3GL}2b~s^20^3^nt+-Bx(o?$wP=?A1cE zQ;U5U^wVB7?k7cr^4`oJ75ND_{}>l*AU9Ad&JuGkwkZ5s$3|;)8Xw8x$+roY&-!-> zMq`b?%~QHOZX)Vh0hc%PW|Vv$Pk8yiwCDJvGHO;r2df{Q=b^lHw{Wolg=Tj-yP+D~ zgKK$#%;E*yk0*|e{4SfT;pn8t#9pWSmQyq~dxbm%V;kz_5A$082{Q6es|s{=OWG<^Bi~#s5_=162e)>Ky{!%pz};f=QhZBE zw%uu()PX61dNq`X0+szMfp8XP6@|MurO!&o#0NulkGY==AU?q;Wu5nZTG&kumB(^g z6u-V%9T0xJNi@G)@S3F~=`C%HKSR-4Am@Pt%k+l0D(;i7WlE6?l3BUlA>^QED@4tk z!x3J8V-7mq1a3#b@B9z9fKzmU5^Dix7n7)lA4MVd?+yn_GY~npGLv!Ua}+{*LvguT z$#?Ls_Ay_$BI!B!bO=;)?x5K(`isduC>L7w4-YN&vSbAq@*_IyZyh9Id1tn=wDuoj1{{MKj{Dgf zLJiVQL=7URM7ibExKxUjDZ+Kf#V?qPb*J>4`@2XUn2L-6%JLD?G8YTPi^nqj1~fCD zkT|UFi%g1I^CWO-RO2bts3SZKXTbuhdo-vLJ+r!@LVaua=(G`^AFRGsCL{0mL@gPl!)B_!;M8f6kcdhKD8};Fnt!J9<`S{qPD+ zLzC#i&Fi`0oEeBk&1Ldnd6pshhYrAUdI9zc!}W?*GNaFM8S!Uic@FW)K3FVA`&j^y zeRH%$=2>yH>xXyOF!&3f!D)4m2=O}Bf$r`Vbk+_JQHvS*HXoqV1C7w>LD0#+#J)QU zG|wd9(x}1#Sh>D#qe~S^Ze>%A+n11mmBVYO#f=fZ+0Dl;qfTPr=U-Zx;9b5%BJ)0+ zgZQt6+vsm~8=WhRdR#01jOMg>c%(Os#Y1YG9Dt3_@Eo&AIKmfHD&g-A=?@l@K%kZR zbadnT1?G8ad!89)uS?IeOsz~^6YUn7Pt@)rQgNkSTbnXu7R?J;T6+=QW?Mb0iZpa~ z0Jd;KPBmTqV`kwbTey6Ds+5~toRjB);e0tyiZcWNI*k|RQ2HD>rhH^`jyv~jE*}g7 zTGLTPwY!A-+hjQhHnF0BHPqAuQVB(=)a6c7XouM;>%3)H(p;NkmvZVpml6+@Yb}JS z5@5G&;z5mP3l2>kV7zRNFPd0`4(2JaNCcdzPB6j(kJST3_8 zyRpe0?^OLgY$49c-FR|JMW$G*OnfXo3sXdXz_^g8Mp0VK5 zR60c+f258p_uX;6nXbB(s=Gs^Yw~cM>%lR|biArW4mnW3$q^2`O7fe354{!9V)^wn zenY-PHh6K5Jo|NX-A=l6G?zLrxTC(S7H>$S!74UasmB{Q0{njLiL%n4p1RwIjHIiX zD6MQ2M3dq1w^CI19r3+0AfRZeUSZTyC>Btrrgy<0>gU$eDVH(9GfwQe4c_Qi7Y zpwS{vBI0M7s9gy9Q+qyrpNvRQ(5@bCRmvCT==ftM_RQ5jUI*RMnX7HJHj@tJnT_gn zEn9<4`;wZO3mR}PX6go<+Oj-$D$5u{Wkr^lOc_lLS?mLDJI&&C+x5sq^&}6LyXD@Sdf1Z7cSrLkO&?igu8*?e9(5#jwd`9+9DF}N6B3luqm#+|N6ULHoX2%O z(G|ht`>uJil{Fxl^WAQLQQb%L|tY=xumWlY8EajVjk4vc~SdT-TxR~`> za2YQ_kjSw`$iWIC(YG`26ZL}M=DITHVE2wZeN`|6{d-r)&?*}R0_QWLf0-|dCZi}| zkZt5cI!^9PTX_|mJzB9l*+rlbd70Rf&-;t-O2jDnB^hho(tN5f7qDOui05+x+qy0EeYnoXWsTejy(wUa#?l|T-IqtXBUOk9UF1`@va%(9j zSBToc6~ekf-~|B;oErqUfd!E1m<(;-Yvld_Nv#^+%WTf-!{1u|LT+)a^SvQt!wd3| zZM2~`1mnVXhCl-CjuU53{3XAJI}m-34W+7P*6(D=ceo|uMr-kkqzXbVV+_1JoInhW zOFdJm(28?FARbbDqXRSH}M<^#A)_Eg8tBr4Oe#@gpI7?v!H66tM9V}S;)qT z%!zUNmN?=7eqKA=Kke@3_$9YBa8|U^?;_a|Mf@|r3Pnxd$b!$f5g%n%b5oW~DRLFx z&JP{%?ILamkv)LB0$sQWi8X)e2p5@QmI`$|yqU%AaQ668c*!?e{MjHu>TijD2Sa5s zcBZ1tArxhj6KeWPzhQ z$H8r)r^;98vd(4&27L-NxGdj!22UQ`hj={}du9-BFfFVfJM56hvx~yW#8@@)&|Sni ztk%xBACy_0Rj0p>x_n9C8W&r$B-+L78VlmwYvW5oc{UL#R9wL|geLBy2`XflrAhK7 zS0v7lhSk{keE&}NgVlf0kWDT!D67w0xWO~bJA+|i8|}ET-;w`r!gV|OQJU<#-#dg%`awf$M_vm8?DHqKMYml?>1@=>QX<1 zudyM_vV)yJUc|!E0Cq_F##L1UxXEMi-Ki_8tSN7^O^ zYaca8a5w?d#uY_XWP^lqikYJ-tUhX%B^PmXIUY1%E&gKZSPPW)hqY|>ZyIE^xj=H1 zj?)qwARjTEST=?j%-Up;qsz?0CHwiJXRT zXB#-{!`zRn6Y>Ug2^|MF+Z$q2U>2DgzKxsb#?a6Ph&(7(t;lN66Q&H9-Juu`b>kvG z%Jw3Nun5v)#6BSp)qvlRe7%4nOETeKucZkkgDg``OJ> z3D(H#W^+U}Wi_LJT!rS8rFX$a;RZqmNW0wr@cbF@{+z)~ zVR$g={x)4Cc@zf?J~v3IIJAHAZ1PvC3NKRmF6k(h>QU($1Gtdl(eE`Q`yyM>??(6$ z-Z~bt(lWkAB}O3{qM$ zx>T-9UNp=SNykIaA28(X;eQ(7GD*_E-wdB>xEeW+egaHhpWDBm527|qec<3h4&wSS zl^>K>X{j{TG5J+(T20n@=*U6A6dRIeBvmr-_DaMW5rhaN> zZ0aYKEA@Fxr7wYb^w zJPCULlLqF_)JnjYYrewVB;jS7iveeIuZ6i>$v7_?U#dd%CZyZ4IlA@jRjF^&O0Q|M z)TStR{pc>5NBCTMTxAn6w~~Hx&19KkUJPg30=`bM;2QTCW}*6&BU{{%8ek7Gg4hY{%5+ zg4$;8sA@Z!yUJ?ZETZ)Hn)>@Qp=)V8VOAn@W%W9l`LeU$HHMqF%MJhnWBBz5s32`1u+AHJ`Mw#6P@t`)0rQsfyIHd@c(k}9t;E`+Zu4&+V5aJ3^?21?o2 zD@L-Gjb0OyR0FJ~j(z6`%GFvu{s^;Gph!!jZze=Fl{|1YWTl%^>ps=`f=gA4glX=t zw94(i|B{uqUoRZb*Ub@SWPH0@*ib=G&Adccha=&a*V~+e@wwc0tIZo@x~myvcac5- z@OZP8xYjBmOox(>sz3(uRpwP?67s9sL_X&Ipz3wDY90kuk;8NmC<;b7BcT|5r!hOI z5oSQTTL}YiShnHN;8saT>%y_V&nMIX z`vw==({FP@iB-c~i?UFkwDVUm{9=3X#Rm<(nC*Yjw&5376vz~mK0YVgkY+2)epj)> z?`RN2dUNpJuDDSQTtBXmu&_zfyvlE+l+5 zvZ7~=>_xLpF)Mb>7>TOWk6ChKqU=`W*@bx40j2dgFts_$J7JCm#0z2pz9}56>TIWh zERyB{lA}Wp?0*GoN;$Yvcfk2Ei~ zzaJr6VM`+W*Rob6<^!88=U9|L?C_B@BJBfM}Y2`XNOiksV55{tGE zDSrjXnxYcn`o7`Tce`=~xb?+BCs^Oj{`$&Ga3AaYrViuTW6&u=q@F|fX&XVMXxm`X z>kS?j;i9kjTQ2&i{-Q7P7yVhg=y(3@7rpA+FFG8+dqXVGYuRY6Q&ppV2tsVtI!)g< zLL3%scqEm1i7qY!YUiMEiwjr*?pMNTLK?Tlz^^F;FYAdkTJE-26D)x<{*xGqxEw!u zc<^z1vDK%!!knP+64>gT#0aq#yOll#Cg%#cMt*(@#|SP>5zcNKXI(m{A_KE2S#yKW zAC#<3hudYXl|TebxPeM%o@2hFdqB+mr+>7CAFQ|iA&-ksaU%)eEDjjP#myA%7m=@7 zAvK-6Y5ZeaP4DNJwv=T_YZQFQ)oadYHs0w?C5B`|KdZD!6A4M1i&WA7RquXO*jLyr z>CM;u0Q^5sWtPOS!CuQ!W-j|WuDB#2!6fP9Pba{FNcxQpi2MgxfZKGSygZh@3>m*C z;7vn7EeQa1$NvE;4Nwm@0@QjK)?+2gFCgCs)Hr^gbB75bxe-Wmn@gC<)1mWCHm@w@ABY@vuZ3>0@o$$=*T%7>j+fxvy=*+J%T?GR=+d}Qwx(Q8 zw96T!F!mOFifG^75`88(g!EM$Z)8m(VR>wAq`5e>@YP1HS}nw(ZO$UQj~z#%Rwd@? za_6IjR{u0QZE3y$usN8Wts-UsG;pa19v33(az*?N#&Q@D$;o2NrO3Pyk@4Y*kxCNI z5MK*YiH99aUXhbH!gl#-g1&Q^*A?^`>)n7fUCRB)C^{VZWz?G4LnjUDe9DcaC-)0Y z;CiF3w++|jGZwI|M>U(g7gT9%F<*Z?X@cO=FY;%DUh{etO=huEc zy+a*)i0K_bgJLO8*vo{*L^!xey1Qpbp-1VA1*exhA5*qbkz=w&i{}$CRsece3gK;- zIvqHCv^-dM&;nOkMciji@70gBL>%1*);;Z6rg`(YVluZ8xAT$)Yql9+b`@Seh7{vB zC}y>hCyb}jI_`T1cIaf>4efR?p9}#SGYNXtnE1Q9VYr%=)}5Hu`~(}0{a(V@r%pzo zYted)poNA@y<~&UG>;GqR`GdOgQ-3cyl8apKFk;_m_7xn(Ofgh)3w{|8pS@+FW|P+ z=|IC_uc9$2vKdpQ_d_zj^1U3ev_xi_{hopkkZidEz_DZm1~^o6+By~A=vhtiJtOM1 zl+OgwBEn8K1S9qp+~JGYf)~DWH+-=*c(Jp=$Z+)g zN<;wewQip)k*(TIp{M#Q|o+l{>m(8gyY#6KM*DFAF=;F(RdCMQ7& zr(A(UCrFzx^AuR94q?)_l4uB-rVr%`w0HOcVC@rh+SNNMK~4?PsT?yEt|xY01E9Z% zqf`u$kM%$e2fWFa{-HtX)+S3oaxHi*zVc#SoQUK|7|&*pAy9hFimZ-Em>pwnH0mNQ zjk*PrUXOHL)%=au*}PrdM3ZhU;AZz-B&ZWEi2PWoBv{8RR~@$N>g;0bC;8ha>R0dO z*LG@#jajnd&6T$zP+mZ8DlSyWd@;`A!keW>uXQOuB&Oxyz9XB%G3`FeopFDBt0N)) zmAWK)q}j&Ua09Z^FHWv8%6Z!<6>@>AXP7ZRU_L!W~#bH~K?9lY+({%n6DyGg`;)DScplN zMBn%Fm2C`De7`mOzBN>IJw}ICK6!7DGNWTK7VZJscnPyg!fiIE*&x?U$<}vWh@=KP zDF5o6E>)nSWa>b7KQi@>=Iwz<70e@f#nF!DkupR`s~sf5-nUuCk8M-KokvSW*Z#&4 zWE!YJN7~ob5D28x7i~0NaFn^n%JMW#C zw)mwLw)AQQeI9w!vBow}D09kwK<+F-&Nof(L1CC*7Fah0II09@&N3l%;9C`y z#iUfc)l5oh&SmZT7q!XlCTN5y+8s1lwx+;gkB_gEyGG!+@xnf46u@|g{FqQS$uak( zH+1Xy!nJ=X&VDRpO3NEB$Z{sO~CNx zQ-M5~UvQHJpoosLF))_KqkE;-@t5{ANoh8sJ+#nGWay=l~Wi0h;FV12nxO zg{JikJ;&5VxT(i69-S3PQ=8Djg(v=0_{9!ll>ZjYQ%*gs5?L|FT2DoS z{`(9ZmC_iv1JVy#uZ|l@3mG-*l(44J{egbIPAB5*0XlGkyqm1GLYm3k44uX#$ppHX z8wR7pF~gEtyo&)(YZ7f)0c0D7`~eKP6+rrt3}Mz9-$5Op7^*Hhu;VWUxa#EfRy1Fry`#@D@1IH zz*GYn{yy1CBvY7bM2?oMs;${kUW&a^9unFPvB(jvY4BKSrITR~EjWm11{QAeGY2+2Ky6oyu`}^%yjzK6foMg~r^qI=9TV zy^F6QN>>X)zsQX+&s1Ak+NKeGV4O-pZWOMS%>;=eQm@uWdkVD52L7+sP3nYNRWYCE zRq=)haAnmo^N%_K@tY{|PJkINEOzwnWob_2Gz6r%%^;W(SMmC2m~!!-7U%Bq;7rIE zU9IDBF%e3=(-~AzlBr783 z*wBhd_aDyjLuf^$cqUT0n@=LOLlGQv7qsAck-K1r4D9(Tn9VyQB1cG4bA*{j0BB7| z43pcfnoa|8yk1Eh&vahJc;wKE;~|7Ey77M;sa+srs5&?P3LMVE@!uxXvQ;_R(UZJ* z!mQ_@V)(hJ&@97eR*)K5znA55j`jAwe^V2(_&yC}@hsVmWT|f9{RA(RoDy1YiS{03 ztuNzMl`g-V%X;Y$t<5Xttdz0FY<^;MwvR`%w9NWzJeDUlfGW-M|IYEhGY`8O4}~>m ztA<%oCSjLlM*&Ekg$)&hwCWQkF}Nzx8;@=!d|qYFF;N} zcG9Og^xa-2I>XVL=j%hmPcCWc3v2_qZ20EJ;EgZl)Qh86fNt}6(J^rrK!N8DWZL0p z3xm&mA!ztw2`^+;Y2|TY>GFo9r>Kinl(tJadHCiFb!dE3X2=(b00yM>MCMYaj{Ap5 z!1FaU@yV9HthQSg-bUW$KWtJwJxANe{%uPd4WXLY#8w-aVL!h-d(OG|{4zWuD z8>*KXr)-Wl7gR@2W(Zr$MDE$TIli+{2)!E$t>pZ^3w8Th*CJ2~h3^;ezA#~~w9@8W zg8U!6UWkEk78Uw>p|Gcwg}$BB7Xw9fail{mue0jl?3`G>S1)Aw%x6rF&`SR;GaZg# zY@RGgE@`d6Co2Bhg}oPx2IPGUhX_{Bx5SVvbMw4v-=l;%*6U`b{Wq-Z|7Y(^;H#>x z{h!=@&*kPOfh5c-G=gH)8pNS>z^ScOqqcqTb%?gsN3Bt+h>{y-f&>R}3?QN+0To9A zj&%sA;1~y-iHM+}0Ra^?I3OtezrVfDIk}kt73+KN@8_fB+X}G+$=6b zV0`eO6@15xK9ULGgfgG4t?%U9OoyWy+c{kmNtkv09WS`5lbhKG{ZnU#r*}?Yr|S+s zoo+t`cGoeHw&uM~@&nE@U*lc+Gtl$;;rW>0R(W_aTjW^X$>&Rl1Ty-fK=FI&cT@Zx zBE|11P7J-Ux!%{leoU&Tnavcxp+nZE3IDq3u_5lxJ=;8r_6XcC3x=@hQUyPXIO+-{ z+~{{@WH*TnVJp)z{Z_6GTUqV5a!t_6YQL3hhPYN%H*4k1pp`cV2V=P`8SGlQC8IKuAB?41%<`@re=HXb3R>Be?OM5Tkl)ItY}d+#gIp_{vQuXCnbT7TYl>sqMcZVht8Hw0a9~k@q*8a zTPOO^!uLQq*5za2;+!R;fiY4iFF|p;pg1%~!rK++%Okw}^Y|uoz6@W#h`GOW)Wd;7 zwg62XC~(w!3HLr55GcHJx)7VAU1SH6KgjF2*vs!Oi<|N$mBv%aHT`*6m5v0Lr5Aho z$08}~Cg~Ech z`;h+c;Qh|JZcUW%9vz#e_t>!!{18XtpS2x+hy%}Ua0m=N?NWUR!@^XL#jp^Ew`N{( z%?ji>*c-p3{ff_SaC!`zkQY<)Pg?N-ROQ}Vand`x|7oZ9Zn?#Ng9h~**1RK)jdAVA z__q48H?C>@lBb{1LKAjSt+^Fi7r|zZgDtuzHg%c|LDaA0wEoRKG<&z`5P8n&Ex@=n zFG=g1*L>RY0BfPNB@am4-{f!Bymqo*$yv=yTX7dXvtP-X%_|p|CQApk&~!mTZ~iMu z{-fWZ)6VRDnwF)cw}5r3Ehrh(!r-_4P46N7N(St|U-MzOPtP4VDB17tXP>@LN&f-= zXw<1KP^W3drRP{5TRG)5_5lq%42$>QPcQNP^xgRIbPPQtalawL0UMl68FFJEQTk7DA#Ls-$_KtzB10%Xdtg5c0~$R0^a1?`*-rUE zo2NF6k8jTHH>f0d>5r9a|L8yL)UXX|IWI@+{fO`9=_N^Em2@7j{KlK{3^#sUBmdt2 z3?}MBHPxk-ArJ3wLCFA{dS2oyDzXk5Sqr;qtCwn*upgy>NNOj;;Y(kQ2*qas>PcI=URpV(>bSvRp|Hk{%7}3 z4pSApQ2U+Dln0!Cjs-ZgWYWV=A2iVK#s>z7H=tiL2UdSx_??C$rJH`|*rs_(^;o6_ z%a~3Ti&NwHnA!q8Q}^_e)B2rjmy#cTuQYtx>1SJ?T?&1Mr~1s&t*QUR9|*;v`z~&( zVe^fAeD%Yv2UUvupY1OK>*2e-t4%HFxu^E~$3N^)ae)0t|B`cYTR!#grNzZ=)hP7a z>FDEOP`6~@X=mYWobt6L+OvGWYNm4bz|;CA`#YrT5WVn{r_~ny!!-Oac(H?l8Hn7yKD&btu3-RVfAc!^AN`X3{E_|L`EoaK?{0hn$Jgub>i)Dr1MS55q4GZa z9i&%3;n$G5Rg&D1vekdITZU04!;Y? zh=Hg; zT+8P3qlm|9{^}fWHbl|3j~kKCLp;y<8HBAr;Ve1d8znXH3|S`MH@v_+?^W^FULwBa zVLHDn)~95C=T7lek6@Lvd8NBV8KmAZoJqW<#1~bRGLnf3DA?)vS z*WbTvf3K*&a{AlsRr1&NS59Ph_4hTV$n(IiamseKVHkZ~Bn#z@ls4(` z(jd=q*x_7k7xzh+jesJLtEGMTqvgR@Hj2V`9@igFv`O;UcK&o5%CNRl!W8v;KgC^e zKy0JCQz->|0EnTAx{i63)Ge7@gQ!5^(c0*?Rh51nR(f8QPHD1eikmNe&4_q?6Ep!` zWHx516hG>GdB?oF*~0helV@s_;^MMF15)S zfi50`5sN4EQ!E#~*x+8g$qV@x-^rzcJ=BE&``Qg}{fIbPm=@5gTxb<#?m<_t$E>~S zSA%IWjp%h65jh*j5Z;&$E+wLA_uIY15gcp>HyO)o`qH^Qwh4&nPDezW6s*ZyC2OXT zTEJq`k&0RtLsH$>GcBT}M)pvcOkrEHz(G1}>lI5ncQ>zkK$D6#-c2GtG-jrZsDqBy zMC(LHQ=p?Y&Ut*LHZBu94N@dXh!b;gwiEVqoW}Yoe%Yov5oq)b+8WuGAhU2hVqBcrGG0Rcc5)#XW)HTyl z*UOH&z(5s1U9YuKtYDwI{7SEm2%4jKEk>2vh;xbS2x)>vpvu+{Z;cbs%S& zxt`FV5KkR9qCSo2YP6&I)X~V>jfh7tK5;MJ@rmcQfOx{*H@V(F96^-c7Lln&xD-&2 znq1_lXR}W|YofYDu^i?q*$Iq=%Aun14OH|+Dix`PR~o1&9#GLvVliVC!_4Y}!}3Mw zd9o4{Fb5f3OE9|%{@SI%d)7u6yei7-Od6rctz23zPlLV97;Td|y^SeP4lWKeFbjj} zu1LeqiD=5xaU|}%Fu>ytB^0sBLt)ca&M3R^b&C^TP&K;2SS%cjC8>wtMDB3J*7dL3bg7RGOcX zB%IzSc6ujqHIB6&Eb7%rwb$+>IDSvAlksPj7xpBs`{R1KB%+Xm+2%>Eq!g(3{t%rS3q18a+XK~Yx<2YXrjXLY(Wtb#G{`lmGFE5KIMF$n1R{Eg7>MDhSVJEH2 zZuP^fH*wnKi<=4hAR3R@=(IPfHPI+7)$un!HUrOBdb8m@*BJ&nabyh*bl@gN2GKJy zcCepA)i;f*k#*%pf%76cE`!#a@ZoQN0(%_ky5(&+!P}MOv0zgB*dbod!`8leGfWj) z8mnk{UzgFv80prx;2+x18m;g$jb6r%w&fR#2Y*@C*Ib-lsK0Wg8;_Z--~2AISzgWw zws}m%)%+D|zFy5=rsh8-rX9^+oGw4CcGXYVbl||_LqgwC{<0=<=jb9H3cWr0dhIIt zWu2X00ma&tuuxAEbD%LAUx(rkKZ(C$3DX-im7_F0-Jp@a%?La4Sm@=$I5dOqUJkkQ zmX`@(&5eq*S3+%uTBw(xG6S?<^UvFI)nruDC8n)lK3MzRl%D?=u%)b8hI+T9$MZ_O z&IA@-g6pRC)pYDrJN5GnFwle~62kC0)A4My=OgUjY}rCaP!W=3Q4X_FB=uF*WqjR_NYLeQNj=q^al zC&{#VggT7)VGG{`FCU_35aOQnqVsY8pk+G@CRgK9>zSvybZKWUkzYB0=g#M47=eJ^ zuGK}@1JP;!VsDQ^>eXnkeFkN1<28AnH9@R-u?$^3a{9m0tGVdSxy6#!P&w7d=%9+E zW-yjzWd!AHPp!EI_b`gglZw{(pFYJbNQ?XwFJ0VVo@K71lh~NlQj5u+$-MtSI_;P# zU>y&&ZOp@4zM%N3b*XofVguh)C1;KT-^%Y>Ekng5< z>nP-p5BMA&bakZMi4V@+NG$a6A*r_1$7JkG zT^|OKp@$h-K|kv9W`bOqVaTlU1)(2i*A#Ifo`~$(C1y?~wtCF;1eZ>+3wk~Xk!v~@ zd5PI}0nR7rdsj128J_U;QS{?o;$%mkR!6M^1B~5nVA!Kj9T#2O1r3DY?*NUO#=w}-3>c9AHi0o?>%h1O^vg|{ zwn)>RUf0?pj+#zvFy@~~OYKb-9`@NLDffw8IK0%cDQao`<;6-ijx32-=FXs@ zQSrm{nu+6b8QeK${ySv7)fTZ@V7=Ha$4n>X{*lWCLpT}lYRg37Hr8pNEeBGEms{eM z&g#}m*S5v4IgZEy84flc9vm>}or$u21I$j`Da$e^%bbhsH}gzAFB*0(i@;Z7E3h-( z;gbnR<$tM&P-N*eC6g3@@#>~&zEQtt1#z}t`!fsKx_Y1nOHSVGK>YQ77RB#p-kuf1$c?n2(+qt~rh;qCYpv{yXiCzN4xXOM2vaIo%n9C8}( zn~g`y?zbe(?GgV;_zpKXd6IxMFQ>_`Cz}(O>BG1_fsxVO)so=X!iQL{%5?T@HYIbY zoEtoI6eC?lH86KtI?*gbxWSdgqi7TKAm?k9hGyF>67MEpvl8lom75{vJ|ae!8V z?V%h%iLhOv*&OVIp}PohCNDJ`x%z0!9}g<@I(?4yH+(NCWEsY6kMC;^B&_)H+RZ`O zbw)-592R5%wnb@j$BZiCL2dEH{c?LcUXy3CJ<(sBqIe>FH=TspJL3y?9sagL)w}T2 zP3gVS2X+|`f(2aF!dR-z@m1zP?bGyd4!xZs7_jcMWb?d8Vlt1ECm^Bcm_6{lSrV-v z0et7{-FyHA4}StwiEzqP6h>M=#PuR^0+>kG8;10G%x;OLg5Nwoiy_&jqYFdWra}Ec z%V}dAhF>6?DvOmE1Bvck7#2Qtr~aGrDiu@6%pT}lp@pGhupEK+Wl2HH;Xyr}49gwd zcV#y(Z@$-Q2tP1(&+Fmko??bpd3n2eJ%=LE5P33orI+^;uYD2ZCh=IX(yDAP&ybd0sUr}QA4GlB z<4V7@eBkaXr4XrSdkgKik0YH)4RD3EKJ8*doJvfd96@eGDX|Oz+CSCjYb*@K5lrKu z*fw6qSX{JJk9D=C^c9g9^!oy~fnAYi=S%r@CpgRSU(rEs4#$gE(#vCTz}X-#E3!z` zFsrN_b9?CIr;54LU8hzbRLC@Mp}_D5;|PTleb#_v?7~>lg0V zvHU_#Ih4gX+Q+w7(umqwH|g!C-s`C3~1k z`~2<@U~{q4aco33l_=Xe*2g#jQ!BV9uxvbH_DW7j*1;cT4T3ncFGOWyH$jxA zoPR*e?nvfrVHqfhCs6-ATYs_;^?mdu!ccZh?kRHld_NuaK=*{W%o^|*T0-qYQih(e zF1fGcpX+|^61XCM|9Tv6A2;Z6 zoPGRKk4R}$*r-P|ZK6W9&Jeq84_9EatMP5Ygx`%%p&GLZ8>Zg}FkZ*H>e}=TC~_L1 zw;BdYhDQOB{jO5m;yWmMAgJl-h4E79tt?x(k=5yL-cK)gfL%Y*@=n&paQeb0m~4&g zz8{FE$g_BNLI0YcaK`P0*Ul7TSMCOLe56D%QM;JWIGIty+~0u(Uj5&pCIG1DY@g6h zJeC-8upl#iFc5pIOnHawI?5Kd5wG3~tF8*>+lWrAraOEW2K>_`jCUr^qjA z&B(}+=>cPr{e2g94*2&B5)Q#u7+u=}%SYDa)LQK+Qd{&y(0k%AHR`J#NUtL*#DP-3Q}iCvBiBl z;Rt>N?heIR3*0FJ?k(F1Twm5GZbj6n+&U}x--o$X-<};<;7%2AZW!W;bn;>; zdvZ|6yVYmJzTE8d;ZVGj>s|^M{+6J(8>J3f+rZR(rE5h|Bq?p$4EA8*L{ALc9ae3d>e2QAa9{#SyJZ(=xGJ!~DJt06+Wrz@W z-DE#a;}oUC$mL`d(Bb4U@;B%(vL?sSn}H{i0o2VcFz$%#8bQ=LIf zMVD}sZJawn-mtOI>6damv!wW#Dm}vOJd>d9;K1_zy|l+m#<3#M*Mwc_s!)81hy}VbZ*<&k z7@3YzR3S1)o({v(^yqXr1?cOPy_Wmmh^%`yj|$IVRJV7oc0mXXXeqlvmA0b}6irlV z!it6ih2M9o*6jcK83J5vI75idqj7}zUg3;2Ayw!2BcQeyPSS2@w?Ibp~D-6N!yf2sPbEbnFD&#X~cfYI0Ahh8kIt`T*(aZ%0(xo zV4$gbKIlA?i?>l+r(ygOa$optsGeRf161Phk%5L&9UD6MrVzH;@?ISdV$K*<&Z~F@ z4|b#HIwDf+{e;d)gQR}#Gq+9?!Psf`=L+RBZRwqDHAi|qdc z13>Z`Ps)Gi1BC0J6o4eR0TA~sO9Mc>J*4$za0rG7iagrwy)`khWtFa?7=OPi-E-08 z+8AS`xaArdKq8&!@l*SFxgOWsNA$Eh7YDm+pu`O}u;B2#EoH7VBKWS#T)`5wN?{|7 zl><9Ojcdgth*07YbH81tUavzHzNnQlwgCq*b%y+mO0Hx2R&={=)50MoyQJ zUNhlDQU}a+E7wY?qx>#v$*RViV{jqIjsM+HUAuS}Zt#n}c1iQhD4S4T3b<-<5CV+) z3b;jSfdY6GfD#iJrWO9$fJ**IX!mygy@e|y0a(qV=Tr}aiU zA+yYVm{Ws2>&xmS-7euiyDJuGT_i83nOn%d6>Lq7amp_D_G<8|wtj4{YNT*Nv(;34 zSMhJq-ie!W?cz>}cMq$vzrT0Aog>X&P61lspIw?NKpTVavwkuv$|9jQHdBLrva`(C zoKM(1k>UB6VX&*1N2NZz4|`01JK&eQld;6S-P)4>-QY(Ex>~mYx3Vw$xcps|r;Qh* znKt_WAD~_*px*Q&P@6D{@1)V=(iWgjM_@w0U5S*s2l3Xi?RSWKn4|6%RXjh$CJT?j za94KGQ%7NqfD9iT{q^9kNpH~E{%y|o+HiT)G2cn6{~krf_r1%f9)p|g^j7_|S+1Z-&a7j5aV0S6HLA&EF7{Q*xU8b)U z9OHF4$=3=xnr*HX#DrjWX-%jM6dtYQP@aosFrO#(k?A@xt>D09RfI~3a)7xfqpGQc zL3yAm1ksjZLFH71h?Y6Mz1-JlV|{^?-bkGQ*3o1@t9-DVrb=g5D$u>Z?EDn1`l>iD z8}kvXbHj*|!#}Pz&VOOAz#2~pp>qS86`I!pR3SS2O?M28iqDo*echj`v% zFXt)GJHZ-fo=ZUjtbUDi{l(-Oz2wnGFK19zTB*}&r^mn)>qMT1NAustinhO z4=?-k&U9?GWwiA(jJ9%1k-hOHOGdkCx?h%6#rJD&!r94W;zltR-D*CaySD#o@AtWr~KV>#UKig8Vf~0Q^F}K!Gp=t0c2ur8z$7 z<@NGyQh992CiUrNHmT|z(`Yb=w#==g3n}P8KJG%VdvD}h4T>)ALgh`{`E#f<3^UhW zUVD5h_x1{&V^y7PYu+!so_Avrtzol7OR&~di_1A0*Xd3g0zHQkjXcFlc2=_y zsakX|=g!taE-Z0#o9@egAauf);gj?_JC}P1LAV#u0q3Vznl3n~oXPyMF`=8p6&@~_ z47F?QJ`e$x&1BlSV-;jo&V>2{o)5~YY0cfUfy1R;Y)%o=Eo+Op~(^zWesEI z&e3zG?CDsNYTS1A!gJL0wr9SjHZu84wrZZtOuWfE#^N)8_(*F{KT~PM323clyWOCa z@8@-#=e7S6J+CQ~uQ#d?R6_H`Ip)JT@YaOu?qXzrNB4s|r4sx$cZ!$2ET2I~ z>|zf!fPyK#Ag4`?i;MJRA5yH0ff8TO(buo=H9S*~uiD2dJ-%iitx5PI`*?>+$rVH0 z+x7T5kHI!u6y0mF80}ILN400d<(k^(n9%NQ-o!_sYbm7#@T15{9lZ9hxtelJ0TO(p zGdO_29|1rt_Sz3pL-88k%5#6|NE->_UR@R~BsE-PHp)Dp=zFye@g8dUxslef=w88i zp>BB|)rSj4_T{0NzlGjkcq-zlNEH5{lod5RAEla1YXQTtEy5BPa$~~K{$;E;aceCX z`zbHo-vZp+Y|P(~^O0^HN1FJrSrPbbZfswunNhSw)v6KQJrerl!&ibFe&L6; ze3+eBsPBr*%#oJyEi-be&X4ux?9a6Leg*k+;d?-)q6M}G01w6T6X$z#9pdrUI2dj8 zB#nkS8FmqHv2SEqPharSB^b{&aIzeH{fo`jqw1yQLeGlXEI4kZhqkQVB_oTu!~EP7 zdR_AQQQ#eKe;k(d4lMN0Ayb4@k&ck?!!e)B*y-~oGXlc9z>B6w<@+kllaQwa#=4)O zLgx1IegeM$K$uWg>`0RUE$5ME6H0v`%Elw|?n>ExBP{jY8)fMhj)1UX)n9;t5wk_E z8kZ376a<+@#0&2b7&}q0!HqZ4%iSx8`Yoc=bS}Zkyf51Sv7o^SOA#CCBx1gjZJ64i z+YdOw4~6)4PvLR~L#o`Pyo~3(te#%CGx_3zbmffDC$zm(2sv}4n7}eU-o#@n=TRMU zO$zsTK_B;P8qbbku(;671yEh^I_Mkg4`}Sb5k^zT6UmbkNr>PVdy0f$y7t92?j_HX&pZT7 z>!}k0c_To^k1qqM3q~U31HU#7gB0OF7fK-5q%5Og**HRrSk|>iAe>&sYM}#5nCIk+ zHAB9*_V#{9%IU?L;SK5AE2nFq>|jp13 zwS`znq{#=VR$IWbbgZ^-LY$@h73qZ~ht2`mJEKVm>=5KD{)kr@-NQUKya<2n_+am# zQb?1Fb?}j^#gdYEkNBZp*F(IF!@aDD-T?}PP~|-TKTIz=bT$_+P%tM7A?`%HZ($f8 z36c}Ao)s<4(@y(@-E<$;@+KHiM0_1hhRc!sJhcR}c9a*?<%$CnJaL%Z0^KpCluvE0B7Xi&a? zY_4RqB6uA+d2!tJBD=b*pAAdPY_k%(!tAO%uMTa00XSI42>TNN%1TlT)aj#KDhXaS zWJIHQ(0l3uzdQ*^5!Oo!f)8CY-4PyIk#VV6Hs zm$>t)Q+7agN_Yht*lKU)lp@t_+L1ZU9`<@O(Eq4WfRH}+P}-g&Dn)Mvu?ENkDJ4k} z`Nd$_`}5;OYtY8B`92i0J-yu7+&P0 z3JL+<6KTZ?Ktb35bszFSJ-O{91m~+9r3visb$rHl_6xO|W+yAO>nwlpz9FO;@0sO| zAWdw9360lvE0AU=uM@9Fw+25KKmcRXg`NtB^A^J)dC*}XUIhq0#Ln#sLRaj~6~kv| zVdkx`_h=X;GlVaFZUNlcd@|Bm+}(nYs2I~2qE+logoQUoG4yLWq-rtJoblA|lAE*4 z8UiF_!-K|4S!jXxKKcRcS^u*D&9jvulo%nC^YRI>&Ut@;AH6!PL4^4*l|oqfDU(sc zQyWQ6r8UnJ@oy8QU~oe6Muj3OP0PjXT+J>$$9LomTe!e_jP9zMEbEJ`Gr_H5%bY*u zKEd!Nu;bYAO+_vtrJjefLIKJwNw*JbDMC7N*b-*qh{%5F_A;{``6qq=4(&-|Byrxz z1hZc!@A$5WT%y0{lk9k1koGeH-*ZU|Q~B!3sJx50Ulsr=g(V{5wc+Cx*p}OfR1erX z@*`(Nl;BwIoQd9#!^+=E>ffoE^1k1VMiwLs%%how{I$yHS29UlZK}9SQc}Rh%C3F~ zXdZME-4{po`-n!>o)9p15{E^<>qzxsQ3EoNZ(n6J_rAT(4%LpkPUg$N_1xrDP< zBgGa1vts0J%2z)?fn;BNX1>ySa}Gm#C9_<{1UPm#>4Iu;b59~^$9KgL)NA*WQ^z`h zU7dlFhg4)RL~`#iYJUp0<*PH2Yz}GWsw7*j`5?1Cne=+W-0>XuaNt*LidqJyPgV?e zW{30fAdwfqctuN6yY;r+Dk^RNjIPdLMs!M-uvGU@=y#2TlhSn`h~;6WVtf7EB6EAY zBK}&Be$)w>lwO&v(SA{%8Sm>c!V9>9FjznhF<1}>{a>^=n{6)4pd&Eun_$c5LOpCNsnsc3>k*MLOzAkjpNMC(8z;gBMgd1fUM4D?~O z#i6&cfE7&yIJANbcfBR2l5O{!A<;ELB04qeGWo|nI3$`X?Q2TkLZZ1+Hh@F{J8)Rs zDm$nqrzmm)80Wt7X`Nrn$Ym*OY9>(_nz0LUV-Z_6;W8|^CXT952teu2VGaJm0^Ak} zAMck!feI~--Iq_IjW(G=_8|1d&#^(U;!_pAbS2M7&+Hr8KVH}J5L8i~%5j)G-*uFKEMfMUUzBZWAn<~Wsx(cZI zt%+iG1T)g!g++5|%6uEKAsAx{)^fxGYc-|jJ8yNc^O{LM^!AXA+;;FZUE_G~ z5Kc^Dj=e6kFbW;sJ;Gtj4QObx%^a?vG?KR)?S|QAMWWU=_N_S>j+l;vaXvy$unRzE z8cQKVDd#T&{41Gaz~4oFaKOLH2mT&R*3q1$D{$?KWQ}&y+DHc}d0N~}8wkvo)k3;* z4!7GyS46*RiL7*%u=`;nVq?;xG3cs+##oGw;_^_IaK2K@BCe@eMdH11>MC%TGUBsr zCk<&0Vb^wrUlhx}mr#>A+K9J{U)!Do(FV@NdFA?cQq0wzTfmd>h>h_RLg0Gl`XNQC zVb*8a_de5KsGx2w?ZFmbQ9KJ_Ln+ku7wm!p(d}?H*C@E+I^~pRd;M^PCO0GO)pls^ zCi|biAqx?-ezqr&kdD3`GKUif>WwDebO_o^;%Fz`P_9s5rxdy;5=5(XU)2KLYy668 z#rVG;Dv=0dae;Y-d$+UdY)NPj#4ks1ujs~hjy(ogN~_!oeeDx&VE_KJkiP+n+FIFa zw(~3mM|P;S2NU0c=bwOo1&v!AYT@Jq8gQHehgv%F5GYKt6nw%Rc_5w7P+w)E94oiP z-*DIw(Po>s6WS{#enW}~SOLA{*M-8H6&OB~l@r}nLM_{Uz_DuG7FjZ0;F4&z4tui@<-Ll}w(Gq9kbP;QP|xBEsPkI4cxrIF4?|Nr$%L`&np@$%yPO zG31VK2=9R8bVe@EbfaT5mcz{*Z8_mKL<0=DtZ08BS^Toinm8G}S`rbG#9#}~8^p`v zxk#LSJo*EVP(`u~TZ1;yhleqD;hLC4k4GP9)}uX zcCra(SK8lofz(uMS5wC!A#E3nv|Hlt6zgQw?N@~a%AHiCt+Uy6Q7dw}(ey|}aD~(r z`KD*0?;^5=%8Ew9SurP}npCx0V`-}e+z8f#iYXhuJDxTY^leyi32-fK_&`0Cni~sF z>|^Wk9JS&AXJ?0fcGb|{+4TyTvl!eOIH%;Mdoy8GzT8wyEnY1oB4;l%vyDWrr3Aom z)tnX$=}9vv4m2i+&&@jhW-?STD0O3n$54*5hY$^?yoKRd;TK`9(9Z0;AJ2u>9Q^`x z2eeMM@7ur7Bwf*fj7mg!E)eUrEdzYY?(z}zMV4|(vx-dz* z8Ep01r9n}&BQ&un&s)+Bg^Jkl+OM(vLD1u-8qF$+Z>X6bh*rnUF3Bc=*5P) zK)7MOr|bp&nO^K-_hSE`f%Cbl&Pc>d5v(ht2Y5Jt_Dn|iN6I^;NI$W%tK!7d&RmzM zw#93c#rF5r+$AD?RZ$qjpgkGcC*4IWjRY-U*-qEn9TS*|VqP2Z^38m%`6;15rpb4c z`YLV~$*S(Q0cy*SI>jAX7UP#@phi$Yn#t4j~+-Um4&3&HXq_W zPnwVD&-L*u_|G4RHTgQMKja2+TZa4MEgT(HzL5xjG918j788G#lpfZ}WL9}^4pa;E zm<#DPVYY&OQ(|5nM(QN+tUkBAgb84xJhIl^&i^8q=ktFYaJg5Ihy@9B)01%Yfb%wuip2{&3=NYXKewvl62FT}Sm;#Ddz>tEHLNO@fR{o)7J9Uh1EbSxvSe2G#8_5nuQ_F+g z;0M!C$3-+$10Kf`^PEATN^Oe7y1>NZdTxsPn48NW?WkwoOsBmqB>?AOwe}u1cGlP< z{O%JLC6?IDEp}LXRfZ;pDaHpxJ8!kMDH(oi?SfHY=+OY@u=E;dB;x2XEPW{A_wjTF zCK!jXk`E1)o+sNJj%`_nIn~{G)oAxS1OplQbD!GR;_d(7GIInZ)yGs2vi1;fH}mmu zn?BIIuf%VxLw&TJ)?ps@Y&JRIp#kLXj{4B}Bs&>}#hD3%d|R8oL6xOx>CwZW3LITf zEyT<~JlIWcu^HHx55W8j zY7kQuuE#rJ)RrBa=k4=nuhUP?@UnM}nbT^cmLq|J3OeKvE*#BN5biMVh=i#IQS)PR zE8uSBQH3UXUmgVtT4XPR%v!Wv;x?5doXyj6{z|n}o>4&um=~2I1in)y>s~k&(bGr} zV0|QU%5qQ&JH0W$^0!*Sa@tc2d>=252tZfu`Otj|CzvDXbHOmKw5+LMSm&vr&eAMb z=av%Rh$^hID5x^aZ)R!pW>y4s7WmC92%0%E7)_<62ODO8IT9Wtp6SBuFU3tuKY}p( z;TN|l%>L_TF3kQ67iOPN1;&_BnEfO9ZhR1CKm2TU0Iuqsd|Rbvpg*Ofg0Xz$n}Ef1 zy%&~#?wHkK;!|cuCUy&!PaUPPu4vc+!}^`@VvQUkY|^aW!Xm8Somu)X158xvIayZz8|P~E z?Jcbm?hP(3(HDlTSed@S#LHPtS+dq;v1(egT5oTXP{d;KxlN|B%<@Jo?CYUX@YYly zvmC}!eq2_|Z;+bAJeK=}vww%#XC%(Ve4nV5;t77bs<6U)w!*Gh`%h@{={0PmmJ>fr zcBF63i8ZY22E&P0j@k+*4u^9O2HY7KaK~0Q8O{CnMSriuCtk)$VM46%JLDFxt-fnE zjrn#O$Q;-iS|DvquW8cuBHQ-KCaV_l2@`mvW^P(ybDLCq$5t!#>j2BYHmUFt6)+12 zS?h4~EfDlD6~J%wJ3;SLLGMzaXSwoIxuV{K&Fu5sZue^23OlPi&+}`wy4!`Yx&Z!( zaQTwrWX&2$=o;M#)EeC8O1<51Yebg39iOuvxMxwgyL_->l--Os9c8{tPpzo!V*J;v z+!wZevE|KXB?pV0%;ji4v@a;Gj4HADMEA%&;gQo6-X=<|x%nAhWFNiE6CV1%}Uq<>>uroR7 zriYVm!qPD?WSuE(LZq;CJf$qA(EKwe+f8t?om?Ho_ygH4{9=X`(xCG%62T$zS6b0a zOT$BCSoc=D3B-?&{@NT}AN`g0Q}c{rQ6*ikj#NZ{4bHsCeU_xQJ2I10$S@O1i|y}^ z67m_UqKvjDmPYpV&F{mu9}0xUrxOV5ztRl0ln|4PkvM^q`3UPsLy}b+{gtUM<%;ze z)4lBJ78l=4D7eS!5*l`WkbTNY?_m#D!r>We!d%Je=vSOnK8Nw-|Cx({BKAFBkrURw z4ko=54pD9KjFNB~zF=2~9<6W)#7^XN`^Ua$Ebz>EI=fKC=JFEmN-*}q-Z*Yv!;88K z>vfJM2eXqOQ={=8R_tZ&Z1x1>rpxO3Amo!{i)|Ht9aFCOiwBW@47Z{0@PpotwZ1#H zUj$ZWuB*!$2HDX(<>v*8Xm71XGR{;#?AWQEE7~&s$ z5~HZFqp16?!1JLW-uHgrKr_dd1GDaA)YEC>{89XKA@0kd5w;0=qL^_CN4$Y;h$Xtn z`Ic`aVnFH}HmI@eTYU7j9BJLFCb)YS`$We?{7Ct{S9yEkrcU$Ob^OA$UY_kBbd5BA z51L{gY)+l+Iy zc!8%J@d;FGzC6@-fi(smS0R0^f~Avs{`WZfk$ujKo#E#2n}8i6s;c>fsZ8WYe*<>a zl?I3Du#SiqZI?ShekDHvdw`@ikR2SVP{aC5>5~j{;HjncV}icA`(3?*64vU7-bhNZ zbqquM4YNE%(Ee}SE}`$`GO3$^2n>;|RIInD#DMHWw0#&~Ck-S6PiSdnI+(Xh%I)vz z39B6ggz&U{r=K}SL)_J8UB?FFknpp2!XMpnLFr7ZyEGX1WW>>5h<51#Wq_w&U7X#~= z-L{ZIylmP?UCVriMUv@go9fAtg}xL)>G>hB4XPmi;bEqIpgJ1)Yr6gFsS$1`sK%w8 zoj|;L|8&~@H3>egYqc38ZND;U*cMi`spLpN=$4dNR=fc`tK0bQnBf#Yuv0*+pWb9{ z%LCW6;|SlVX>o0%d0kF)4s-pW#`Bud*3D~T2}|PUbx@;u!K$7oroZ^(7^0jX2MosG z|66#-b`||;yJ~G;TUYpPRR)7Fm!izd!ROt%lU-v|d2O*1IZo2_p4+qUMHUbol0{2qE;?HYhCHdEEUj^{OhZ#&q&&s%8S zeqHQZFQ)Ma!_GT!r`Z-QM@Oc!XKTc9Y zy&IQ*j(r+*q#jdsl zb5Gl*1T(p9y0?pNqk3@6=^86ld*=Kyblu0{hkJem4@ka0uOJW`n6(VE*A0VX>E{19 zVZgO*9kR_f>ZhA|O+gV>okx|afKM%cEj5f@jg3SKXmKSi(hevk4!NG7YsX2|G@bET zeRN3B_cK0wzV`|Ggn;L93e^T?FJ{KX$@pttz(ol@yCKST(>T(6Z-{c4$wP3hs#Vo} zc#s#K5UeM_#Ol%bD*5XbL<#VJdwc%blGS}+gf6^&&&mqDkC_92^$F}G*pYm$Fgcfy zMg>m5X;HR`_YPsER5@r3BjUR5$P9x zzV8rK$kVP{(VJN(UE_f*>Y<03G?dkwJDP1SWi*w%+LI%Gnq5@WfC7ADmg)ZcM1Scy zBnx82!D?6YrCn{?OLZI2{{=2Q{N|h{b}P+E{te;3hW%2lT_G=$@nk>tF-ik(gi+OQ z@YQWVy>HZ8aiiW`yF044zD+@;uHfOTd1P-o|pGqJUOfT8Usg<6N@MEh6Z>ft6Xak476BrZwV1P5DhK z(NqR~*6f%r!LSs@=aA$ZvZ5V5B)D$MkiHdnY;{QCcINGQXcIA`0WBI9rq=DwZbVJ- z199XUdBm?SvsdwMC3OrmKj-9U>eBq%&-tC1~;dVk$lnOLzdl5t=C$cAk@jO(6 zdvWo{NhW6xMBCLQg>@UI0Fb5)rYS~J-oU+m!K%=H^oD{zy)Yycw~CwKN+T$!mnM6G zjtQ?3VyWv~8{-d1md| z2xU60DaEh~t{CR--2M%}B@${B$jMI<{z;=4M@DiA%!Z+E6#s_b8buwQhVp9zlH8h3 zw$2#QsyJcmeGr|QladY(Z!58GXaW%;l1w0w;E6C4=Kv)Cf)f-v?e_F4FlXFoaPoKc zrcb`d8S=|C?e=+QHcBRHWtpWT5OFzNolq-X*C%Px1F&MfI5ZeJw!1pqzz{6glq;0h zv+zRj=>Y(!DD_qI>rAA+Z(aWFPuR^J2xy~9WuE#%jr#pUdnQ$-Xo z?}Z^1+tGH3rG}=+ZKthJUqHl88;2%;*6PJA6GZVd$TXKLLFWD}nD2uihc_F`TmYq| zX@Ey3u@huwGe@DyUm+XWoOGMUM4Db9Uss&#itpUjouJ6vPJQP!(%R=72 z8MKtd{pAqgIzEtKLHI2s;jo83#kf$7jYE)(IOS>SkfYRwfBs?7ws63;BY8clg%UPV z8VJ1e+JMea=rF>G$RB2~=ZBzasD4kJ>N+<0{8p5gdW;Q!Yk$#-w1|AZ$zSWp*TuX{ zbT~B6qY9%Z3W{IKp5kI9gi?pWk*k4^ypoRg&siXZ$T7p$znVueHq^4d9MiIjq`2z7 zlR!cZg@gl*9mWfkazn9cNQ;>xlUzEILe3nCHY$s!e2Vx2e7Gf}niF#+dqKWgGFU-! z&8>>N@&<8iPLOW!CQRF`!$CNf+w54(FtpnL_R-90HX5$AxrdI=@v@J=e8UC}Jl|o7 zS&0KC`>mPE?y2=#sT-{~2N(F06lC5QY!6PT&(n&j)5Waf&W`dWww%RzB!UX{F}!&J z#beDnf7*6#O7VaE{=0v+S@&=FSiv2$o%qU8HC(g%B(hSG3Em{oM8lF2Ggd1O`YjoZ zUfHhi(nxue^<5FJ?{{gpu35Y5-Dpc;PUSuppP#EybTa1;1j^%K%#5{n=Xz?RQ%!aqr_B#Dp*2HvY}s4R&j7XI68D;g&4QD6Wayy&F@~ zAx)1-@6jIK0Mt}G!IvPRp|H}o-0k&=fe!j9XLRDPNmbp4FWw90`&ckvR$mkDz=S8KP8eHF#iRHb z>#$D8Gl$7K=4#%Za6fSKewO>=;EK-4ohPDuR>BP|%VCjMjVQ#Zob0_UyQ#!IBY?qL zMD7!5Xps+tS#9j?aB%fXK>P6*_G9^D zn5)XT;?%ginP>cQKQmGn$acXF;`F7Ha_eCKN?^aBC9rRf0<-cFHn0FDukrjy4-rNP z>vFI0BJ=`xC%uDF^d;?t;r3>nq;@4x$8SN5x6Ax{L&Z#X1xgiA>6Z3)0pdSw?SCM* z_-uF28oqhLzKQD|shxQxA?mk>oZksY?ko*&+c1ThjrLO~>t2 z!8+NzhzEvhm{TDf)#=ly&f4c_u32zR%4r~lE*e3T;;(?=I-xTus|PuHbOR8hO-_fQxdQnbsX%C@ z3S@r`TCsD&wSc(Ok)EAxz3YMxR}t1zAJX>kUE8Zj8WR+86j5sw)i=P3&Kx|4DGv0+r5%$*1l1gRzo z8B`$NH4)Psb+bFE&VP#%;V(oVvA?wf{Dh;d8wEWoQakxn?Yq5YHTPQ(`;T}Jsq)^S zu`6)vx3@m#b!FrrO}`H~@Z}0{;FByL2cDF*AWrt4nU`=l@I)y%;0jzDPn0Sem?~68 zda9NG2=IC_;%6+;(^>3>r5Ej@MKjNi)EK*(d&n}7Ve$*2|G^f%Dg&AAi_`4rV|bwC z2c?c@91^t5EpjYzcthdhl?)oAp8r&efES_~b0)#f`$qqZ9u9W_kAGQU?f9M}JZ7q8 zTBR-Bs&!wTh`y0^UvPaM8jyK=#&@&2zzqaWX=-@K%TD&?7mZ%hXkc|0m<)0pIJP1* z83ZR}Gl*<;Y>hc6KX}CkeoVuVcv;Of!JGTA63a!v>AUQYB}cabRd5>VWSU`nNrN0S}mmO0apF37R>}>y}SdVA9|v2 z&5{r@k&teGF!L0n_~y}g(#6c~`LhuM*^qnXo0E&g3itA@dbMon%UL0@dfYFkgD)B8 z4!l{cq1BR7GL9%cmE%ko;i+~ABicBK&c||B3gXHnqL9+=W?ZRF!14ulF#H-1C$_IQ zKzx17RD<%2z$%gk`9L-lWUF?cGMmdvC8rV)sjpOJi z*!m&R=-5(6vR@|(?C%RjN@{geLbt^Xwnl)QKvb)<5Km3#q~n4i+TRHy0e+8+65h6M9VX#K;;#dAvV>b;@B^l+0KO#r;h}=RcDGrh zjc5v~901}ff9IKIq1VB@o3!;CL9e4(HCRD6u2sM}RvsJS*ht*OEnqD93K_Fa9q{sE z|J|^ByUF)>qgy_oFOXoj5nr%$mSHZ+6l%g3w0L6~CPTkicC}xQgm^YB+PYytX?%=D`(l_SJ4@))?Pw+r*SdTd z6w4-AsI$me3!%+qqfyhU@78g=t^YZV1MbU}TY!$QvNpN7=7W*-mb+bqYpsWFdF#O zwQ|jVPr?l&mHxnVYs$_a#YsK{bZY z_c0FMn;}3PYi=Ip=DN_^=3JR%^PS30?G|O+5Cln5ARd=%p0<;H(8h9LGP5Jq6cgVl zYS-ft)&pC)7@O(6Bx#_+%UtuEDm0mR=z01G9XI}@(ez;)USxgD z{8mG!@)np=Cmjw_mnN#ExfWwjR^~bka9NrUr22jWYtMO6yLEkxSkayXKajeqB*My&+l^{ALMt8)VI%=1abFi&x3w?fxAX4@~%R?R>H#zL#CQEp7h& zYxe=7MW#94#=UAzcLzGMyNa+LFd&iLFIYH*$Fj8b0!JjYT*@-JuQDsjKR#xH)Qa`s zDkOS2m3qy^rhBBYI0qVwa9ey4CwJ)K>qy}iba$h4m3n~z!@e4+NLpztyZDl?w5evwT zSj^wP+B&o~ctnoCYNIC2Inb=dt3W%!I}t@riR_UV^8VUpyq~3fi1DJDB-b`Okc~Jk zl~6ICmKzelF{lWeyVAFX8Q)w8mFD^0lsr4bkne3weC!x6>q2(OAmdw+pRtaNZ^EA- zyQ57~c|(+`zs-E0m?{+E2cdM&CE3AiBY?}z++Q53g1Xok-jL2VKUO+s414N`c#TNu zdhI54cE_2b$2D?bmb=hR68DuT9h{JY4A3@7G3WBiA?6=R7A=;gc|JL%%=BM0Nhqfs zVlm>O-N81d5eBC@(WW4z^!*U9sdN~*<3x*ZgKo$uKcd_JJ#^aw|FfIKoo#f*u_Fc8 z2ifH^v1F2qUkglajL+0+@J;o1(y=(1J73Z5-AlEz>g##jy`-`tF}RQw5f?rVU->|h z@o66Jx6ch;_SYzH6mV*RY!)A7kEInoJ~1+~hX&j-^&=l%&2c~;UCnt}L+;9WX$kZK zBa3sH6A8ElCv=pGjk8Z$ZsA@u;T8&&6>^KK)1AQEWQ*7GSwZRkA3#w0HVa(;C%G-+JY>+F6Ii53O|Hq9zma(XH9YH(B+J6cxx3lPx7{V;v}!b zNnZCWy$)l&?(s2R#vWd3#naWyA}V%B#2-dG(6<&PReK;EpN)~xU7i=82hfJgojG@w zmp$9_)_QsGAc}%4UhGT&-kfsO};`Y^~&{n{vwNm=AcIZvo>4XT59YvzGcn?ck zcjCZzAl)n(S!JPddoK86mYh??+2m)|-aU`64iy8aRv) zgnexT*Qx=pmsxX;j+Mz6;_o;>Mz0s4y%XMDY`Z+zd^XbO1xCDshwi*wx zR(}LMu-_+=0IId#geUntlL@ZE0h}|(_1Uab-5~f;Wi~q4cPP!{WPuNOHawzzY#Kj- zT`P}f?jS6;usJ1UlB<8c|986ooq5#NcsQ&vO*PCDy1siT8!CNzkRss1sAlTwCf?p% zA8F(ZJ{CeSa;zh!bFeu!<=y_D@a{?b4#N~b9GE_Gcw%21#?fLQ^9Fgje-YEJ4^BVJ zRS!oHb3YdZy9D7QpXCZc=zlR6$}kLb_gToxf75+-3{V7N9e-?m>tK1tE!1H|7CcEI z!T%@X8Tb%0`2-N+{^6V80~ZbfK0F@;7z**>$BF-cwBo-J-}&FL;ted-{FLZlHqOG2 zD7(;SQs%tK;TQ=ia7q)RJ7**09^pcdW5cy?kOvN-WFBzB@T7C|tb>oGZE! z?JXx(X+9(hA{#LGnVgY{aL6SU5nMUGjwBusk3~GyY9CYRQ){ssHgi4Av`hSytru&7 zm>KQ|2nyfdWZ&=VzxPEky-mKr_#TLBUp8}xVP}$Qo{2>c(7C(DJTXMkZOx-xh01sD zg`r%{;jl*Nk1E;L$k+tY^znH41bA_g*RjaV8-n?nQACwXkO1%kqY8?_c~~iP%EwZc zb`&~9VuEMxY=ctMv@N!+Ki<%Kp<36TP3teC1nz+N(lK^Y(8(M+k+OazVVe{@H#at+ z(cg}-q2B%m*|nqTCiwm0 zy$`6jPyAO_Qm(?bky)Dexugvz`FtBGP3~xzq=i-;(*PXHfQu}(zQS=-*PIu&>Fe$E zXWQ6gcwlxle{=~5JEe|=sRhCvllF25(AwW|jgME@)`$j(@l5hxR5FMlz3xxTE}U)5Uv z)F77G0XQe&}>g8^$tSsrVQa(1u?;_QNWgr^7u0_gKoO2ez!CqGd6QUBA+FwGhdY^ zscNRREoAAW!taA$1p1?;x<0(Tl(Pkwsfh~vedm<#zfRPnNls$ag*86G-7-;5osWT8 zl-vnqhDnr1Gg#T{hU+Rm+gt@DAd8Qd?I8o;a$BN#JKb*YW;PASaId$p?Y&Yi-~9$a zl-Z><&MR>R`GD07A=R1aV2I4G#C&EG$|#~CT$hn=o`MLg%lh(HD3)txa~DeX*EC&A zonIP$77h;dw_($P-AegWFFyG!gK=Lvn6nj!sW0T?HGXiR&RHAe&Nq%qKeOdtBED+_*UPV=skw=COf&Kl zX6kTRAY_^Myb5cpaqVy!ljwI}ugg)EJeJysb=}NNt`~M^hF1+mL3lff9DTS{TRf^B zTnzqXn`;%c@tK%8Ndf6i9|o6e`Y8blXTG>mcH$FlNP1jUK!RR+eKN06Ucevr+YsNum97%hO~Q2ZJES|k_CN^xIdT@m`|}2?MoVx+M|EK0@I8Mjj@Pbsz_gM!WP9olwkJ2*wBBUM&qDHK<@(K)pe72xk z9HsGjNU5c@UdBQ}z`-gpwMP@I>4H-B$ryKQsT6Hxo69q~^v08fk6G%yMZ0q`@jeAQ zx&{=XfJhRBO@1f0`P;);=GjD%w@V4gbqP`FaxlGPAAX+%xez63?g997NhlC5a!n>f zT%DB5e`RL*tUIjr^iyT^7?}*NV+e4&&ec#{U(+9@P8UA|1+Dc0#wVA{0H!PIoC&z5 z!7@n6qZp|9q~y_$oq_A=eHFE>n}XZro72#LkOv{H+%k=yR|T62JM>MN1zw+ptp4$m zRW2{B+{)?~2P;+FjP>tidc+I+V{@tbu_&`NzeUN~;ETeRS6s~9I=Ex@+QL%nwM76- z88Y*^(s(&3_crrDW^sdzVApgmYf6CJ42)Q_*cRs!-kbqE1;>YRnCfJ`233PjSG(_% zr7)oNEU_nH^O;Qfr$3Mc&by&r!C-0UH_-Sc?FID$GS|HJDt6u+RP zuZ(#E6Jr<;1Owv`XeG191MTQTgyl3<0L$H2#~W*4r>%|BSBN0ODUxyuzO zLfJE+ekg~4r{Q_g8kID z1PzZ5kGJ+>6)$3mJt8*wM_7G)w%?BL85X{{t+f|5!Hblmi5=3);Dzt57B)2|2rt<5 z#ncvF{PPQ@e?to|hU&%5ExfRuzhGaOdoZR}cA+7+=iLea4uFGwXW(N zGO0|dn_(^>#wI0c;MI8$7TffW2{Wt3UmgTq)G$gnFpQOM7*m@KV=}{t%Y}e}RGe48 zW5-dSI*#+cWE@|(ag1*^j@#`xUUvi8bnXrw$i?kasKGAbWjIT6wEa|ey^Ypoz8i=? zl6QCXNTxR%$xJtrrOigN#2<-2l$sqqlPT(GE~wM{`Id$d}aUd&PS+eA$kIzQhIZhGIjwc7Ka zYF8BLEGyEG;8#2NU4t{3hB{?1HnZ$Frjjs_DtL#KbRy1Ivnv~D)8fF#?#qe*@~wQD zVcyJEQ_Ssh2Ekl?&kDsok!J-ef>A+0Xjc!%3LSn{ML2W$ZWWAy+S4+v$Hg`rC_=vq z<}Gt_0pYV|tF_S$|DtUUe{FWyGc z&8F~_n?iL9QxHRP^e>_8voa*Y^<`D)v7|?oegX0Ag&b@R%*%tFXeX_cC3N&&DTHp7 zY9GjV^4~z{FQ-m%_(pBsZi-X6NY;dGGDFMK=47SH84RN^5Bl-JR|8T$=$F#N{Q}Q8K42?1~kLR}gU@ zFC?1GQ`)9>Bt8bOt{)|3T@I)HJT}$R}e<_XKbnO6o zN6DL4=hPiTkw2W4mA0fRv3k(uiDJJ87i*v{2Xh>?007qxus7F0GMmALCK9~yO(ZIr zLB6acn64BNc>r|v0DCZI)zTT3Vk0sEj-qL-UFGN+K+LSsv!U1H3Lspvj7be}U$4mG zx9Zra1#J=V6BHlj)=>rK4d*sWYZ*y%U5u;gl>;>y94|q@>ep1 z#wCIG?{j%={cJ>ngEvDUH&_CJcKuK~dU26n+~z1}+GyhP)X763&#mZ<=Y|W))yFqq zQB;51UQl%XTF{qRP-@Te7xcF6UeI!+(6w4nzlEoASqmRH_X;=*0gk^)ezwn$DLs&f z>1NFU_H8L<6XtcSm!w{PC)=r;D{a~;{idC#iC4HMx=-R2%HrXz;i+f?)@{YIW-7cx zW;HYDrHO@&sop_mH5wVCd}4r1+AXaJ47jy`B#-1Z6}nzz$%(Rm{Ogd|51c(3<0r;j zPgWw`=(LzI+KVi~p?E+Y91kYE&NNkOz1!Zh{%K@F>10;636jMe4T9Sp?kTKqN#T?* z=V#Y74f2qO(Hv2TGR@zS3yyV(oIv|yEb=xA^`Pyu2dW(n^J|<-kA|p8v*hjhSF4oV zKp2kZ@g9C_-+j^O9n)pOt9946fh5iLMmL<&reI3XWz~2) zA5UP0EHgQ$FN5l0?mA5YU$ams71=#-eHm)B8F)TrNj3knK{c$caTU(^M|(%I3s}{W zxkag*pOII{@(8d<`M}-4{#d^$e594UACpWX2mpCJr^NZ!l~wqdqNC#9Y{IIk#5?Xd z)Z6oUiw%zi*nsAnn<0WCav6gXdb(CUL?w+v7db`u|7$p% zx78N)uLv4&vo|}_j8WxoY{Xl8okiZ;e9nEg7X6ZRr8#L&+HW+zv_y0<@`DM-=8!Vf z;@GbPviZOUYC6Lr{N1_&_%+<(MKC_d9U9ieyxnWBo9C~Pw9w|V2`Sj)S3`&~^lOE= zxgeeGy*;M>UzJ%4gv)~1NMRF-Uu~Osn_bm!0?5)tF-}f>)!friUaS)(2e!*RO_X@UYK^n{}qp zKYx?7c}2QzCN`6NnD~99*COxSsU}Y%3wgQy>zYa{nLIU|k-bOhsRGaQ9#X)4NZhQ6 z=#B20&|60|2Kltw&D3BW!4B5hyfs7{`#_uoO>U%jdJB2E*#^&)l!fm6HY6faa+{Bb z(Ds=HWaj3TY~pt2x<>}q&69DTDljXiTs8&}a}c8ZIaO&+6?PWCv$Mh@d@GZZAPTEo zgY9w#tnwa&9D>ec2VBX3ep-UWHJS($X@&f)0UBKSycV@va66=rI`zef1wS7)%vn10 zQ>FBOFaN)yZp7R=a9My_Wx356}`HxLlB9GE9%jkag*j(Ke{Cnaqrvz=Vx$bcj7g z`T(50f4CKAdFR!#m;?gKci2?z^=*tzp+w!J*$~timiQRQ9wUrn4Ul)0@DKR&kk8** zhv=U-L-b7`I&&cvTeiF{G5T3WP#vav2brdEQp9DyB3fYfC;PA&Sjp9&hm$%`dEBlH z^{#8zop`s~-bXM7&3g;QaVcc(}GhKx3r_5Zcl>DSy>>z02^PPrBQ7Y&uC`F2VE z<<^ko;A;EbYh)c$JF^Iqt^3kNL-Vz|W|odk3Lf$|ox(oC;$2L$vJ7UnoD5&Cc z<eg0~qBdcF0VH99 zxel~DdP(lpl58YcmF2~or9v(zUTPrH+k=<1yE=gBue>rpQ5+1LnQxdI36 zvE+ktzx~*EYGjHUnQwPc+sb;DMwKS}5%k_yAUs##T6rIo%HcKxu{r%09-U=J!(plUtS zLakbYzhox{vprUtTZeO(jr{VKHnkgv^Uph;u8J#(v4LRmp63e|VHaz|k88{%LQS|0 zV?~Bk8a>T~ku3NX!;6Db6#1Fhzg?~3@xzO?w`}pif-%FnFr)qRW4<|K*#20;skp(_ zn2lI11}!O8GU2+|S2Lmcxn=ACpAHKRt01$6*ZTn*UVk{OMqNyc`SSOk0W9wb!q3*m z*}J4;bBQDOq=Q#L5bqf4olTf#6p7?bvlj-fU+v+0wEY<*_mogF8zWD9vzr?Xse%|M zcHwR*ju5Ufm%aDRt`22yE(Y0LfkTp;i>v(KKC*?aRCbfm$6*L1e=im%zM-3>uD|Dd zd$SF9Q#_3dicfOX(vQ9)%RtdukcLB4!t_DP*+8m0_~cYYjl}uobM6J-hc5_Z2e0?lLysm4Rw2P2o}e93cu4`@IujdPfG(lH@!S&o#^JAnx&@dUu3syX29xGT@Vu%t8S@6JvFSf50l4}tEaE3SY zu_p7_*Q>CKT%$N9(-H9hAA4sW7*%yW{>j|DVKO8@fPl&tP@#2+CM;qbZC(2nZS7BN zjs1SVrXiVu)R2VCBq1z`#=Wf?z}*`6twwOyM(e)BU9iRlm#T5aqDJdd6@Q;|?|W~S zOco#n+An`3bKiaU-R0bK&OP_sbI*Z2{~ZC}QWp?qDJCCCy+i(J3Awwsny&{&h(?Z- zWDw`jEwqI1V=g-x3H5^d4gu{4DIsh01d9I;Ks<#J0HViIBK*RUpU{Hx9rRmv%g?1i zi8nDI^i8KDiWM;dM>ok@dR2p=pTB#Uv&$L~s32iNcJS(o2K@Ac_q;M{S(#|fLkLQ( zC;Gtc)4Z)u^Vu?!U*i~AX7UdyO!7ZPYKDoX=t;(NqMl@4nMpo|Nwz+Nn%N|2b;;#& zy6fl`3amra(+eV)^<}CH7l5XJMJuaCbS#3kGSog&Aq>N|Y9rhpmEvw5A!h<&y==50 zpW}2=6X+NTcB2PnYxF;Am4ycX%5$g!E$AqdGsJ2hYUCp*bZ zYbGvZU^E?AYKdVFYG^T;x(SO^(aNwNAEb6}gtc=mkB(_G%KvTYb7n+JiqV(zIUMA- z#*7P@mj=~Aje-z25y=Erw7~<1o$3o&V`Re)PkWnv_A#otR-B;yH|DO#X~}m_c&D76 z93y>v+tWcKnK6x+`Dc;gz4~>2!dqctm8J_nZ0e~92Oq>#(Y-35Qw2#nm7(TlTiydu z`8Q~pTvYJc(l>f7_`S}|s z3mgkRxcZ?@Qe5*o3gLf>!cJN1#_Zf2An_JGQxwxm}dV;u;`~=MakWuR}_C88I zW_;fcRnK8%$Y`_eSl&kou%GnU`ga#Pe|7x+KP0NEs4#pK6}}?@=*M`cjI`3mTN7|~ zkT%ZR!@tl<8*63z>#Vdfl!q-nu(%fqd81;i>wZ3pr#X!jeedTuKbpr0));?{^mY$# z&Zw=@&xg7HpwaZ6lrHf62oJCZWUXSj4Q}+)u0q4?F^s_DVRrIhyD#6e0w&u(>+ep( z&Q$N8|Hq-2XPj;1>#~jfAE@KX=r(e;Q|d#XUHf@f+(>7GIm@9kYZrq#X2j>z^(T_d z7G(Z}ot+-A+oeBn+bx|dcNufx4_P{b-fOk8V+7PMi{0C7^hB?S<^0oOOmI=Vr=wC} zjcH+{_heXGt>3|+Ox6S|^HR14`N;26*;AM|kETPNt>HGg^mSJ{7f87AKZ*SbIjmB* zi-+SU!;E_*@>O~SMOqlW+hoqwQU1u8&NWC6rUNViPlx4lntaA(HrOStlWwQc$F0#@ ztj&nEEBy&%v$>KJIapc;#tgHCia)^R15D+?fN`|`{K95ygxMOMj{g$z65d2X?(d{E zT6?I;a>I$QF2JEJ>4#MeVtq$5-r zo#4%HUM5i8UW0UDj*)f{!AcHVkoxRt&{zJp$aF|6qK5_ZZyqr#VbaW@B&JwWs*Qdk z1aPy}99c<9pIvcrQSv@y!Hs$C)CsGM$Aq{_g_5A2_X8opK{OMntCDpZ9f<9OZL;p>Kd3c)NnSkd@V~Eyp};CuXH*E6n7p@~EwDD5GgzO>7Y(vpvDgOf zllBtf;Q@TPh<(zP80dh?7$_BsZsZjYoKUQUo)YcBwq>AX98P1PL{|x56=}658H1Kj zQQ9^p$f<{U-I}R5`oa0=H&Ez-sIAb@Z8;VcpR>d#ahdbNObdH@5~fk=Gln%r_9EM z1YWQ$%*;JutZ6h-bq3Cff`CQhyY!jW0G#kuK& z(h{AXD~NQha!0kBkmz-&J;y_mqCLE(zF9nG^IIUNr!R{t^xAqj&RR)bjaHD>U&pMF zhR4`_Y>(+rOwDJj9A>Dg-2vmYdBaTiLhG%da$wcNlLEatazg@3G? zz!pvIArYz%Q7swL(KPi;mGM({t)4uhrm_E#_qSxoWTvUV+3zp6-@kzl*N490I~)j) z5?sxlXMe(xMFeZiHwn5|DSEb|d~q_qzLn`Fl*FFiP2?M-IisC|yc|1&we z(jx4ySganBn_MRJ*3RDHazjFL^_KVzXGMBiB=TP&k>3`T$feZPDaymCwcxyJPSJ6$ zzT@Cki)MFXOT^wtE%TY^#2?FbV2p+EtgK&f#~G6-A^G0lIA|V{buua#D=~u#U2^+=H7;Z5Eg}yeft%oKchS{|cTlG?PU++Vy5W zpB*BfL8F~$Hnl3_krZ5mOCBeEI`~H#Uc>}*B!lTas{xOv;#HU$yR+cd7BC&S=a-xG zYZvB-8uS`0p~V99bE~tL^;pC5M2>DIVMH=YizPrB3oPlwlTNs^+f#5*V`rJux!dh- zJ}KSYP|q?chgbgq+dU?zg&guwi@H`KW%l#|Qu+5OC>pv2**O@mT|F9fhw2USZjiFkTZyESev zYuMu)f8yUyYu3+8o5i~w)apg7Qx{^$pl6_QP&;!gX3izD?6sxnb7=L zcnutOW76J12^Z4m{^=c3+J%F%xhGO>pzHSVG6!b=6!Mntoq>B$4~MEI%IamJ1jDpem=s7~=X`5^(pZP1C;o)rr^*uYwgGOsPf8?Q4W0IK0_ zL$rXeZHSs!A#NA1jRoRAY#^S2x6w@872r%zeTh3x)5plB_p#^cO`VLHix8=eBEa+d zr0~3n&gKU2c)}7XeYywu2~-~w*Rp{1N=guhvu8Zo z7^rn?7u5QTY3Q~N{L^d3zl;CA> z8uCsX!2qpYma(;!9otW=U90#JtCngj=WvqR{^1sk-MV7h$*AxUAvOimo->U+q@d=rOiF&K=(YvI1CJWP;fJ*1w#TwzAEZg1MR&}|b zdp$e*enXX=zEi9b4@vecLf%|X{)lWIBwnGqlB4iUZqclWD}f`mm=Xjd=u#rS4w;#D z-{n2j(Uzn{d>x@ACF1+RR{yoye7cO|phn-SA6p|TyBm~foLdu%#MdUit6F_WxRn6< zYcR#xjVM>hH7jc0{-BZ*=4|)7K{+j@FgO0)V zxM$Yca0MQik|z-%2dUq-u%kts!GTf4+B;%R%EsIPXQ?7%{7~H`p#Bc`Tsxo&W>fp6 zHRCwAz!-D}Y~;@rtvP7Xo8P05t>+R^Tsu9Z?j6)Ju}0Z(Z*(>_%!}>%tdUoHsBck< z?6?=!f;F9@D-+w(R=W-)S-H}uF{Nk!XM!#P3=h+6b3K=Dtc7n7ANX)~bK1u29lAAC zwMrm4KH(k@u9Z!WK6sWqnA8%2WwAuoA{o7@Hx)zGo!p)Q1?jymLa=Wsaw$kX5<4!T zkc(^WQ<3wz=U9XT!}GXgTw?u9-Oc4ud46P}QBZz2m|JGVxC2CLy@d@pX&oKmVT_S= z?f4X=S81w6d5cXy|F%Ty%+7&uY=t;|d!GXiO(q}PJD=<6B-vq!ep@1OVLpM8>bo5- zK-S=`ZD`;mA)^-9IV=9FX&iMRV=?pcz?I_EIMMR&X);jw_E2uh{VlEC{!}^$Z@?E| z3E$mc8!{X_h>ZNcPkFLr`xn6Eh_yo0khZ3ed$_4Vws!9?1kb9i!N*wXHH1s`sRa== zv{5avFSp{~(i-uEmc&m-u8}>reIO9wb0Ci2qTxT*@6R37B3bGqiS}77wzeqj++9!X z*#Nc3Ax9JLkMLH>M=+Qy`0eppLBtpbiT(aK)kHYdAgkVo3*dlrU0WwT5NV$JcM{9} zaq8S5v*cN=Tfm7Ez8fhb_j`i^neo`tEc2-%O^lO_hI1V{bLL)f>>>$A$wo{n@cPuQ z1zxW}UBLIoT2wicxvv~JN5T}#>*vMFjS@Mcy{ zT={gLnt|GHR(vgz%fS1bo4khPx%4KXUVt$z+w!UjtP*Av(!TVS-aq33Xt$v4)uV)r zZZzyGPrjJQ7Y40Dz(p&wE=M(+7MRQi!*=lFzIooU@whP%r;!UmNZ-h*g|;`ip}t=g zaUr3gcCJroMV#B0_XuaY6GktZiZ4hro=A+Luym)1K!Da*ZF69Hb>32mX#!ZfKhxhR z{h;pFdPhGv*8$#Jj`4Cc3`35&I|zVk06fnrv!{J9|2$zP=22u7CLyNCM5hSnS$hXg zfu)A5gE=(K_RXDO4d2-sb%Qm0qG29x(LF_;ycq;75JU0Y5Y}-aYXa9beJ5MPQLrBY zR~`ip+jo}T?{pI@Xd+@A+$c>{_uRyNaZMnpc{;)KH*;+--g0sf!z>G*(z_#UCI64SyDmWb5N*(kD=ED95a_kZr( z9d(=hlJ9oJc7McWqV>$zI!|<9LwrDqFxw)|f9u?%a6ghOe&YiwY_1PF&B2oC-^-$b zzZMO=W~}fd_^O;h$Ps$JVfl|(MsIxgqI`8Lhf{P-RYUh1uxWEvGDAFWi`czev}j*-6!i`YSd5;y`j{1#r3AB!9gd}X?)0$SjABLjAhiJV%>wc!sr%#>-sjk- z1DGZ;ASA4$+r9zXC>haLmQBiTZc+>}2MQY;*@dqb9kv^)Y>dvJh z+M$9g82peUSV*Z~J4QN790YYPZ8oi4sW6!pcX7@;-Mc?FKnBxT8nmd>!8#Jj<^|}$ z)n*+EqLY_0jx&*#runoM0_q)iZ}w8oZ*GKv zfejiAVD8Bp45pNQJ;w#>)qr&}I4n)Rh=2s})Snk(^S<1gv`ptdPvBr+pjL9bd-Pe> zq{Fx8ZimA*iVw|EO#M?7Q@6ETBo&Bu5{ITjv@dWY8@_!L#}p%pB|OCUQx0LFUWoc; z@`jvZ4EtP)y#tEf8Ah1nlZ~2(%QDFsVFA~D8e=(LOA?NElW@H0D2k@pOz(d7vJTUG zz-D^S*i7$cnBH_>yEV<$8c11}?@3`{BKP%?@7-+ky=OJwo33t#M^3}|l{(nQP_xba z9ze+ut=DFLaJC2KZ2MlhBleI$2_AR1VR;WC1!~7DF2vgOLUyby7o4UU!-#cDSuMnR zU9T1#Ve8f6dR7a2dqVA>)g$+6b1X_RUH5y8iudtBO)RT=UAT+=)1XaIiO7y0_70%Mkhv2w$)v3OG!u#8u;EAi87V zK314)>=ShO?hcw0)0*2Aa>9FyWVuJ0;${^)@_Lb~vv|NoKep%EDG`nu=#YHz=pyzB zVxH4##d$-|5nv({aOGIuuES)@*zO=UtXMqDynRQ|;Np6AQSYNHHRaf2#1!mOjcFBs z@J6kX(8%_;u^`_LjqT9b5|k20%3Ub*KjJ;NYael7Z=vNYF;eEXt%LsI(iEGCR=wwC*6#lix8z0_x zLR~gBxieZVB#i1cbOHxP5k#CAhcD?v`M^kEU&bk8aypb7R}? z24q^2GIoUcnkkw6Gwy+rP5PvuvK@ zHB|Jncx{)^B6eyZD%%0{%%q25?(HP|2NJg=}>EkT*O)>%|jT$D&g`-PAaD1JO<$y2yB&<`H>exak zbfr`&T!Gw$l(jqhVoS;*SKkm?LULK)oT#rm3jo(iHze`R)Ng9a8+}L zosn_&}SW-lS;Kce<@%2IbX*9>QM5?q9?u z-b6lMy_C)zX>Yb%_ggwX>-!jc$`ezaGYHoo&`As$+?A zYqPbWY(6$t396a!nQ{-*Y?ZXi7d~*Z*x0kaLKbPVH{DTPSj$e0Ra`=et*D2JPHreb zJXB(ul2d z=;T+=qTF}?&(JW8RX3&p(59t2=H92`h5BqPg%H6A>5Qy~pRj!OM;y@WwfRCq2aAgR z?@K9nns#`@igkg4yv@M?6!@wb`CcUy=qTXLOGg3DE#gIThG32ZWa8ahSh3Y~)pvZ0 zP5jXkW#)CdBfYrFYx|LQspMn=4vr5TjQ17sH01$nY$ek9%A8|3SYuY8&*j{%f6zvs ziJT^P#=ZtOoslOTJ^WsGZ~v{;y=Bt9kGt>QIl6noMjO%BIpNb>;9kV*aboO{eYZ94 z25XlmDJZwQIW+#-&xKY9he_95__SK@0UXA@>8y-@7re5A(NKa__{nn+=sq^-uV zR(LdyUVYr{fY*0>V__rT%UrrQ3^--th5@dK%;8*P%;B7z=Y7tt9#+;(J)P6b5F)EB z2lj9}w}02uxmMPV4s$;CJqMN|2Ao;fN`GNLdR2VZo9}D0HNz73N5ZqmpUJgG3;J_r z#T1oY>oXhzHcO-wnDO=8(@Gz!1*daZT^%vSJ`iLESk9cII+<$eijE|uKH~_|9Mx$H zbA+XQt;7b%x3Dlq8&c=PLy{fUi5rgC6S|r{p3pt$l?5SF-N(?SnFsLnJ`vYd4=km> z?PvrL-8fXx@9y=QbB~AYvVX;mo+%5?wWGA{Q`xwB6Amkyx*k^4c6(SM;W*{6A~{|- zhZTYVE%69&GYBwUToFtQnW?>jb<@Ftb{hxck0`*Hn6gnckkSISKW`Qq+-#%4vl3m9a&loT3|``ff^dfliidRO8URw`LvXQ=Cb&gD({h;yXjeDXcJzE#A!i2p49_~C>>-F=3* zf>U05pAIvX6AVoWtA$;zg7%=6nB#|8zDwhe9{@`)#}7BN)+9N8fWIalKXd?zci2Sj zNl2tDJ2GkX^dSUh_I~&frwNzUoBk&~d@v4TyHlDPzr9`F_FYY=FJfplA+w%TO(@pB z{_0o_q4xUIvtm#ieRiuDL>Gv?&^`zQGsLFk7>zR@4bo9;x$wn|#;5@4q5l`w5GJr! z9U%Lk&smViYo~cg1b0N)L$lFDft+YXmA^o(PSsEcr45P;N>7v>&&e=Za9S2}W1JC1 z>SjkF2A!g_f{%=N#>XLCK1mx?|DSIW-fA#vGQRxNGS@#a$>-MF*;#1Lqf& zZKC2%f;q~mCRi_;Q!P}!fTma!cWlW}-2G><1%}18U52IkN1|x!>fRz&_T!>^>lFBC z)thEyr>ANal%weiiPA{~y-iTfV8{%($DxM=?F6S@6S0jm<2^)Q9U>*`?O3g_v&R3} z8hfmjUna^jQE0P<$)_8Zc3SzWkyBn#)rop8n_I6f)~Nk;jc<9_jEVSZtMu3#ys)%2 z`f(E*jXkBEY$wpT#p3#Z2eUmBHdY4y_ z+IR3poK0M_-o)vV5EQ9Mt*Mzzn+9RU!b>@ zQNtv0jTtiVmA%JCiT9#5WNnUD8;T5Ns}0%LY)g7W&J&JBU?>p%Aws*Bl6ux3iZPD| z{h__DbM=Q4<<{%j=<;O|XyVE%vYPsMvDtQ%kuAHjULM)@9#A0?^vg>gv=QkV1+>r+R4YgG{5f|*>(vj zfc)Qc)-_iARES)7rdhMT#6V(%54S33Ak~eL>w>FO*y*ey1QZTBvD_F**|U#t;@wE? z`oqdR#u{18t85$#X(#S)qOQzT0Ysg1G5c7D*YWt@7M`VH*4(eq29yHFmAI)O=3_`r zj;P-t8T-`!&3X&>5|($R*1_u5+9vBqs5A5$@-(;JO7ZM|Yi%cn{S7(laZfA1`P7Mw zbBe6v-^eBO9i+qfYoYK+bqKq+`zWI`Pe%o{x3#BwQY=btM7XeXvvuzK+`0iws0ZvC zO!kYIAW~SG8HQwxzn_t6K|7TXLsgcYI##U`%|Rn@G`+x^>)iyVKx#e}AvY)AI?r?5 zFFZbVDk@RF_*{nbM>@dNe4NrM^S3kQ{%eYqIgK(*=O5&N@Slw0cT(#V{Nwmhr~kTH z?ba*~nnAifC~&lP2cOG;kIWaOp6ExkFBGwMVxubLYLdRHl}>cH_lS&EN3%!jE8o+B zz~K?`UAaGt%7NM`)_(d<_(9?YpS!1cBvr>jA@P+x;^7t?wLM8~Rn&Hf#-yh>MI1cW zN;|;Hy3R_!(MrobiT8_|E&nx^RcGz+BAq|nO8bd5@+HCu>?M&t@T)Jro;xi6dN~7V zV)$gN@HWHbkCeDuIZP^myA)JN0=cO3xX2@l` zZJeMwdLpQnO(UqzZVBpUE)@$wH8n6#E=ApIQ`EU}6m>7?Ep&EEJVjwPuCuQYoZgBQ z1^X}*)wzW!3VgRIO72c?0!eX$9#@dr)=u|qG*$WW(rC!a+UX~(UPHR0sRvQb8~S-g zPM?IhPI8G0b)8FGXxaS!nO(_CXtptRkQ@rGk}Kw>M$ zuCgZ+;GQga*cA&f8iE~lzs7FV?Z>gg?rw7~Wx7=U7rGM&7#~rO;i;Bl>MzxP7PLp< z^ZGjTiFn&}vdt0YIA_sK*JC+Pk7fNpN(|#o)+ex?}Uy)xKL zB>~SnH9Xd4V2+_@^2|znKv2>SF|Vbik3`+Gg(GLvKcF<;hSC%VN;hDXGufW<7YH*n zg@}kZ)X0?ojUyR%%AIU8<-0pyb5(w_hEfggmIF+JxxfFpJ^TGKe3PUDf0L`YLcRxH(pE=|JE2vB#a9wvkz?N}pXSgSG46>= zyq}e#R!GPv^$#{3!{0IEbPL^u&^7|U2-RW7WV zFXWwHU5U;!LyeGEEeQ>M>qll^N!Q@0m*VF_WUkv5N7y|W-S(6wUDMe^3UCZFMm1Np zSwqgT#{AJ5@;~Mtelp0xarz87+yQk9x|S&D45(T(s3H!i2!q3R#0Cf3jB_IGz!SX; zn*7D)LfgueCctt(#}JmfUrY&Z#rF_kC)h@#28V=dkHY<1nNk-Vtx3S4b+okU#foCE zc*_~1+Ny!!qwI633Ht+1`D3QAg(B<-kY~MVvLi?aFO6xfn~iDsy>u`w7F;f7#evHY zGJ#;gii;Q- zX@af^poNw69kiTJI9S{jws@4Qwuanfjk(AgvWqpQ(i(DwF(Znd04b!o>{}Tqtqhyx z-tR(dOg;aN*Pev(_*9N+dmMmY9XIHjGvuXMk2OR*F+j zO?17Y3BB|`ZntXqo-76)Uyh*V@tWk5W98;Idu+17nsz&EYJj^WPFe5mcA2`J99iLS zXm2x6KnHBCv-{%C;VB#>aARSjk>uSMy?g-{bo&J-g0eEWRhc%HZS)r}ZuA$Q$rppA z@lnpm#ld%mh)Dr2X0H0SdBVFWRJy*fhqCc6MmX)??F1-#1VkOd+I=_lDKaKLml5qo zu)Vsw-WKiLkNz2uSpmj#4JiBi0vIR%qK_}er{UII8b@HvgCV<84-!z1@}fV~z0{LL zU_`zUOAcGo8DN1isf2{E+pEAh0#lt=7w4E;EOApJ-~vQ0xL`#+gX`Z~NaX5jq%FB{ zXv9dEy*jnQ4mI2bPypwpNJzBw*W;58!RW<^oQJ8e0$|+f)!9b)Vfhmf3NycbFw9?s z>SVhWcb5XkjM=61CTa`rAr{f%Ie5NCYV4#FT5P1P#@c3CQ$((l?Td7=GQNvi;ueqF zUH2dMx~c$4!#8?FLVn**#F+;>R!EK)j96_~blX-eamKi^0-f|ged zj)k5U7q>X{x`>ZS;m56AgOV-)5ggg&)o_@X6oQ>S;o>IAkg>4jm@%={IAG>Es~tKC zv=_tBu})T%TF1H*DV(fWDjntOWEBzb(9ZE}!1?TPCp5^NY?cB90(qRBl`N8XriuH@ z0H$P**Vv2XOy{FDEc28JsFkQIXJT5p2F0PZnaO%dPqHa9NIZ64k({BPfXpaNI`2`)bE)tqbpKwYveX&VIOx)Fy{-#fH^kz@iG7CYK;i>z z$Q#p5?@F{pRQ4{*OPcjP4(kME}60eznQ@DhTo$=2as)o2BN#J#28Sb_1_ z1untXkTKt%`p1D=D-V(=%Uo?UqN3X!xrUytk>_-C+5KM_ zK+2}#wEjG8?{}ooqxq`KXf9$2-Pu|CJGQ|kRQLO0X9+#jL5iRYyO24|!I}FUMaTo}&JH6$%zYdO3b8#9kRyh}hz@pN zwXGRB!ujY9C$Pa29M2vBh2BA+6#3{0zkGBAJJLI96F+*H^_XKbBM)EG=e2dKw6m9x@z zHy+j?ZL;;BGM@jm`Pn|6t!3jHPd`UG{9wFZWzV(m4vmVxH1tcS)DCv3fPKR#U~U)% z#8}!7;`5#aXj#5hT1)K{w(?vG`s{#yK_b#g~bJh<6$g%isUvVK5${Fq94 zxpnsH5{VP)YfbVAF$QF|0&K|(C`>q-Fp=yovoasG(vINddIVj*9gminI%jehOZ^#d z_0pejQaVh3#47TXdMx!Gsn1b&bF1%>dVRg?er^m7QG@NzIU@dR3VxT=kdRS@yM2Dv z>A=4RO9wL5X%X&As?){Q<+XTo%TzCWB(~n+eEgM%>Q>SlCi*pxRQFF$VtwsSeV^I& zou%tLg6dwam+Gz(f7HHt)S+*4O{L0fO_kT_9_A+2_?lDWM|O?p>KYH}uErlx<7Kfm z&P=Q^2I!H#0$nEc8$uu3v#OzvTxFo%!mrG?+75M4!_1=t_2~{Z?UZ6o3gjE~b2G=J zSb5m+D>0LDGsjARvTUy}E|WViy9TnYslI}QDp)_0znIY7i);xAm2b`PMXV_;){Jap zZ0$DReMdvaUeGO>w4(#opDBS5VXf>?yRm)R8943T1x{NZfK%vKp3n9v8r$Kdvpuy7 z3Tzq378oNvw?7&s3#=*dr@W>F)JQtv0Jh)y8UZV3SyMpHNJ7)Qb%)KnclTnC?p_ep zZ$`k3uuC)jTiYgep{MTsUTYpzz~9Ct6P(n^Uio@L$V^B2e35G(<{8^llhN*Eh?FBG zkX1VCiF}N3fTv1puMeytV-om@-Nazs1XoQqw}}r~Cl@7BsohArw#@zjfq6gtmp9@6 zQZI_qHP5YlSBIU=C#+={qMwDy=0)6% z1L03rUvz^iB)>heKymLm zM*V$pBXy>!&%|3#w*puUfIe~nBv_mbK+hN z5GiJCUguA_efCU2FHB3kXEI>N-VvRwg)3_bqH#Bn5M=(Q_#KxW9jrgTWhBD&h zKB}`ds@g;e{>8pQqX0$_0}WvWeStpX|xAvsvjC15ZK0^Uv)FeEqjX9O`|=4 zR=CaP9-VD6+J^L+*u%M?%@J<2Cf{IXPLXrL*5pInWC5>Fhl9!6++-oHPi^)YVZ#~7 zy&J_0cE$Y-(F_QK${AGxNVjv?=s8cn0X2rp^+5mqz~z!7s=o*N?}tYFjH$k-+1(E? zQ2T+uZ9Gu>q0v4ARd4HJf!Zrm?TP%OnEHR1qrNi)j*6jx#B&~@&mzvlbFS^kSd_e3 z>YFk=CyigO9nIWqvE|{dT9c9OlWpF3{QQ;~xAQky+5@t@(%*ew){N!SB36L&@byd_ zgny;vSR*gjn}sGq6-nKn)ivqoGqKO0GW98en6lon#{WgPcDXgnZVcvq_VIeQ#eK2) z=5)J`@9a8Gvg`PkEwwnsIgbF2rmOmEH<*Iy-PiV4r|GY<)W7N|^)-Hl5lhcydy%ES zvP5mYzd99nx*7Xhfs+z;KNn#xJ{jLBF+#jGth&^W#4DsippG zb(?n<38q$J*foc((Z|S(7CWEQCr;DwIR#Fs_9{WE30&y$Y7;8H(jhe3tqCVspw#bP3ygIzxL7;$)oLH!YvWb>L9RxH-X5fVQa z+`NN;B$Rv#2h=+}X=R;-=QNrmn!+0rUH5VvO1?onJ53PFhszNd(>TAK1I)Tcjb-=Y zddVgTUXD=f=SviebU)jJbBV>Wj@Tc=e9JYGUuJ1dk$Q8HLEuY4(CPSj=~yI?(b3~i z!8LX?mUg>ACvTEVX_Sx}j6}0{v4XdMAm3@CWEncT?hG zsPtCeNqnXoIle?`1Z2-qA>H*qVBj1>AOaO2u}nf-f4rnoTvT7ILa32`Cjl>aQls*% zF$Y-V9w3K!ZsX37Una+YzBTFzEAUyumTeU#;k!W{*~ePDeQ#wGY-^DHF5>7QxN59nb*ydKVpGDk}-EOe54ocqPo`-aAUmzoesAj!}%tgr{6I)I9 zklDC;x`j+%tLX_cz1QLL4e0WzrQZEJ9rPx zva-B6kZnBkXoh*<#x2u#jV83;5BE;PwhCJMcz#ta zvAtKIX|}n6VMK2(YSt8Q7)ch4M3_kLJj8s}GY^rqA66I7L-5w$GY=6HfG7`Xisc~( zJ3Qpb1Rg?oE8!uZcgI7H)jZ^EEBhpCH$i}Ih;B+iZP3*6dqqT+F096oOCRczg4Fe~ zuIs|sx-7?hj=TSuiM}^jyh2|XDL@>0Z!iHQ#`0j_jFF6=lb&S0j#B z54WndnJL!K%LF>2e5WXQ=KWDsr%Birm7BYbn{6@yLw__yLGgB*z)e3VuUgo%)N4;YT%h| z?T?A?(alEGiW_NG083eD@@E_hwNp%o1N;K>=QMTmVuB*57gAYxubZDQ^YQZVSyuY~ z%*%W&7rr_iD!htUcsqInVL&#N8!AQC*gUK4jX8M(1~{tDYzzZ{uW=AJRIG~PM))&K z`(#{4+m5ypUUJ*%K+Y_lz$>ZPFs)59GrbMn`tBYj;wCTEON5i#ao}yisvl7QQ8UPL zl?FG6z32Heat_tJz~fWDh23EH+&^CayN9=MCfLHR>iH_|R9&qZ^lx*gtfx`+LLgmW z{~L0u9N6F1Fi^nH#+S}$)mmXFbscu1N2|4#_}ss$TwDI*JiyLM!s(Js9+LgP$A!S2 zCNBwX6f!@5lRco0oUo>Ti%!s)vaUPpb^>)I0=Px<*hdF#hEJ1_8PqG)`4Y6~U2p%~ zAnhK&NGl&<^Ln&8r@k|aRWFZl2i*(tr0&N8^)32z@OAa-^_5W27*xt%^!v1s%!7uwJ^>+mwt4$L=jBU~?}KTj=f4>e)=^R%RDb zh~Zzos6~sqTI5E3vOl{AfzJ=PELmUt7}vNWa)cBgJ>h>H_5V0Y?!B)8NOE1-VA z(9q1q-i=S9WX93^w!W z_(sf7A4_y3sqe!|@9v^3KsP)z+s*-^2^q3!k`j$hiH*t73(%dF?foyEZHk~jA2NBU z+|0sTIvmbGc)9EeGvGP1=~N3b4>DDq_5_+Gj#eZ@Vf`9IZAK2A^S=Ne8|2b zt0(QMVW=SxPI()9O}5WBHgzR`idMp543}kf?xn-*yQ6VToGx7rPxu*faeW<3wea7<|4JxgLO)FV_Q=5QVvNxVv9_FPbM;Lp%|(? zBV;eK?Y}9Rq5arNeQ)ont_l2GiF2?%>HR%+??3oA>wP3O2SPfb0)~B6Ln~B`Q=SXb zXCcbK<#I6mi+HCZgI?J{`gISU%CBe;`4b_tJFR68%*x*WTI#X}vjCp5c2FJ5*y-N#0f7+E|5j%xcpkp7#2(xd&bDkswo>?1Z#48gW^pSIfU9 z-}7vlA!xavU=!qmzPiuQL)sXzU~{&Yy-r6Ds&%$*k<^f!51fN&G)Wan45v(vC`ng{ zxBDHqh%!mdleP0`^@r{z30QJ|vA;eOdVE1XMelUHg>;pEIP+0g*UNd4rPfMxY>s+n zIZRV~bBOy!SkN{iYW5_9iRiWE&%C+-VykI-$Fe_t-Coxp+k8#$e~6lXM>R#x0JBAb z@RtV6iEPF9mBU3tNlsKl8N+S2Aq4+Vl%acMkV#;_RcI=1V<>(s*Di4VSoXLv>~VBG zzO;24SBBAT94c|7MYEw9{hR5rx{Q}P?1So|0rmI-*}UF41hpM$LGw6H|Cv*i1q~ND z97#XMWlF*PWSik+tDfiWm{ajIKIdF~BR-F%D!JB{tsbf<&|KW2rW9^x@JT~wOc;i@2F^>b?##Hv&g_+9 zjdFalK4*7k8#?7jy9x;RPVDu50z#b1H1VI1s!-8Rq;#Yp3Bw+cFzit`i!S6pb0P(u zNu(fZR-X~y+bj-lnUfvYwnV?xWlpYj%2Yb&bU|#Gop-bbC{|^<1)Wk?>cBQm5bZg1 z=tDVk!x9XXItT1eQ_m$+4Q;8gKXXKbx2HWl(jCnTPIoRjeuZbsIl%dJH@MPKPML3w zzxM-lpTDxYlQ6-z{euKGn1UxBdNQ*gz||ul~;QneKK_ zV$Qgvu`R}&(fxK~&ba+1?18{5pdP`;CjhgfWE_Pm{pu9$br}#oga;h~VTTtr%b%7G z*m)4Z9-_l57^S`2>DB%iV6Wt!vfFQ&`n4HOzt4>K1v`-a21(ZVZA^Fj{WbmG(P8GN zY^(kLSC@WYkruNEy-HM-fwAK=w031$A{bZ2cIVjv?#@kJy0da{40N9J3@mh3IZ@PH zB)coNJC6=TbU!)2t!d|w7Cz6 z#o6+JYMeMi*9qHu2}|jrA}#+JUkrr!#dO+_-ONG68p4>9D;e;~wM*rINPm$nUl7@u zD@wyKl|8k>-;{cs#66Ja)gOnVTcNVJMlb|T)(Br8)MOgT@joeLB2ou|k%o%FmhSXs z_p{Ka?vmRfZA-l&4I!s`4Ir9ow1(m*Hm<*$43t7qX8jc_b`6Wy(q$M;{Q_=146eyA zjDu5B%YABOLF!TJ;=$gtkue1D>y#HSd8y@C#NV`l@!o;o6+Ze-X80s#_&@>d({xRn z-IMa}mVyDk_Jl!f^Z=7_V|A-B^Z$T5FJ9K0FS+iuALhD^HOydhgVwM;;URrT1Fi`1 zK=PJ{mYQ*r%rZcDEcuzXc` zXGXiigRV#6L3O)u(Jr5Erm1h1qD{I3SS10E^vVH`2Ihv$4&B@f3*}-)e?rBE1O2>= zQ4|V{PEkPP8@ysWs6ac65xS=wXdLTCmpCA;^>XhlY^ns+an$FPF5NHvP}{cO8T3yk22B_n?IzXW?*Ki z%fni@P;aD*F=mWx@iKag9QDt7#F+o3+{fZ8{vpW1W*Z${OYf&T>cOl7)t~S_B%d~? z?x!l6_2(y~(DR4t3uqH*=`OFV(kG^QXP8C$P31i-MNi?|ValDfGzTDPv@w2TSqJv+ zc^&8qK3T5*wy;$yQa3=Q^8CU=VQeGR4GU?dkyh+QlBZ=X`8G27A*#>n^&P210{^$6 z|Gfl!Un}nqF@-p7iFfA|9zvwF!?z9M46aeHcssDYPvJEfWvSmc;H!4*1za_Rxp1S- z_lIcm95hSZ5Vl{O-N&a)-x3iO)KlQaesHbZYV&c_kggt9`X;?PKUMn)P#x*55ZUhP z#xg(r@2z^MKuaYn(nG1gfxWg7ah(ix*I>v)t+QatWl2qkFa*kCuG)alPIVzB-+i+!JMmg3~RP2Rnyzw7Pi?m z%E$kHG-^n5wxiO%7LD;_xu&aLs`uweAeokwh&B08Yw#=9y_Q&Y*DUX=LE%cn|TAr8JPh%xuvqazag!T7o(A(O{6#|v{XP+HKdkX znQ{kWv^IO+qu&%^ss*? zDyO!*a$)k2PlMjX7Q9E_sOU>{=z-H8>wZ5>@DCkj%kB54gS4jcK!DAD!j30uo4Jp2 zYDjIPbQq-bM$=%HA3FcHxzmcZu7gL&{G$QhY6w3f8p9iDD+g(>TJ=B zEk(o6qIK6aT`0!uY zP>Q&*a3TGjf%MbcA>F??eR&s1pM}H;_qYe`kg$S_v%qaw0feCG6(#_^3bnqjiQ>+b zmgrQ?eg)IAznTip+&)$PJ5_IXnX0RCOhkOwPjLw3Q>FRVjy^S_(MsFZ8v4FZmE@?g zt?WSjr}$J+j)bqCGz&#zfjUlH|C8Rq=Z6>mZ;slTv($9oyHESnukEv-^U}~fe^?_t z7v7kSw&J(?{9_WSCtPsQl_)w(^4s;cK*)4-U%a!%^b@fjjr>7B!MSmn)}I$;%Q~S1N%% zo=h!3O|l~q?L+{P(O?uMVdFAT!9pGxcGOLmI$n0h{<&(`V?T2VW50UKjNOso#;I>O z%$C8fWUyNBVt~kL3v<-!LH+^~vIP7LE3#DM=JIaNf){Xe<&mY$zyTW!pNubCHCE?{ zaP@tlgV%78I;7U~4JclTIW7VMo5r#S5Tg#`?@Q zXvP{AW|(JhF+xtS(`Cnl8LK(q|FDZKur`9^qL8{~fo%l&%8)H&1Q`-9d>M%yd`=r_ zstFj{_Ha!J#~{v@c&;MEa~axSoS{9orG_?FY-V?{hvs(hWyehN zT5x+V-m6}A?R@7sgUGfmDgQn=J9QqX7nixN`670a9j%E0|1xXBVVsnVR{?-we3X1winM(cML%r z5wRxVjY?}XGt{HQvh9pcK8byno4xYf*v2kAXnwT~ax^n;t<8*%dpjDbOY~jsk?QRT^72I-LEEYs(a&b7ce!wY z$|Rc2dMZvgx1&)?Y7~unT#-!IA5?2MN)0}mwTUVUZocX^jUb zyY!^sOgu_zbHJ%RgZj2X?r2ZScH$gRYK_OH?Zhb}bE1UX+j9&@jR)s{4skkyz-G(Q ztfYroz0{(9kYWuCH+X4qcT4r!3VW%(+TIwgwb9~gdn2{B!YtL@zc*+TEuZ*oqfNBH z*3XDX->tw6)DP{$Xh#N(!G(=mu3zeQPduQ7K!g;R*!*^$G5j4YO&!Pu`PdY$&%I4!;`^9s zjR)seSQ@*Km9y6MBB1W*h^O1vy?!}27#Ql^-pclM&p9_sdaB0iw|(7n&k4I_)ZNKH z+ttJO7)IO$!L z)-Lyz)qRzsEA+^XW!u1E8)AgpF~~OC=|%0d9fP{;d2Alk`ERDeb7!)98t(ScJ#i1) z-_J3k)Amir#%?;c2*l!54cido-cEK=4Z`M<;dZjy%9cJ|NOzkhyGCyxHKzS1QT`uZ zjkco!hNVKA*kx}=gKcm3w4EEoYOc2QGP=!jgI+FOxI2zbum{~-(Wd+FwNyC2Pc2GNd)K7z5sq+^R2;8vaYA8Tl#!2s6{Sqf8^yh_Bl%%Q*(Xl8r*hi8s2QL zKecl4e>MK%q(?XPXOH^Bcs$PQPp#Ype9DgW@LGz;lj`{;|5H*@z8R7sKRkFOBV1MN z;cu_f@`z`zs_Jm0c(34`ycv1>&X_ZO`i$aWD0lDBoPBbq7EPTQnp%=OW6r)aXU^Dr z=H8*a8GDtL&Z#P@s@to$qAIwTR8n3&fAcFTt|+ewR`o+~Dk{Ss&-|j|s)}$v-*NZQMbiV{gFkB44MD%IneQ>x!u?pw-L1DV2TEtI#vq`b$$+fJ@ndad*T(I)UZ zfTx!KDo9o0J7t4^mfE2pH5E5AFVtpBp1Q$L=pxDS#b$w1d#bOwW-LWc6R$5H)-hSrO75(Pp(Y#wlTqaUfii*TB6WR3U7N>1l}L& zfp#PvXuk}u-$=p1;zazB;Tp_itTyIFaVnakoM$2bQaw#cM=R6WZ=DsojhO}MV|7_P zoy1X00^Sb`sArcD6u_tM#iu5h{yjP0`Ae-atGHjk2#2MLjoDg{_S~*cXb=?7P$#5l zxA6KI+*f}{!*$V`8t)z{Y9(HXC<1!dN_=|!oKs3XZsbEX(A3JbHUi`}^MZ@=-_{_J z{aPqYzsdIbbNo3i5%F%%+s4{@_jP-`F?ueeEno^@r+AFN@!`v04d2*w4{_po(n zN`2vtc*j6S`)N$ur#slYB;`O#VCJ$KfaN(!SFp6l3i<_Q9ekn(3A{?WaiH$TuHAJb zw%1f36YI+&%+mQdDai~>w1(WReQIocE!qKxTgyqCSW8xtzI;wUQ$0oePs;52mnt@U zh8#Yy*%kHAYSzPImVi94q69K$dHeH{c5B3ekYdd8_DP*t-_ENy>)VGZ+3Gs8!X;ba zeCktTi|EC1J+9_tWsLdKr>RL?*8-xa|(8;yk3_uIPRAh#zT ztsu?5u5k%SCoJfTAu{|OdZh39!F~`l1r(bN&&o(u0uL>nUs~jJbqGAAb#KYDm%Uy*ro~5Nue?Yw;5lQ}}S5{WRH`7{J=O(ICaT}P*QhN=) zdc63kS+S5s^tTZ!%cmwbvc7Ur6#-Q!RjtPXpeaH;8`ke8YxGL7#8}ZFn;n+oO9vHD zAX`0KhxaoaXDuWA34UJMBr5$~I6j={B_jbgxo<>Wx7W`b9~Cn^2Tkpq@7Ah`Qd# zLjLAL`&~A|hCQH2w*!(Qa1wm=FH(i~sg+_PbY-ba zmWp?$2y-W{F`x0Y+PJim^}!NX(W_M}1@V(*1APD)r>UWJ_+n0Z-gwy3!zG<)#>&Z9}2Rb0TlV- zs}!VPb*}xzhx&_5F!-yb`9fLmNFWQha$y58mFqWM$Y#gU?l1-i)QJuFMy+0ErB~x6 zeQAMsX>Ri3P0#<|*2uk3!sr!T)1C2f7E5=7#J|~%OGW60e|cNAfEZiAYth2l4N%=% zOIuX4SM)mm{j9;qNJcjVeKO9&21$gp$CmKjZN!**$}@}KPWd%+`+zuYR?8bA6wFmC z>jbnoY-e`>!!cRHvv5${mn`2hYv_0@7r#ibQ(zj_!?~OIY;oi1(l2q^`UL)Ahc4IZ zu15NYC7jIJ^S+jto}rcQOE;2~lFnEe%jur9&`JX#E7$k<_I?gLJdvB9CtAq}6@WB} zDJFr>`0bQmgOoSKAmw!RFi4pxNGbSmk48($6i>h6H@lCSpymkX-n197ru$yx`zBms zhT)SnIK3Q!ZuDw;v)0qhZ-`&J_J@7#px|_MukJ@9AB+e~(e~IP&32JiYSl}#Pd#XN z_1@U7CS+RECGv_?IYE<3i!y<`9m+S9lF5?11b)6>9MBpW48gkIa!BQ`np7Nk=>we2 zfR~0$=JFVzwE?upy9L@TAkqOuLX`U4E>&e^z8C|n5JmK{w28fAU>Y-x39vD9n~-S$ zM(0f3+o84*Xto_{;H6E}323#sxW*bwv_=$ctg#zlXN|BkehoW28+JBGbuNr}XOEEe zF~h%?HS{q}?`J3zg*=|#V``(v>QiLKp(+FS=8Zz|)C<$|Pqc=5XJ5c!)q#OTOeQ%7WkzI0iNokF(t4&bYWCYYJ zOYlo6dd=$;jw?r@QP^EK(r1O>ce?o2(LuX<^4M*(qnDPkmWViN&R((t1eR%IMbMh1 zoke`kQitkC^&|VqY+rtqtwy(Kn0$iHS2i?XvjZ57m)FupACoycgcodFb?W&7_Lqz9=F0#-0B|9QUdDsrMSZswf=<--u*>o zpQ7IL5cy0n?`dzR&bW0cevS2WlRmWCNJQMo;#+{0o^fdDwoRm^?dPz^bbq zmT07(?v8iL60ldeGFV(%R93nuSW*bnEUfA;4Yj8vSQeaH6bah26QfzLsG48sl9EUQ zUDge|Fz@D+mSd_>SXNO!*RIGF7Dl94BLfPkZo>F;Epy0SK8 z?V(2E%6_lMtvyV)-!$FMR#(>|xY3gvX&mMD3!aFz%M(6zJsNepLg~ex>XBOHgR6;Q zEB^6`0P;Bd;w#XE)B6)sP^^7lPd$4OrW943^!{2uX2~h2I_ary;BypnG;kKa^reAM z&^X34Fim|g4Xms8hopgvQfL66&L!{r`bMXu8Jn!FsMhXE@n?H?M@(@9Y9@21fJ$#U z;czSCJ>pd~t4XcuxEwVpqK=zITEo663G8Qef&DTY_MIB`8WrfehW$kKWo?@^^~Y8o z8vb8oTR$%_6JSr!1{{s2SmV@Nup%2;(CG38t|ZL)qySeF#+2%baJ3dY`+LXBgIX;fhS zNR7_1_C=e`S;bi2-ZBx9*cm?C-=VwxMNGGuRqN-3p=Xkh06hEq#_JKT8zkMCrp{kj zVExcfaKsNG2>O4qX>D$SwJS=~4TKuDVI?r!L%qvrC!)B?Z;_J+Gv~GoH=i@BkGAI%>uR4ta{)1CL-cd5sua%Z~9Xew_XH#3^b zo#AFiQ@PXK%xEfanwuF-O?C5f^W0=iD%Z`-jY+zhZX$QznNHuMshMuxK5i;+hMUZd zCZnn8?(1o8DtD@zjHYt)+{|by*Uih_+fBNOynXj^JL#rox~bfK++;MBH^a@0rlz}j zxzpTaG?h2i&5Wk<+`PP8H<=rgbTjkzc9U*m<_xFjc{AK(G&SALo93pbx~beeHyM-4 zbu)8gl5VCXipwg()m6cr-OSv5r#tx)KoW>o98B@ zsoY#QGbXjSo9QO@o$B-=ccz<+rtjBGP3281IY#dHcATxzS`aHN$;9-Azq% zQ&ZhkZl0Trrg9}un+a7_7e^|pc6Q6?7dAU0T~@TH&QlsLtgH$~B03eEUrFN7qB89B zOUp`0N2-d-!&o2{+0VfR)ofLHQCk|BS6EzBSyU`f!EmH>K0D2lXjY^`7Uk0Nx$GRn z;W|&Ks$za&btE*?eh!vLs_HzyE-Ef6j~t@Y2bWfv#F53t)s>~e67z(`Rs|*LXz{$F zs=_%H)#W8@NIjvlii)a)JPPS1;!74+RMvT@rkJ0i@;XmA7-5%PR8mo1#sfo)1n1Uy zDvPQj?86I-%ZkF`(omhV@eK!ys*2|o&Z#RrK3L~DqN2E{>~Iog!Scd6!4MZ1=u(M1 z&n+qj5(_BlDV|>`KSfnlMRlH%(r{%Nzr_{vE2|?x;9XI|%oG+?l3M7|K&Os{qP(rp ziAd4$QtLubRgen};UKpN76RY0!ful~DX=!SY~LY4K6|0c8VSTIe|{DD%No{9Hd8p{lH+Hds|SkJsk8y0X%Ku4G~( zg=M9oAoCt9)Gd^jmr$}S7>a1kLLs0jj8p}Kh33VaimIxLTF+ehSI%FU+C2^e6;?1# zCbZUb5Px>-r5L)E2c1Wmw3w%eAa_j0{Gv+zRLsNzjcCb8btMpyXVdAbqFRHCk_eU; zSCj+|&d9TvC3@xtBSC%+s+d2&s2n7$VH)Ps!NTKf^pS~2blaZddBNi2jmn0agEfGV zPpeA9)lv&Ejd%_$Dk~~4h6E0>Gs-157-rPLLNiFos4Xgu6l!{^sE&XkU}AY`aiRSH zF@kaoN#F?@k?pA}2082ponKQ_RvmQSg07|I%yG8`jxe?8c4hvgO8Q(L1ftF})Ns7} zAjIN6gd-*L!EEybqzXYHPjz`|Im3`-QP}x0-H<#RL!?*o2o06#L`e`F)hUhhZc$Ce z@^n}vSoL#$4=tDf2WlibDj1T7!zyN%l@lnT&Mz%7i7=|t!g-QaTwPTK-xAhs|4@w(84b^`tSFCWhM_{(Kr|cbb_)o#33ZiM zlvh@SOCzPwdQsKf>iP2h0ZxK-Z*IBCa#OQ|b9GK>i4;9d|92QexOxsV!EDJJ``3)B zFf<>k*IZjt20Z0}s+L*TFE#!G7Tq(799UF*JnXqRcxYA8{NSN+IXqMa!_{R{s;a6q zSal5iR>3!&@|_Ib#s^< zP2irN%fqisTF^nLUgjKBHR)ivY*t4XIHRtfZIi(pg`R)r`aUzl6q~kb4?n25bg|@E-RDYFx-V7o2)enYgmB@!78xV z#+m#ng$a9voq z#XMPiksV49@DP#0diGcs!n9NrsSbM%0l{XQWEdJM)Ijs-q<~EK93%`!NWzlCdKreZ zhK)qT!mOER*r6HC!9~~48T1tKTcerK7tb}YSWiiX z;mBHQjvb9ihaxirCH;Sn!*2@7(rAR-R?V$gxl80oB;mqEL2k$bB~~sG^vxqwToQeP zq3X5^`7NXq@_S@uu>8nMAw8LDjnO)d6jNHFNm3?;TMogh`K8F>QtnXX+F!;zn>EdS(`N=fKD7oK0SFEJ$ILE1W=_j+9e z`R5sQW;q}eX&_WqL@FexDT_Z+J}v3qCZy~)ET;C0TByV%S-QXh^C5?SBAgaVKkPiS zGMM)c9-AkFGHea>x3aAf#IG%?Dv8aK$&1O0)K$_$CW!w6#iNn<1p8P>Am8A^!t&BN zbIM5nS8(Ak>}0s2x(WpI6qVEnaP;$FmD=jA<~$) zZqJgxcE-}vm+|lB2P5+;X#1$5^0~nSWoO8cD$4j@TFy>D*5*Rigu<%oa+a*Qg^_uJ z%n(Abr?<=x!Uu8>c%#J?!2|YSvJ6&$yD)9Ng#wDQ+k#bAX~-TRiCSn$MBs|B?9vPe zLs|zAb`J04h2a@O*};XCI!8#B7kZKB^2Ek7)h1L`SPQQUL;laIh9p%qFlzk6GBv^U+mxhoa^siur>%_L{ng_$3r-RS4SwanAOLD|RhoIAs0uqJ9I zTpkPpM&S}3_UfoHNX$RJq_j#e(zg7}awl_HTvp9qm^}R~*q{^hD%jymiL#2hdMgl~ z2bNc%y%36$hw5@y=H=-K$vQy(Ap@Z~(ZBLjTtqS1U!hfy^+~H2JcrsVca`UtMI{HA zb&Pcl8l)8TB|mejLz)KY18mGr9#|bZMr3GOB-2g`1O;h42eJA3x#^>R26y1sw4r}! zT`My@dPgB!tob6!Le-8;Wgh57g_AG(E0Ze{f=Qt%l0`taV2sS<9f4X61<_%;HY0IM z56rXPhnnQk#g(!l6;=Y`#^76_K|zKcoLgFM?*g1W#&J9!%r`#_N1kfY7g5}Z|IRkR zupXnm;_cD36~`3S&DP2+9zioVEi0u^D%rNKij_1JGLOZ2buo_z8%-9F*Dp2FRe8|c z9caW3nJ6JnzJy>!5FkbAqfAQAffm|C&t_zGS(#X8egF!&w)py!;r+Gm5v6>j8{m+gZjT*_IxDm zEhpPWtylmWw|ep5+zO3MlI1qcFXR(z;Y!q0s#yPAjSUm_d6aDS&_8?pjw)H%_O3>jEs!M z!;UyYMYNb&kuO+HBjw zF8xtHL$xtKn5PZ37>(9{X6sr{h>pWgobPe>9&hGwY2S=@-FtrElpvX5&g*}3_3)8T zFS+!;an0DgT-&@bev=e#7Nq|D&i-Zb^ZJcG1>Pp-`ul6MviwUuvwx{4^)E-fu&Dnm zEBn2SJY=ygf2YaJ*S5`g3KoOriS9@{^Y$&hmJ?hqGE>j>*J)t(5$j6+RQL0#`{+LO zVGQ}(B?9e3Ekhn0-;Nf>bw}U%mQyTEShE)dCs@{qXIzxhE47sUt+%9!qwpZlr@Dx&4Ur<{#NQW^YRUd*O^d^Q$`nW1qTRW-m=p-0(|e#&~t%U%j^% z{_eOad)9zj<)7WbiFf{EbY#BOTc=$(byj+YTQ&iWcnqQV0CoVaz`+&GcKvdpKg&mW zQwW(n@F#r4^q~>B$|e z{@00de}83R4zua7BqIyYYvVHZyhd#=Sy!Ar_jfnkG)RZ=!8fL%e|y7sNJtI9)r+5Q zu7A?s-!AzF9f^)l{DWWomHyhJZ*g#4*^Wb|U$}Sl(!bK4bDzl-|H4O2(DI~+_~T2j z9vF0Y zXU7|k6~p8zXkb5+eMG2Ls;usHC=mA`S9ceCal!R=ERSFzxi9pKgAdKJI{0+&j_!K~HFkZei|!jI;~pP>+qX*S#3z<2>~f3&FTwNRu&V&(7_GKEOo&rro#w@)237cBbD< z_P)6L%!B^sH^sxXy)muMzm}8QKD?2u#9saK`A1#yGauLsrb2Meyo_ z{xLm7{t-X>>nO&BeG{BP)9)OqsOuM>r|!2Gzv>@J3pu)^MVWT72oi})_lY^O-AlK^ z+-t9}xi_?<(ALH059ZmB#`?lUJ)+~o9OLI<0nELnr#PsjX(w4GJLnFUtK1@O@Sj?HpC(aAAHJ31N-7!3Owt)5C z_M`oh=eECZblHWRDd-9MH}Bi7(1dUbOd3d{KJxqU9T{#4QjBn;hH6(yHD1H6iz6^4 z*}g?t@E^OAGHN?4Pv;}km2#8muh*(%AhA~X0EY>_GhTQLM55GwD4AuiY&hIU=8bvr z=4N}3mqVVJ-6?cEy;r>Dy&bbCopzv0`*csMHEi!}@!BhU2>n1y`&<47|CV0=ic?5` zCCUsff`HT;-+$gX-!>{H9)saGv}8s{|FU89=O;8+Gzqrb6?2QV6vAWe$HOW~X^?+``OSlt)<@0kdR>gX3(2GK_@ zvgW?l3=*WU#uoW*;&Ay;fx1a?u^_0~)6-3QVnF7MDvb{}yg#wM+zkFL8*kX0zhUjY(F>^PPPznc>Fa>hd=>K3}2g^AAS&boXAuRK^+6dV9?}j9xl8 zfcrpR>>sCYw#b^dD4iKW*l>$bfALnP>-2a3t{2pg-|^2i2Z+1EI|0LSAKrd%FchNg za+c_nn{YkL-qBl0b+b%S*{;8sJH>w!Y$Y8~FVr`CA#lMfed1!4j2I3t)5L8n?A|Xv zw%|(RSVBKX7SIuyh~`_e0EN1w4sjgvzkcKcq4;>D)0?%%O0@ygL8)Nd^2WVz;ZU6k z?!AlV$Eaa3IC6Xvk@isLo-x#{=+u$Sl!?uD~o?7(mzym5ZypZPuK-}bV<@`k7% zzJOlxZ#k!dhvBmkqRH8pE|}pz5kf9}2~vpwlYi$A7N^*uL~$`^)hI0P_~Lu{?EX`) zu)S|T5Z*OEE$_|A;-n2ikq?{#$Vd-*7qmXTMw<(0J-vP9P@ZgFfjvzqvMxUQ(bHm_ zi6=V&xxB+O4i3qG<-BssTYYDj2qyFqg%5iVOa{OT{cDzkCh7K)Mz76v>$2w)6Q=RkR zv*Fy9kLlpvCpJ0D_r5tE_g9m+cnx=Y4+eq5E$+TEd12zuVwBNUI+k|7Gquz7sl}@qee1N+ z*yS00iJ0^9Kl+gMW#EzB9fH(|eza?L_cLb-NE_aLhK#!7EprJ}S~3V!zefMz+I-6F z25kxF?C}vTX>gy3TI*+f+nf)99?N~s&efGZwxI~04{z($;>6XP;Aqqc>-`o)n!+po z?c&bWcT2zRm+uFDEx208cudX@f$z_@#%=e782{)(OK<#}^~QbSB2e^;0|S|f_YC)4 zh=%%aU$gLTw*!E*;l+3*kL}Iy;=Ax-@$>jEoUfn#Vn1{5yy_e;cfwTH1MPkskn^`6 zx*lNX;CH-&INrLB+q*D{gLPXI%eXGs?oxXRjEU^<1 zwV{tFCpd|2cltNt{Qbx7#l?&7{_*#}|DPBCc>DUlzQ6eUH^2Pn_rJWj_^+SJ{Nm-0 z?_R!p`H&?qyRH3^YP{K?lFAph*}S_Wnty+zpZ(+If4qCC{~HN>jX_#}$ft}Xr7^Gi zG|%UG{$A~-Nns7UwxnQhHUXxmwzU;Dn^*Q%Ex)#w4?5v4beO=+M(+fH*=%0>SGuZ@ zbw)pmz8dCfER$sFlhBVgjk;l~h-=0*;T~Pj^vCX;%w;kRbCZwRH2D!I^yoRpWafrg z`l8*&`~~WGTJCL69-?pCex9p7?~Ab+d{a$k4}n%g=WjNfa2VJt9UvOrZv)Uk5B1Cb za4y&W!q4sIg`GUCV&@Fv-c^_NMc0mP+fc7$|1nyo8(Z*wn&gR78j+RqBe1*IpmCb& z#(rpqdMvwUDBJy}GB+v9h+O8Gy3_=Wd(H}`k+e&vqMwo>?aR6HjpRH@p)Fpbbxyyh zg(+~$L>7pU-_(J&OOtd=>v^2}aBUrpqsNeLHbH|vTms7u_yIjucX()QSheOP?zzp- z_DMRoMU@mu9&V#9<^;Q)jbTn?r|BM3`l>F;IgZBsjlup@4bzk*&6HHtP-O@KlL2lAL=Te{Wz*E%T;&yMp!>gSyPx*%~qPPBrC0?J(10RPLi~(tJJr$nzK@iXj{3+N9C-6 z()2dXNIuOHc16voh0Esf?3VQFtt;` zB64F^HoL7ZN5E#YgT6g+KF6{g=RBF3x@>aZxk(?nLx6;p%!vl}+yKwn;z7IiAk zFU3_!HZzfFf`|}G&p*B$?ktVV(tObkfnKwF8XYz|aMi~Z<3Di-n|VyyDR0xXXpum!Z*DoWXG+Tk$ZGrJA*>B=Y--Pv~{JI@Osn-<4f+-R#lFqtFkdKi*TRi z@JUTlNyfYUM=t2Ha;mDN&C@dP+NfhW2^zJBmMQqJ{w(|64v-xJi1U*PF({vY7QU4r z+J4+@XvzK=IIylAB+W#pj#-Wkn+B&E*f0G}Y4p~i(rn8x3e5SXkc4zQPpV=}r>Rc+ zDs7@}+i6e}nb3KV<-e?QIhQfbXbtnvFwxrHOcXJF+AT@TMyT{;17&l)nrlQ?nG0M- zCoat0pyq6eZZ=*MG@*;;r*C%W1MOxUdv%eFc}p9i-888p(S4v62`YqEq(5r!o0qR% ze!Gm@N;`XsVq{91jB$F?S4}+^NtqNyKUDrH|5W9uae9I6g*mUAmhDva6X%`3d*y~A zEFHgdSV0(3n~efFr*^BuVQOIf5!NMTQIAE#S=pAMecJ?3R4xjO3a>!u4`li~OqFzRvrR%^n`BjAmGC+ya1` zjod1m%|lxKe)74Lr5Qa{k$25lmsQ=T4T`1fReD;GmnO&Q*O1R_l3^ONF6XIskF#hc zm5bVC=}}CU9<9x)p`FvBsZpUu*F^1Pg5S7Qf7@_m%e%1IaAI3{3%PMPYe=8XCMfYz zrrzG)={XxSn)#L+W^I{v6BYB?6lKTXuy97i<&ic?#lfObe0{S4dSt^!l-|0YPaG;m zolW`F`<9kdXnB#=!P0bFjsB#G+_*T~NNS)VgiSTh!<=?~h6duspow)a>x6lXB?fRR zFAMB&5ZsQ9e;kaM*Rl+_ee1zeX3b3Pj8yODF7Fa_a(DB>DX=ep`Qezwc2v8ov53ZI zo-*{{d}&8hSUC`9S~}$B()G$|DhvRNE=}N?8RojlR@dfifcZp4<8Hd(Pikz9BNh9 z$Jd_Px!!Ibn>x>>yt5(7aAE00shzenqBA&_4h7XwF;Z4znU)#4ktW7>tEsb$R-n4x==EaP^#g?&~ zAC9HUomnYRXSJ|MFn0h3Z<0cam}!b_z1C~}l#6vc8{D&Hs99N_^!1cIX{w4Onku&uY~&9oqH-}M zdN(xX)b@E@Oi7-z*lg&ac#E{3eYxv`4Jf$Eml)OaCrRJf>y7*3Fh5RX*2*J!=e6Ao zZ%jS2{_|;KdHRuyJ(5_MxFIh--CT}O+yShTyeTl%rDP_nrLx$B_&=5WcHAZ;T1P6N z7Twe!2}{iMs%WO(k6cnmBX_V$7HrNk--q3H!@bfl0-{IzK%Ud1szy5|NVufQGW4&| zACr&sw)g=UfsL(Ao_gPaYQgJO4Ly?C_ug%pBhF4TDgNbmaP01;oe6C_ox5^qaW;f@ z?3`zADu;4wELW3gMWJ{Q7oiCglrHLGNa`$HRL4HvAV=PSiNc33C;6EnJ1Xn?ZXD`< zz|m8c_28fIuhRRPw4X3YXX&n4xOw4BB|-8Jr~R}h+%@@tSgWQQCBF9$;txLaL*AsB zhmK7=^vnRaRf8V~*07{V$8d?0IXkaR?NNa^3_hnpYmJk*X(*{`JSR2kb5cy*{xZRL zVqudMKMqTCNpw*U@QD&lz}Cmnhci49$;{SrWTvT|nOG7)Qd@;IjmL`y3VPlU0T`>i z?Lq_IujY>-#50Qup>2N;hxF*OXj5bgLn)J>2<_U!f8;zanmosVtK@i;=h2?%{Mni2 zt;54;?LK;TJ|?{NeK<)uR3B|G?4j>REE;5MqqyzF8%B3-vv#Uw_*VH`M{8=aEerWA z(`4tjY=~$Xs_9W*R)wijW*sL>U10_6&Aoytm*CUNI&1a91?^@KF|;c$lSReti4W2PZVlHEiPnIG$iY>`UPw_Rg>841EFmg`i#QA!#luRxlHP9NJ&yc>T z8x?+KJaG);T$gjp=FaB4Z{t=($N z75b_V{Kw16;Dr{`TceWu5udcpGYWpGjTVQQ^-Tbh)CiOuE* z{?+o@-StQuE-c8+W_OX9+RKGnI{~MJ=3I@KawySb5f24BAAoF_JGW_duSNBRtWH9dI491+$XKLTGB4k~<2oWoHf-k=%dFk!`qk(; zA1({Ofq0LUDl;EDUA8@*y}!D4QyR^U zX?#Bq_niaWtv0Mpp8X)!Oti*JV-aKU%Cf^NoU&-fWa#2abb6E%Dz&o-9+Oz!`@9n$ z`$Ef0D&TcUD(~ISk}hwCCWSsd?N>c8$8Y5{jP@H-H2y&h2p7C#d|W`YN{-e-n3G0_ zU|-K=-Nw&ya-R~10r#nEi=klq%-N9DD95|GB5slD_|g#M1^KHYxD)!nS3{ zVz2Zm0sSH^`mw7sf8{Y%Rcf}m=3MURQd|xBBW#anC80$+k=HynV1s5#~Twjv5DUJDg8Qr8XPVfNU;# zL(}!pR9V(`G)xbC(@xY1=;ilnntH21zeo8a%-6xK;IH>1Vi^_h#h2Uy_7 z&o(c+C5KY3T?m~pcu~Vi^(DuXD@y_hEz2hda=lz>!os^~u;7I)OL0D9rdcjKmoXAK z8VO~c#=a#Av0HkTTU1%`y=9eZqc5i9g}U7?$J?W0-gm`Vp)U|#0~#9N#TIy)yL)`+ zQrlWXn<=l04h|qQiw^v6Q4whND$vRLz-|8C;b_<$X%b;S%=3Y11rkG7EKR&iwk>I%KJAzRMLW;#erQC zR75UEBby`MO9{KJH>CFjpB)9bZA8wX6Csv)-e;Qu2IqhUq5}|kE=B@Vt6R7^e;glW zY|O@`Kyyi!actmN0p`K!;d&f9sCDXqryv0e(4jG<%eVL2bbUAr?)=`1N0h`8IzX{_ zMrSPKcu0^AOs*((l`6`@Ilvlq26&EpU5L3_}ej4sNfai+27S2=msWT zhlzq>mS=J!gPFw7v0QcDY@*)N*ZJe0?0VO*?=T!+8wUK(f7*sD9dinF6x0_Wtj<~_ z?9|pB$qN(zE<^QvDLn)A%PR0H;0oHo4|(jr5@Jb61Q8-U)&B2W4kqRhkp^DFH!3Mz zNZCtqwCt1Q^F)2oa$aPpA7#t(^NZg(r{w)#ofi^hw$zW}P^$tLM+fd~&aj_CQ`#W0 z5k~~hxr>dKLStIu-)x8wm3f)1E~D?93_HHdZCV=r%8q4)%gF>Nz|2u}uuJwXkJb6T zoHVy>O&t6vg5vLgzg=xpFVMU`PXVuqqXH)Z!l;X%?5OkJ>r+br%O~@of0T4J2cm|@ zAr>n z8C%1Yy(jx1{&_^%I(p0(U0L>|3{72`6{Ek+`Jw*zB04FS5+gdBq)n%x!yla1=<4pV zo5(Ay5XCC<)f}&EW-?#R8*3)+uO zHbF6JUV9BG%>=8&t7F7Rxs_I6Hn(rd`fdc}Zq*#*-(& zq=vbp`YN95aIu+IcmOMoY$exao^$R>l%8pZ7h@s#Of$&m7gvV|(i)hrC+bPk+tkEQ ze^M$eIS>^}HVDP8FQ$x)N;h)l9v*}>wu|J)g5uQT<4H%7VFBIM6S>$G0LgOqD#pUD&waM4!o05_;O@u@YfP(EijLxWg$nv zqUu+U_orRRh3J0IaYkP|M+pzfEJW2?c8&x6#ZV`l16$;n#4^NLmp%!t~;@u<=AfjfzI z>07#UC%M#s8XqR=PlW`o`^>kpgmsn|$I_HcbtT&|Dlo}&;~VIjngf);966q@TZ_J1 zD{&V|8IZJ$KXeJ?yNx7PhF_l-|6hX=&jDZ+fUs*|*hRRFGuky)M}?Ln0SYHIAx$ts)AgYGmeX2>XWe4&Q3J)OCAk3ODL@g6u4{aO5Ie6%l zwaEe&T#ra+PKGZDLg5io=bm-#{vieVP_KS1fQ$JhLZU653vqfBBRoSWgwr^H|J+T< zf^-e%QL*N`=20p#eu#$wA0Nr=FOFPWh`Ff=41#j_If{P=bZZFn4`~51lwfCk{RsuK z!Iee}#w!3S5KI*4_)h#1{@%9bp5$)=4QfDI&tZ!TQf2LUrWWP8C)IB3Cz54+yXPea z=^zm{*&A@r%>jDyWjJaVpkWYmIR1s`?8)TpaZ&Cj;sB+bQlJ$ zc}=Ob(#HnOB2DR0C5ikAK=A;PaZs@5UB8@M#F?39an;EziONncy3GP7Ei;0NBcZht z_66|%rfy2^XY)2IoW?AAvo)g_kJ?c}ouCLx0GY;p+=sJA_@WwhIcb*&E`kLaa zG-DS(+Dfs>ez-QBmWD~-Y^Gu&b)W^7vbrK}m_3EVqL@3L90+ebZ@Wm@g66YL9jNUd zT@yIN`w~wP;I5A3O4qj6`eQ%ouZPmw^pt%_3Lo-dDd!c089j!7(}6Iz<#B%7f(`#m z9g|LEFS<|o%QiSaYOyZGQEp1kJHIN>i*MxXQ zjyy+o03_jCw+%`>!Y0jQh}?wXG|W=MC{<4~brE;QL*@3EIo!!;=e1!-JXFrR+)o2f z4$*Qe42m3~_(A5fYQ|>OjVLA@R=PXB(CDZ?dwx95f6H9d=s{RSa;4`p@p`vjouc>$ zc0tl+Gba}#3cAU+njQji7gC(Uk>ZGgnld#OBo{4Loh9UXlVX|2TmLa*N#3@C7*Nsx z=w4sSoG($*G%>Z%NOXOmlmQv>OQmfN;tuP5T-_Jv=f1h&{h>#)A_$sss0|sIRaSc3 z{dM>Z$R}yjh$6sWnuDGDLb~eG*(Ic#qaHjut7DQN*ecj`k|J9-3NkUx-Z;jSH_{B1 z-vSVWM{j3ROJ;D7q}Jz90z_RokhZODOO-Ewv@>~Kl^Gc@Y%-7makGCwLwfYCBu)$b zk_+HO)G>OPQ(lPJC6u?Bz@i|xJJ4zI)r*x+Tmulf)gdCdsX#S(n!pR7)gX}$&BDQEK=g=vKiA=rMWv(^K>r!Opa-q zjuPdY;9DZSW9~5BeMg@kNWzky(h|LG604MNC-y4HO|$dX;EJ%ki^xVh^w^|@IT{yk zSGt?AjT>-cUE22JavSHX^oNp9FlIXvM|k_3Jj1-KangxYZfa|Eg59D&wN7>$rhPvK_(oFisuAmwq{jghEZU`Riyfr_j3s)S_XyZbd{Y=fzJ+QfM7%6< zMXL@slmGe~5#kEZpuK7IC+y4~4kdX5OZc|BJhUFO;@DOU3?yJ5m-@4ZH?p7Zn-_>S zNdSzcnpF8Lg{mrx$03|c-UqdK{GDjACN0)X;cdI)aqK98dtrXCQ=zniGtkC)711?s zt}8T%*X{Csp8Z}VC!S$n0CeD+r>@47o5|}j{})6yt1a$l+UEZ+℞WCOs@tPZL=T~-#p$S>5*fOL5)}#>n zZs-Ii>%td!0Iu&}K{sQ}+}yqdipXiku?-Fz{cpFRx%i}-nK}H~0&2|QYy~}0Kt^b} zZ@X3=MXCkATTXyVm|Aqjb|ihynpi0wfn%r%+^sqQfgJM`2~?^A)j~!^!DWB(iXg&H zWDb78e~2DzDV%=eI3`c6nFG2x@c@xs))b7WNG#l%jL^hiqh&Ns%V1B(ng*6bI}l47 z2E1ZS=#X=e`V?40?BnSj)R>-40i8mXZ&UWF*8EzMp^C zZ!}?W3D z{`*)_XA!C<1AZkxy6K@erF>1@;QOqU39%K8|9(}QNACm9Oug{NEy(0Qr%u$#I&8mR+3UzyreqP!Q`94qvM}?}J+K@jcvX zTF`Z=*dsQgnaH>A<+0o){84$zKbqN7>GiY+u#&w-s15h+j8D#H1$z1jQ0FZt>{i7u zjib%zq~qsz`se}K``*VMUQkh<@N4bd)G=U!=h(eDv#P@NW# zA%ZZ4_hnIVOa>NWhAzYjot6vWLJ%Bseo^1gazWQ*R^nztcfyvc;;u-ATu7H%?eq_L z$|mY^pnv*)p&|g;A?$^BY(RZm`W5zCZMh7S*sX0*z99Tf z(=u@XiSajkU|&6lL<&t7^DymT=-Ypueb=XF`&lu*@6>aGLHL!)av~~A8rkmYmT)eQ znU+Eszu8F>+Y2|>S2|~jlVxPhK%ULN_wz%PT5W z3yJ?v}#&@OZ4*Pb2j*+G$D%&f=}~ zZMf6)=pJ&b`M?arg^#5|xq~bx#XlM|2k=i8>=@e`l+4w`NNLCiD%)LZw-I0hS}8v% z__uKNp4d*k++G!QvsKlQTtESWYJ#oU-`Oh|@CqI7$CZ!b2WnjWe7m)!kXaR{T{dnF zdW%fX3Rs}R+tK*0f-gr2W8r+|7{Zl7RS6>N?%GppLFqDIX?C>QHy0leUkn9DMxGUU z2K8|Z;=tY1XA8gl_RW&q^X_m^Y+B#k&<-#uB%+>>7F$7P@TK$;H}m9MG+);#s#$7} z{J$BnR-HyY+H-={F5L#7k?4gO4^($Z`$uJ5Ko;i5!>M5GmfD{!&D(I0B$n}Kh1s|o zr46+Ns7C_SFkJ1dfb%@ca#~GypC&{9F7%r-SOT;ya-;BZ#j7(0NdV)G9iPLf5qO2hHQ(?lCP*yASZ2ayNof1DoLHfe(6@~6ulXxlb5hEx}RV@@y)*<4!6 zRXwx>&?@Td)JVML#wMW(K{8vb%euV>^g|jY-cF)m#U!Gd@OwAa?2Xbquq&)Uk-`sO z*TCjs3MS%ZH#l$RJ{`qL9>kW~&ZK)W+Vl=0AlReetr_wjVm&`C&kxddkgDQafP`^` zSt4}$OpcWa3ZElttR3BzQ&zOKilV!c-Qg>8!oNj^)B{zwKioWAjjHD;6*tsp;W5fd zBx!H~k%6nQV|0W?3HzR0<8@U8k3acjTt;dUt{pg4{aCw2Xx`WZO~U$ZqJJIiDn&mh zdN8WNLpn!nA0(Jyvep$}?aL`6>vSd6hd8*)+Us)MQxuMGtffJg$}qwy0~gco*$+V- zE}*Us&{Gg%gger##J^35H@fgtP;y1^G52GRkXCFGYr$VGiJ+8RbHN3&1{0%2h})g2Ryz0I+Ho4W;QJr?v_x?3MCl!^oj@Rr)+7&b9x<9h)(-MssxBs z3l^Hf0ze(y2m}gtH`sQuSI~{6K*qfek$)en=z{mg6HX8ncD1U&5{-w4^%SvnIZnt2 zDD74Tg1B1n$Pm*RlVWxG`Gp+o%TPc;mI(44KL-^tb}Q4xC|#MdtlY0!ynm_^+QCf$ z3kwGvg=JhbK5^VHNw>lr*!v$m%2`|eP#;eV>QRuxD~%)Ez*dqo6YYu9N6AQroY+G$ zwgCPiBZwY%*@!x=J#w!e6Z|AV4?s#Z)oOZ{{C!_8Z*RxO`TL}guzF;}@5(KOEvrv0 zZ{1~=jNRCB;P%+16qN|0=nP7?IvK=JW74IW`cmJAlKW(uDa-{K+7bmq`E={$PcSEz zv#A_r0_o7&W>XXHchvpyT5^*K+tCTEpdKfO6}6RcOx+N72c+bm=#&HUDP)=u@8T1J zd2s|j92z{SeyM0qBOWKu@+Intg1jr({7QgUZh*@_6k&PPLkJ8HIytI*Qh;%HPuu?f zd`WXj(`EOkiODoOqjkz?Rq#(Ws?yEi`fPhV5Zpz)AQ{2Pm?ea?K2;h(Wu=wX#ge7_ z?mRxyl1!B|rloq(Q?YIAEW*~P{2~Jf-5y}VxEm`jp5}@g-ReI*C#!~pdbr6FM=s6BDf&u6I-&}W} zF5gqJJ@c@bMTGnF>U1i}pX?6!?h7-A>qE8=aY{!-wS z1xx`*MGgyCB+#D10*ou4_^vt*X+U1xmmAN&vJ#?h0q#-55UQfADA)|LWX9UJF1`9W zE?EK$q?>?n>B<~{qgw-NWI5k=A&`)rAwqVHBp8bF3Y*$pQ#nw$>C_5vnT&$lLD-JN z!*=y8BUx>49*C(hW;yC+YAlBx>>0js@4|W_N7Ub5JCdmO^Cb~av55 z5kiRpTkLvJj2?lb!6%c{^@512}Am}2y7tdza;KuT;1P|}C zfvxsLL?L8j0@ElseM6JB9Z&f+vA6%i{5i>{pW#qasEQ;{oxLu&zRH!s9B=SdfF>F+ z=lf`UPuYu6bp@EYFj0vuVoH(iwAvC!+*{OA&q-=0(<_0WFuvDcg#iLe$9V{)8AS(h zO1cia1NW@^w1SVs=N92I;(41%;X}e`yY(1bfVd;9u9fPN5$Xt&AaZL(1D9&$8~=$7Jre^Fw99LtWLG4mf`mG zBlQ(|J89yOaMF}$w?GZUN6~_eQN0Y`;Uq?~9{2{`mClNWlj4?E#z6(d1fzI&qJ?ERq#F-lc0Wi2RcTqku5oBM=$yB39O0uqJbNex zL~cpXb=_G%uS2k$eBOP)v?7ktpC6V0Apl|!u2IOti0S!302HvgP_xkg{e=}<{M>AD~zlJdx?krghP-rvGj z&66M)hv|SBE|5;7&piqbVPo66%ek?WM`EML^Hw=E&Bf=jE^dCftk%XHe5=aB z3bm`=Twy1EpiKN}Kg6CHC@^F}#tMFEYPI>^c^ZD(sDT58IESJk-{7g(Zco@{u5Sm< zWWv8KC8aIJrbn9X22c`$JZ?C!EegCREENT|FKra8f&=a*?NVs)iNy9$KsSH{LyOOs z6Qpxf_;~K%OapWi+R=oFGB!gM^%JOmZr1u71z6?~dqIA&HvR1HTNs z3Lsp7h3y{yybN9wcJb76-sN*cEi)=Mvz}Z-UkwfQwEv-!DV*9AHlorm*yoh;c-Bkr zt9gC64A+rL@4PXB*t>^@G<-`C%lJ$$dl$`xVN=7_9%eDHA zX&{L%bj5uiU2Lf6&@{n8K!F(2q@u;f)83Vi0+M1L)YVvylCh#buSokin?~w(*#d1{ zn7|zaZeQ)_jXZTHaXiQ2DIgrI+C0wdm#<#_WB-x-St5#4Jk$E4Uo4!bSQrD=Iwg-%qKDv3I1D5N`la0$NbQlCc_?uN3!4eUfiVV80ygB)8eH zX-zF|Mqgw&XTmA>j>v&_kCl^B7Ky5K@KBLP4hqK!gy)|VgnUPWEyNNgBAJbAXC27i zpSX#&EIG(Ld>>xAY1>PF#UFS{4GNYxrzi zWn;J|LU!jdpP1Q12E4z&`=uK%fB)NbMW%-BnuQJ6`ASQw_(DAQ;`bDGgYXBk@olbgRBY*IFD2v>S~ZFN4R@w+!+Cf877It z*nRfk?x`#>cI9&h2<-c1mzt8~3R$Gd9!~Iydq+N_U^=)<4%|%Inl1*-_6!>h*E6mm z;=&ZUf>7A4O0OJKm#%-QLZvGDbl{X)Pu5^uryNJ*2U_BaZ5yEZ;`p#qRXXP2M4l!o0SraYXkKVjU0 zMK~ULak|98s)8UH^dd&i1X>HQhc#QpLB|i>mZCgckzl{Qyv>SV6aYQ~T0W|*fYxg} zNHz(=%t>h8t*fs*QD9eW3G@?;00`HHaWG}?Bx9?51-QF*Y^`W}4N1zt1*jqd-C;Cg zbjvcRBu?N~od|NndPyE>xRtYjj{?kX2y6kZp@tSvvCL?IcQYI?RE;3T2ci{s0$wzbbTZ8;h_Ei%YR! zTEL?R4;!I1WOV_8bT@`i68vU$dkh9RPTZYj3gVRGJc*j3M+>+*E#7^;`L+A9V63ZN zS-VEseSP17#G_Z@>mO7|3!Qq7oDx+)SWceb>{Kk9}WN0k({RW>p#Z8+1$KZ#tB0?&9-`idTMx!N|r| zN=k;?AO1$0-IExH;+ojq(=pBMRi~UcSIfSbL6`TK9b#T3mt(h%PMLn8+6M)ryADEW zh?`aSD7w-T?fi)g=Mlm>gSSNg6XZVlEE%eQYdU)~q73ur{otX{( z{WmF$`0^@pze#9>kRkM;jLk`-IQnPzBlKvmL#5!yF$93Vt8$=##0<4TXxE?jhwRC| zkX(8sWeRhd8oUjelruVQSSRkVXV-xT(6My9PTlY*6{nf`naO9T zG7q(BfQo|{cNZdrqlDLkZTkFW5eFivd~9LK?-iAN9s6jOvQj({z*um5_|~cnIpX{E z70K_ZsLFtSgAhxB+{U|#3A0d;JFkv~M!qwPGS=D_G_coW6ao^`j+$}+WLC{{a@Ky+ zhQB-)<=Fs2$Y$rrTwM^rZhKIIbo<*S*|e64W7m%pY1s|_af-^sH;kQlPYC^%cS2}9 zF}6a<(i{+kY);bj|A@fO^r+JWjm!{|@^$)v?)lshE}^UWo@m8*d++>0^%4AbP1} zC~{z_ST6-wcM$J3ai;v>dHPUDbkt-M=?%Z0@aUH0WWnhKQHTF^>4K{!Y1e!O2-L$_ zKDvGeJcE?iBL+7#;HY8=vbV)Ap`)n3n+E+&6LTxTdN#|J2a}tP>{-tDnJN}>BVG)h zET{lD7R*W}0uSi7{iQ3L2CZ_lxw_eIzic)F*&3z8Q*9bCy@1-l)eMPdXx?jnU(bz- z3IpjpWsPR)0s#)$sX=mg#2iD#H&nT;Zif5mUK%f>1goi%WqK4Te<33lt@?k9sBn#( zS05Min}P;p7UwF4kN}g79)`(t7^6Le2}DD9o|M@>!Y+Mqi6x%Fqyq8V{RQj&{dA3w z?rKMQMdr0KA9OMk|J=W$T}KU|aCwxBM#&%5Gg-J8G^8Xn5b9`T)+-Cq2|y=DmYuP3 zTN_x$xvecf@Of2mv>6GHQCYG8$w4@N)&FSEI9)dL4j8mq#ke>~#P~}iP`|;3sf7JT zkuKM7oD#MatmD*g2^E}|qVD4FdQ0_|hf~2p9BiK`M(tumI;ft|l>8+6KU9CEzzRVs zG4srt((h&v+neKx3Y_6zrlPdbny4Xoj0`NrhW*S-=k^LAVU9 z7K(Bh$fy{UlNA*$KW=uEZ3|2^SURX%Q0A%S;x5shvb%ep!O$o`zNrsUcVmH1IsT1y zX#OzXwu@6Tt^b>pYC%vbiX&s^6Le^V0ZAjq6+!|YIXclzTn^Fg&E@vyx*%TgzI^}C z-6>w$PGsMp&p{q3kHM~Ai<;_;vOgmsj*yCyn{@I>x>E`4<@BjloE0|O#&La-n^#iDIylv1$pH{6_ zwvJLRt~*_hqlJ8#62u9aUF*wP&-<4zrIQDOl7h&4Bs95&l*$424eStI+KuAsSnRgL z<>jMw`P`X*;7QDoJ4*I!sHZSfs43cXXuLRp58y<$x^OL8snl=o43^_Xixp2*YWikl z8S0Wc{^v1>$JMP0vPORyEoeLewNo5}aJVW)IqB`}vv5nx-o&Bl|K3gVAMt*={}G(b z^>@@TKU8+i^{l7BAkz;d-t?Axf+fcJ4K@{@AypXs*hU4aL|h`$GTZ~-hL=Cwbsvvt z&Tf47LUZs5VGTf*L2X|E>Fx$@mFA2{TJ6J{$Xx{B=UjETFo(kjRZm8#JoSwB;gl>#Q%F9Q0=9pZ=4mFKig_w?qS26J6Q(D+i*hfq&u-5;hwv=6`n}DW;w5qt-!+p-QV0ErgVn!%I`YSZ;7x99hAO>o;}~Q zjRwo!YN?u@-MB;mBV|;9Dv0cs7Oa)UuY!&61WZW{AB>< ziU6MAksS~;-;P9HrD6@7xlnUtS!+k2WY5Mg~bMSzSR*OI(o^T7*_kJA<8evPbYnGZaLC&_m># z$fw$O#`_b#vi!WPhw1$UTa;x7ag&15v?T8U_R63|^*7PrE&4Ed>1m>kGyRTFToy9q zNaVWWKgR`(@Qk)@>;XK4ffha^tE5~or6OR5#5+~`>(AE={@9@;_;gRfeNK3oo?=tS zBm@aAdwkZIL_!_-p7^k~Q+d$`mmIt|igvudzCYn1-xu{>A4X0Az=n~S+*ZnOxzUOP z&1c<0roZVIW(MnQD6P;d)4*sH|35F&aR_6!T7}yXS(M#oh*hP zyEBhudK3Zo69cS!+&V|&Oy}MR!w#9`4O6pZ-almh%by?aZ#_Esz{v0Q_ZOyNU5XLtI|Y$zg;_vBv?7h1k?N)eCJ+iM(SoG z)$t1`#^3lGuS%?#bURj9L9VVNR+rBN#q=q2>-3jw42vJMIb@?m))r?xK zt|kRXb{3CaQq~MqCQ4W`*66Lf3#BGj<$;K|Y4P=CB1gx6$nUp1!#H>t1^urz2+Iis zf<(!nO*^>9lNtGZCI<6P3P#2|#4ib~*5mYau1%V{TpP>lcvMc3w+0<*mnBI9&cL^R z8m$QX!H+FQt%hy0rl9l+#|g1j$NANSO$1WujWI~YffLtJ+duTj=;O5IKVh%#k?2K7FJ zc?8U@Rvh+X^x&)7nl5Y0Q$jBe#uKX3`K+zOY%Rdq*!;k=sl%yEsok1Ch1^jRx=-35 zu@m|c8EVuA4Hq9-evh)(Yhx(*1IS!x9e}vLBTnWV1?rjB=!xLJyZog6m1F8BU%CYSM~y3*V-vQgOS}+dkhY0&`*#j!GP| zpa_(a@kqi0C`jL1YwaY#MY6rUy1Xa+WMsm4@H&EZFp$7~54pcRuUQ)hVXk6}{lko< z93n_!c#o+{o%l-@4+3h!d+gFuO!wQ0;!w@+c|&OIf-qmk)$p?7p3a+r!!3Ez)p&O< zKPj}d_%INKsG@BS{3C6t7QS@)pu{wz;LEqWjKmc1sxv`}?udgoW zNtn3{xxlf%#!2}#L`74WLr5qBb`x6rGcvQ{Iu-+KlNw*R{-Hm`m0^z%-!uwO-ymhl zhd&gm&rzCd{1}|T2^JfU>pNE=M&?6Fe5DbS(_N zYx`uhwQ?vvFZ&n$#mmOi#A6X(k4vzA_l4ti#}sC7>69tfsk;gKAwWS{dQ{Sc5?DSB zh;m&IzXC@&O-KdM{xdRd4DBp7{qo|7Z&r9lF>8{1_+XW>E75y26qBPIER4KY_T*el#pv zzFvh{J4vO=a3BHRY&c9HnJ!2n^5gB1_-7WMd3}R?cdT?;WCv>6Q$*Mb8`%vt$p(2f z%%bAjf6kDvBIYkv30f0GM|u3KQ~G#A>m-W7!GzP% zI!FG*w@g3>{ZUVTTTYQSSY+M(q~;UDCOVQ93r^+j{g*33*VMFB%@HnD$y}moJvle< zmitQ=bw6PD^;f{&yksjAQ@FU9eafW5dHTlidH^pS;umz-kWsT#eyOhCZ#COvo^jA0 zA64LqF7A}uOy>amlXHjzuK=tOn(->08%G$DHXEq`uNAvVUOt{KQ%~ubbr>mB^Tp@v z#%g(B53pR+lO^S0XKJ|oYCQG~I7TEn%44@`hU4n-qyVDOP!_ZlNv_BWT3ycwkl_St z*47iNjY@PvA{srU229OD|b4!ODTbj{2S%}v;R0$QpNXels*jRMHGO6CMYeK!> zG?7*3(qdb^v}g}=GLGaHlWjz<7o+H#`HQj{DvpE#<(wKpWas*OpVT-llMNs8*HPCV zRW>EF7KQUwfU%ucUW42UjI*`j;(wEON|eob+X_;x6RIY~)4>8N4$(jR4yPOZZ;}nL zEtu|0lPN6cKyoXk`mLHg?=WxgZf~}is(|*yj2I!aOL7w?ax~CX;=Z3k=PX4GA9XiF zJKxq2Vz-bgQUTC6?$TwH>b<|qV@DajE{%nEi(?NH#KiI`Qs7&@rB$ix12yQOdAb%v za!OxS4K#yLmHF0BkheJFG|f~JN2lp$A%dIu-BNaf3O^JWO)#rKSchhve8TMVR_>kv zb#h@b(e^D|OR4up8&H}aSSNn`RAKCB>dvL+cv{*7YzZ|F1V99p?l1nsil6h{6g@5s z_$S!mkg12^Je!MW$zh*A5F`WcNut=Vdg+AWtCxQub2h~3CTc_wjG#C{4OlE5E7{u% z7l6|g_Jp)4&i}ZDo#Xr89sV@Pb2>E5Ss-KWp z_^3o8$suh?^ykn)ql;UAK5lILpc=IVpHpB=1Wg9QUcSY@C?7cnAraXFgoG~%`~XDV ze%zjK6H#2JrJOo!Gn5X2_sf>?pX%n{ommWLI+O2FlpGcbRsO)lF>~%8wc0!8GbGRvX#3emrrXrK%Qwjwe zjoEoM(Q6Qdq5y_=kd4p{y?5FYn4_}rO47sz$k%gURpIZ&$1BH%x7XbHUft? zM3zvGf|ZKVnby85=Q%I_R6YBNCTB)af)8=1<;Q(ZGzu0UKN#r?a6GxD&6YDsyQGRNszP;| zV3P9YI5C$rlI4=eO4w6eikLRUGZdK5Lm#wQ&lF90RAnIo09y=_%MQ@^!7Nx4pb_K_ zk|c@NJS7~0`#&pA#dP+0aIomL+L?IrQOL+cc@B-)xx??hTxx#aB40^-D|~@nsvHn& zC)J8N^<}>50jkr&h+X|arXcJjR;}%ZSKN=Z@nLM0rImow9`+~CyXX#64br58|DHB5 z>1hVU52q|)zZCiqQu|F<{4eG7FS;rH%9Wd?JVK5PipNHecPhfwQMsE&x=~KdIajyX=Bj_jqL|!~49$c?IC$G0}9T4-^sr&5= zG{f{}g%l6-KLMW&BzLo7aa`}<0C5qP->8>7# zQmfCC`VP2ThoPsE5j^kx>5c_;H~ldEesS#!Dl1&i%&{2j2}XAKMr|Rk55@hU;75Xj zM?~wk+mNzs{4GyTS%NE;FhLT0HEBiz8rdB*4gY1%>#$oX$i>YOUhqRRLDXVzGtk(9JKq1bfzCM)OzQMaIHaqTYA|K&w#6eKP_ z!z8oU;9VnQ1Ok*CWj`_ec%xxK+Ua1zMDcQj@cc2(XxsKZZu;PSOs z6?-7#8G%`sHMvaKRnc>~{Z+B-hYxpY;r>$B0@R=}t~H8LLOs!e3WY_~UFki@$bx;} z{(`#on!0-J=(aVt$_(_$;5n%ygwd!`27Dy6>oF-#!W^`1qvCI^TOTn-- zFlGIkst+LI!4B?#lo#Uz?jE8+3`LuQ3x@>(qLpEy==g30Kgm}>0*P|Svdxhm>Yg)~C*zRafA227V6T%=6VbGQ|Lg^~oGw&z%UEs5e}ixcdXyU0Js ziC9m~q7OVNm=-B#HkCcdsPdO-7Gi4GG<78Vmd}_w!GW?4=@MxHnd*qHhTU>ks{Ilr zX`#)~-;h83+56i$GQhx6M}dG6)ui0i*%COw{b)`@|v`O*3rQ4^# z!;d4ej`;DwOFE5^JDw)Af85JgCZZ2x4K>YJVR7$P;VMJom=+K4GQ-*}dg!?FaA|Da zMO+HMbf2HY<1vCyh8_Vf!jdw)t6qfzdQZ=AgJCD>&%-?>0pk(T%E7+$jRcu7lWUr>|4Q)G@Y76QcW5B1S9!ljjDd(@Hz z#7f2rDPQoE$gZgk`>UPh)GXuXD;Tuh~`c^DMtPhLavE4h&U~L9?K?LcGzX zNoOCsFTMPpV)4q7zv~^v;CZ9bH!m0XzAY6;C#31+{e?sotCt8p-ex?%@O?p>6F0lW z)Qh94)6tl^XJzvK@Dwr$NRKIXQ;;I(8<(8L!E(sRLvNsy0p&{dQV4)3j_rE0sxn~O zt()?X2Te5zt!+mo;} z5s(@xtZd(&*g{ykEd>;AFj68=lxAM>h3(DE^2nh8!!JvNRzj1?TGaa@ev% zZspzNAP|ut^-L({5Pt1kEob4{DVoAGZjJsEm6evDnkp~}34@Wa0f1|_RL;=l?ogR- z4^Qa8c({nf!(1|0D!ya$dI7`!kO;C4+DWQtl}9q80SXR9nOTD ziZlF(FNn6K4Z7t-y{-61UIQ$=L*+?ih7JeorFV_1fkG9a%b>?0DbG6KMs^oY^tR4o z?=QPRb^yTGo1Z^pciYSd_>tE^XUGA)S)`Dp?T5rMRWZvqJRCa@IZ!HrfE>>F;Y!<1 zrD+YwOf*P-j#vlCNX`LL9&R{47SE4CrquKssL=r@JG7d>f{RY8=QpKNezzBp3 z_b~}+kWJy>bi?Jv?-6&FogyAi{mZFRN)D`(=F|#98-e%*Vl>~hC#dk7c%S2NN&UCw zb-44+xSs*!K$HrQ9z+ea&h9~ccJIE(SRzw9-q*u>9TiMOrF3S1)R>S={w^!S+*DG? z*V$M|&eyl!@b^^X2LzHm(6fOYZ5(Jc{e57&k zRC@?iJXSq*;u36X5Z>-;ZGLp=l0TO>jSIGzgi12%8)Dl-=9R$78sAI0*Pik1aF=V% z%lZ58lqo5TWT^^ojc+GCjQFGpm7;(00Trtr?*K(Sg)1)jsI^HBW=aNn4+;e;V1K7o zNlEPyWSUa4wx2Km^)F#t(fo&}9^WJ_LwZ2kG^rEBKHZocd6tk`3@FMnP4CH}c(nWA zyTB#))R37dWa1kS3gR&cr^y}@wd2t+=Y46Qm*k-VOI}iG)Z6K>FD76M^3J@%CN{%{X_Y+p!>^ zorK%ejh`3x=S=^1|+Mp_*P= zJ>jkN$n@N>=<tA4X_BP{^Uqtl?DYQ$aId>H$s zN)c>wV2%ceB84vVH*|uQJNamPVDDHI9^VxgaP~Pd>p&qFOT-+}foxt*ha)AItVOK~ zD1(Ig0b@!+;{yY=K7cF8}mU>zg@=~3OaicG$7S*>g8hRZU_Mv zMOh9O&e4;bhzsQ5Dq@6hAAjghz&={vwvB7d3`tLB6}+BeM}jG3*Uov*ejJTY2=#Gd z1LqT@(6WIzT>>HX@g$`xjA&WM;L$a0VhL= zAbtaGD8t+0yZ4t6eR;M?$X>D$MkdOasivSCV-Gs?!o=B^F;44nkemQfZm%fK_+w{g zNcJV)2R9P+??CNQQPkaJ?KimD=G1OtDQ0kn!>NnUg6!4sTaUjykhPI#{K5_i*{9Hp zbYGTq!o$A0HG7~CV%mWgr3wR#Vp?*x+Wu7FXU+iI&Lw&U55NT7Czz3FnV-rGa52X% z@vp6M2`Y!<(UTFN2Ss4}f!f!EHsjkc6G3|YThsZdVy@5-b3dk(67>(}%*`W_R0|K| z^hHhkMv>xI2W5$&d`v5VFJQMR6Ibun(F!Q$kf(URk>u0kWX4Sa$cW5N9PDV&zR}nL zB5$!k!Y~VpDqME!G`@Pc+j2BV0?`)daV}EC4;W0!%mTM&n?*D1vtNOIlLTwwwRT|( z&E(9mq+oOlf}nQ~dLkAK>6~PBS2d~agazW}PAR`07d7CFz?lezSxQVYzEBoDK0C^t zm?Zh>a3hIhs9MGBB-fn3LF}+fzs%^m9h_KNv#YcI@^2b@wt#9uGn_uo#VI!)E?dZ z)Yz`-B~yO9#g7c$AC4Y!1b0W4oPt67=>XXjg!(9GS)mH={p!h}3!g*S!tz~$cF#!E zRjp^cr+34!3)1YLlNCE~ex!qP7Z4neR8PW_-VYSQ^PPD<$|h2niMkX-NW?guV!KDr zcWMwT$nx$wdDj(?>OiPxAhers?O#~>99B2ZVj{9|6>&JazU!_{1WgP4j za&#n*D-;Q}g$NF^S@1%KhTS@J|2Bj=fNUTK*b$UX1!A32T9it_Q7?!Xxw_z3GLSX% z(*~OmNMQ=Nb;`p}-5S77KV$)*G(1Cf{ocyV!OVtJ0d5Dl%g9`er(|!Dr_mzUT}kA| zl}&yd81CL*c;2H#oPk1BdN@iz;nvj>K*Nf!mDFF#o+Inass=VgQT4Xl{~4^H2O*;! zt+=ydcc2K2;mZjR%q#n=*z(%WL~+=Wzd5hH*_iA%JuG#7s8|PHy-mx|lXTCW)Qqg6 z>-WY?19K}*FJhxPk3f;wWf3hz__i3~>Db;}K`_fbDC!BIUg9*zCF3vgI)dw~tF8K- zhjPWj;-myjk&1!OgL}Y{oDxt0td~qZbp@HTBpK7+9w^ zAWsUn7Jj34EKN2Lag7o_{?(9v6}~~5Gm}8E6tKm`2y1}K#=4HhZ2a0%(BzmZQxQM3HdU)wy63Oc8G|QrGuKoVG{z5!uyLVS{8LQOG$$4X-T53l7(emmpTDCbm(qirGXoByOMGFLobb&U5AQBYlYP6j! z$cpbxCcI_^zLsLA1#%&=W2^7cQ6t*|7FBFhQn;w|GvL0$G4TN6 zg&|{)^66kw#>BU=uYpmZ^nEvcNi$BmJAgqj1#Uk)I&@u)x2;8C!`(B@g&R7P;pg4v z0t-Iccm{tl>T6jykg$(<29Zy@0bmd3u-Tr zDhUn+7%@3YtP0b)oCS2s3Ve1+Ppk{*vBAtjKRSVVv3mf*Ga=#!IWjmm8?!jkNI3pK zbytk@bpOxp>c8Hu{H{;A@b%VRY8pc#Mt#>L4^F(O01d!Vj&C4zY6VS$bp!i%v-#Qn zE(q8s?p8uS9icX|Da%4YpGdpMta`GWY?qq^XEuIQa^uGmK49OVq~2o1_$1vN#xlar z58DqHcKB-3kC1&6?HQ`902b>y6C4EQ%4rR4^q&Oel#PYD#8m_o+LRJ(IDM-$zREx* zh4Ofdbz1NFg-DYsBLRc~xOoqL%y+~sw-cc!tBMR`;b+f{$&zhaGJYwhLk0)+J$Dad zR$L)09>^Cc7@Ot!LHpzr5k?|ukcs(AzJjP2$w@>2x}v0Qo24DeYQP<1Y@y5TBv@*)dLf<{QErCYk2<}E$o+vu&@3e;C zZO>su4yXH(8d2~Ykc!aaVClgi`x|QFV@I`5a}3#z2qZ)i+>{B{9fX7as*{J6;zlJ( z_}!O0`FR)~Qb`%x3{cJG{Jcb=0G^%A0 zIYQjqL1lZ;JhZSVessbAfHK%VI!I6$f-i-56?>9}6?G&sMhah@C5%*LL`1O2Pn7{9 zHFT*%gLPs$c(e;CbceX9X6k45 z*k)j>)2^9;Rm9KC(GYPySLSHY5lcw)!evqM=lXK{fo2Hb0n3*Q3!=)&H**48RP-pl zI#dh7G!;=BfWi1@cfCCDvDX}nHmd|Hx)vf+0@CFuZ?(H9j)?3*=am@o4x*{2nzR6% zP&Z~O^cCqydf~FH2zQfEHqQVp2va`H<^{V;8?+X4kD0Oct2DOO%3;cs(U*q#Ek1;HQW|G(O`J)q<624_0@WU?0*rU!L1}kV}QaP3f}ms zqa=YWF&2ld0R|V{+UGY`$RWHdDy>0uCT`);d{ihB6Edk2f<_flCpT=NYROT@<}=iS zi3kgRze&Mya++M@%sbZYfd9}195Cm;3j9g6>x6I=2g@{JI{2QOmGj3fF_ikj)q#M6 zo!kv5H^IoF*SXv5rrGm_2BEyLhtP#x2D>&OK;F5+-CmG7&n|Q}op%h`4m^ygvP2G- zsDZCMvha0a+ja~506-|3DXlvFzhDP3X-FceA6RQZC3D@Hl#rJ{J^f@7&^L|soEU7C|gOhGRZMmB_&K9?MTVQDyci@19 zTjtNVcnh{a-~DSWlEWo^l{1NSFB8V%cl{*Y2AO9{;v2>l)o3xSUCT0;Vk=en6X zQnKB%nm~yY+MqKNH#d2uIxw!f+glgl&w7A1kbx9Q1B5ZYI*Rc7s+2udDamOwLBx%T zmf;FzILNXA1h-nr{@G=kdLxUczrPC>){$Xa|I}Mz+VsI1Bc29Bg&4U;bZmdS|I6K* zHMxx>+q!?IpJl{I;!&ll>ek&g$V#eiv-6S$lAy$^oOTWx_OHL+a*qH51UO`NNqzR+ z=X7aG0D(Y+hY!ow3ND8~&OFn=%Vp_x8XD!S3cfvlqVJbcB?z88z;@lb1O@;$!QaYv zjQ=+UCeS_t16t??(py{b0GiqjsV z`ta;NZm=|r+ItDW_*O_U!O(|Z1z`Lp{_w)f2xfJJxx>*juaM&LmL#fhD}29S`2C(^ zm`-MYwf&4fSis|Pa`NC7HoGNC#QeWJj}O);WfJ7g-0u@0^*8*3N`gHpmV^3whxS?E z?a5HXrI-={n>-QHM+rF4Y=vnDTVm&t?T2HvoB(p9q_yTt!i54M%x2~nYq+~4p931R z?D6{k@%HxS4%rxEJogiCWnnQKmQm0riXCh4XQH(42^S9l5mB*?NuwSThOU<8DDV?$O zgM#--MxWXcCefN=B|iwSamLev!@~i_X^R5HpJ09tv`PEJL$y-)^ALJ?4IS_qSJn`$?-k z-3xAp%xw}r$S@vO85*L*a%!BiI_!Qk z?Wuosmvm%km+WFb@8evp06^9?krU0w@d1aed!x3$FP7j&2MZ{7OD92z@uq6;gA0;f zcH#~SfGQPBl?rZ=A0F!v#11+^c zk&`{dQt#P=-A@ZK>XhZ%JYE}C`Na$88J30KHH)V18xX&sdufR>Ny* zWBK1DJ6O?WO;MC8K5WeK73@o<{To%eDxeRrq;EsBnwtr;K=~c03wG^V$XSoi<^{y+ zD27rNmbc(P9RzNBPnqAye}60L?q8_Rr8}wrAyT;JQL}i3&=QFht55Bo8`9^m&N+D@U*Z?E#w=Z;re-MKdyeMFTZww-kQe%b1V<81hnS3B>hF!U@&=yl5}~Ne^))B zaFz`0X#i9R!@m=IOjR54CeOakg@-DO7?=_W>vB>l^fKd4#VPrQ-s=L|jt;9z518a1 z{o9XEp(*k^SXS0RKrHsq$1GOVA&H*om?D$pck=zh5grM0$voY`z*5*R7oNwH1B`T4 zE)8`QA;DzDtDj!ALyc|Gk@js?fI2As*bbO`Le5uX@F+ui!J%oESQszdff6@6t=HYA zGl1+q3_|r1=u>z~JRqLzu7~ni3&uagSgr=+8J~7x1D!hULSFcc!w&r3 zQtab%VWf8CT@bNfGom7eI2KQZA zz;_72sCt)L20r(}WA&x)#hKezl1I9saz9FMPI`c-SsOpRLe!?euNk-#Biv`r60d0u z>G85)b;LW_3O~@^JZmp+KOoWduwB)cMmWi8FA>PjXgh_)i>VvTH&`%Wwfk&q{h@hI zO0553eiM#i4mr_6^3}{&}7cs&g*@s3L<71Qg0d zh}dI9m;DAqTIm>@TVnC=9mwA8$`~MjlgqdZmI7Sgy*cX5{G|E*|B!!d#JWEa6)$le{A!?}IT)BhhVSp;YB>>bz-jF=* zn6DJruQP+m%Jr0q=M4E}@* zepl=j=hZ4~|7gq6@~GiG$jkx;%BZ=(xx5N@jCxq~W&Mf2|8Bqa%1_+HPH=n#%Rrpo zZVE&IM0XzVHvmiHB%F@|9UdT>0l;+C3KkjcM#q3{duZMx;{lo<&~}y|w^n9=!WO7i zTk?(#SU~^rv>$KC;BX`;jS=aBO2%49BL=f1s(^^766-zfxPJG+%ldc3F1)_p;8kpa zUXCq-Rb1b|c1c$Ir~lSDoOl1t?dg{zzf18#dy|Zyz3Vyd(_YVS*Fug?9v{Ibn$6>V zJj>qt6jf2Y zt9ai&(%g?&9s@Y7$1JV4VrL@5gb*+4i>n2)F=23ilc!e8TkzbRqyXGtMMWHPw?PJr zIQO#_uqWk2M!@GI)|?9=Mr+6Um1#7TH{X z16Rb%Dwo9U5qkZCTtVRj>l#8oR8cu(dBnEX242?x_RAZ&6F1v&ebKy)xH-stRZqJpAn21Po~h>%Rqh#$7sZOBo?@M<7NpOvH~ie}lM1iq-!o1eGTm32d$ApkL%C6GFc z3P24z5SKr_p+<_N6x<>=?$zi-2l-bAUgqS zzd^XQ^}&TQyDb+b8v`B5=;(S%ZlIZgX{L|@@gkZt;X!u%9CjE2AeyOL6B<;Ig{*yHvn)=8*(Vh4jEELP@Vrw>d@=mFZA zRpvbVQHP-u%_}$_$lA!p6rztCUVlWkp+B&_4Qpi?Vl7jssN!98MD=JW;xdzLNd5N` zRXBWCnh%Ipn!&TNFM;Va`14cw)zdf%ZX?6d<0n>xpB3;4F@#8vA+e{d)d|E8r&HNc za?NppVb=2tQq`nk07E+OU|Fq)z4fXU0Qj&6Bpg@7Qs{u&Xu>(v+dpgigs)e^4dV?r z_*dSPgaDoKcU$X(<@3@$k5Qplh1?AepFd)rCe4|m$X;s+w!YXzp6$)PRX(!Ic@jif z=ttnLVCx1`TM$SMyAt4M(!Co`No^nQ32iW$MJ}#A{*j@>fxdwP9seH)^zeo({e+|o z9z09}z#ss;c(mai6B;zYDR`{H&Aq`wO!UP(#W=u^MfL?)HuC1P_%x3Shd}9tH}+bC zZn+ZKCohDQWq;9k#xD(o3+FWMckqOfB9OeR&soZjGFsQ^+Upl*zorLJPIWz3)q>_b znrR@)v330)rmqJ>50@P*{}SsoIhZ4xzNFGZ zXieV~I8qWk_NBiIv9K7NW#6C^R*ngUVR+NS00uSL0eDI+ie!53y94HQGF0YJCQK$s z!GA+r(_hk-4h)H;xr$f(w~xCL!^ByGegk?s)Dvf`aACU1l=S%>yrvTuOc1;|c$=LBUHzLMj^&lLp1{0v(-dV^W)3cMmmpc!}A78|R zR2a?%KR@(dO0?3@r+^^?x{YG+gHJX1nTO|(*E^YE<%mSM&cB}rXZcJU7tN$+fK(_S9UaD59L1m`$E6&Mn(BGlVqNvSk3C7fJ zrf`X*$jZ=rKtA!7ghVQ{_ =!R;PMfX&B=ND=a_WKPI`Q$}6S;uHkNT=L2h*ZHsU zin7CQ-=pL&wVO!1vv4Sq)zr5Z{$->8Y&O#Ixo^M1X?yh!W1QaJet>3&zR&z;j9TB; z5dZbXi_Z`&(n!hGEWh2Im=QZQyoE9H$I5&`*=S_5aA77E@w^<-6u$&u$&wBSi4wpK z5$-vFAy2CCnV@}QAdfg~^jo)N>zbCj7Rj?Na?Xv3aXaT#)xA`9*+Ka8pI#A_xCMJ55;l1I2DT4Ya|W)spGuN6pAr7JABcL z*0;jTF!i_(a5ZkXY|X+W02s zYe(eJhSuG!0MqkcB$maq%~GR`I}i8OY^KC6v8tPi{+UUEmgN&MO;GhlE(M-p8d4w} z%Hl1OJlP3~m4HozRi0F5orC9wu_>JuQN@MUzdf>+u$t5=yDQvsXv>B8!K|6KL(J{! zZw+|obzR8wOF$RRYDO12b>r_Aw4_BHklhWz7&WpP6uN`A#^mi-NV5Ev2$BSGhjhSY zmfK!Kg+$H0TAeT}Q)Hxrf&@ss&A}6AN3@eK{@JcrjhHcVs5ohZYwqJyevmd*#J80_5obY6awVrd?3n=-`uvKr3B$i9&;%B zE41wWjREXe@QBTDt`Yaflb;7e<1yQixPsG(?z>;MSNLG-pRXQXuEE`V9p!+tHhHu% zODErm@*EQf!a$;raZpd0I4tWKsxe3f0AzzQvm#7hhIhBeOrr4?uLHI(%N1a-&o9We zYeB*2zJ??pKuAtwQMggacZP#r5|y_%+j}tvzOi3D8Nj+RWX^bj+3f9CHEO(Bm~(RI zfEyhzyCoIBb>Uio7n>GbhgyG8&&aTGpx7B>yad1Mh%-(PH_T&<^k;sPIOW0x9r)Hm z$NcHNP%Z7uICuCV)LG&v?OSj<+@X|xfB!X`i9pVYVM65tA}Oj{6sXbnoyE((r}Isx z+k#eEM0-#Gpm)zcNJs^RSU3fU2ZGS?*FN66w}IVpff8ng_ShmmrE&*KLVn}>+3F!k z?nR^Ux@DOXB@;LnX*#TnCPND(-c)CCUp{e@9%SeGqu!6f@N(}jZ@((}j-mQ7HI4S(3LH2EtqM^Kk3AHG5*s=JHPh$#va0mIFGcx}yftfSby zXekfO!2bRL+D>2$0JsBw5}yd$H^otilB0qJcIap^|X1q2U_QONY^8ia>XjiJ(MR{J8LXb9qa)d~6 zQzvHQxTUK(b+-z^An=|8*+vf~uc2!2fk%Sr^;gf(gavv16+(?`H32LG zvwTe5y`?#Q>aT&jp1E#15?=5pU~}PMisRUsCu>3h@4$EVhLnrzrJ{QyrorjpCxYtbX*V$`i@pm-z9gctZ4}P+X+oFIZ^O8 zUBgwTa}!Mv%4S(xHz!K9VtDDdI+r%}s0fhW2G$NhaF94mD739G-fWZk6Tfg?`L}+en zHXA-Q?B#Q!M!PUY*ji?dZ4JG|>h|pe$(pNlr`f5XpubPN?8?*l^sB7G8z5$lx3-;j zR)!;ncTnqLI)J{+ATJC9%(A_dgXdW#HN)>L#&Lv@jcP|UC?+P+CG$fDAaZ%}QR>5w z@X0R?pmIi1K+3A{!iC`kX7TXF&dit}_YX7%) zYm3(5GQHcO_~rg1+?@Buj&#!Kk>FTDYf6R~5Em^gqct>43XLm-{UTEO+`Nj}ASp-^ z5pWp%Bh<{%kWVJ#B%r2PLKL`I11CmuIbJ$XPxzgGmB6|NeL=gQ2%SWxbFXn$u`U6g zomORNEmpu0n{d8-rvZUTvUEEN7#K4k^ z5QrY2A>J6>g7yL-4EIv_Xp6-Ltux6}f-#^9x-20fq>%_vYWiNH!AeS}Vk`usK&V8+ zIb}CrlD0vQHU?^Q@j@l3!UkBA`gKY!|!lyIXZ;ui+x7@BCT9dTSqPx5j;F?dQTuS6L+pjCBlvHQSVa#uA>2#_6vmf z=t{8n31vsyjOK+fE3u>U?Zek$FNS-zW=ZxV8Mvu3fb`H4(z6Ym&2OGirnz%+b$d_d z;g4?h=_vSM)V`1*)=L8e#S}tzn6M6jb1boV?l1}L8&ZH-Nx7m&d zNyBsyblI1eC*Nezk$5Xw>IxMltMDwJ-XWgL2+q)J5y2))YQ;$mh>D{L3RpBbc4Let zy4jg%WuPs&gcm1vbFN>n*7UO%kSQXIT8Hbuh0Ud8J*QB$VT~ej6CQM4_&V1Nk{q}a zGso%@Z-Rk~9Z0M~yf>)c^u^PfN`wMLI);D@IQcoysw00xYcaT@7V3!cwCsqZ zFarirS&m=Y_VsyzHG=4x!DS82Xt-52rpxWAlVKX=u)H7z;5>HRqod(1M*|#jWLmBY ze-U{gp)OFr`yl_YylyS?4Sgcy6ySiVn#0KMKb|t(_VEcdTGbja%nm1M?_-JEKClTG zMf^F2NM}_oHl=k#xV#R}JU_U}XG`lL2rf2O;o@Vb>7!)`Haw*K$ek_XeFr7no1j+1 z5q1+7-HsMw?6~e9H#Ekr=|CqRBj+%T{18LHjtzLcoF@;njxGfd(renFsY8UjAI&Zy zeIdeF(u|*5&@WCO8~${0wY?8ul#9>Z@wPW9>na^GYn2zW^wNz7B-oQ(V^{zp6DXI1 z7iV1^2ycnM=QEC%97gmN3D(`gd^m=m=%R&cVn(YU#f55BPTb}MW&mTOY`XXg+m!(d zJ90_VdO<>iLqPp#o%)M{w%+0 zzd{QH00wI3eDwpz!u0FwAq z;ET#!ms}EEtFrrIE){uH=w0awqKqW=$z*JJ+lr41R(90Bo9ImbQwY7EzT6HhwbZw@ z(6|MIS>ZruHELI&EUAS0Gw3QCp-Ap;9)a<4TB*i#u@Q)b-~4>72{{WpBI9y6!d){H z7OSI4K{(>$7*MnG^9IH0Dqx<0h8z_Rmp*EE-gLW`wl`g6-)i zIi5>O!Fu@;%6ED-ao}h)Oz)vjdVtfUyl;{7byv_^$LN;o#JNu{l4hxJn@|e2EM!O& zN=5O-3-SWpm)@y95aAxFbiq%ag9vP)zJxD#FlhG4*%hdsM*^ifcvxB#)q$xz|9)W? zQW9Tm$dM5B!va1S9Trh~6a;%m`j%G^=Yl_{{0SXa6|PS+x=v`1z8KM|>WXjm>)2zP zTzeaqb}4BpNCjcS3rl;-vDu~g4t$`=`&U>JaB6e~iAH|-@~kJXZuLiCBuN=4c=?J# zMQ4UTNe3)x$ateb)*Uj|n=SAc@iqANSKj~rPuVqW_Win;B6>YP@x@G{@p$+8V}t zHrdllibPvuz3|^SO*%$B1jY0TDh9zY@D<~;E&m|2RW{qTBP88rgmA>|bnhYt13!0I zrhX6vzbQq$J@JDh=|I%7DdCMlY9O7CLvdz^6zQcymSu ze?Pb7k>02pQ2~}a`Bc)wcCPN_j7rY~#nccdC9Va)lMS8eAWz~|q5IBvhttcyyRl7x19)8k20q2MK=4Rl+pWtb`H^KhQafMw z>|x*lT3l_{=HP~9*Ud#<3abOC`VzR2z3%Z=w`L zyr);{XZ|av@+jZcF0|cU6r)tX5Nnt^T{!1RQ=+a#R;D6JY2R~z{9v(?kwNq29`oBS zw-7uCcz7?y`ZG5&{Hf5OA*+h00cJKV8sm2bw0#HAXnRRA@4g_AD(_(@TU<~j|Maje z_yllrEpYP@XWf7r8+?K@!>Zo7f@iP5mal0sXNQMd$u^|jI6J0&2=g8vZXw8*K18UZ zkRlSz6G2T~mz&LUx8098snfkd6&tcx5*(2rDTcSwi&cAbUi*~Kmkj9oMllNBGL7#- z?ldTehp~htiyZ;cJM%)&nI9{sC`CnTPTT>JLHdTCf(*htzF>Rz$ye?OiGh1PT(c1; zZ5a^Q1p@+OK%0TXN#+{;%Dh38GabQmP+c=pxWI7H%Et9r4DN=%_AU5tU=7Fs_9NLS z%JuL>7#l~iW3pS*4g@g4G=fpv_o;gYKdF3}QAFo<;<&|3_c~L`0n-)*bv2S?zIL_z zW5Lk9_{N<0A8F9Z`7A3M(ak$b7kf9@fMXO1be!%0gWpQoYPcRd5GV|7` zd(fTaLri0sA?|LX8PnJHWQ;LKuTiSLP>Bf6oSFli!pcH|QcVyt0TI*y;T3I;Es1cH zJqH*04pRbnx(UH@f`fFR?V}(1ePoMdu*X7{k=YMTS`{oC^wdHR2l>fh#EP=_ya2@< z`f!7&$aym}s$oXj1S)S0J)L_3M@rbGm#~4qTwDTtmuaV*Kq9Z%5cZ4V&TbKTd7sh7 z%zoysG~(0Y0XlEV?#ts{ZRJ(o^8hR$^gQrxA^8UsAkQF7Uke9B=5}Y;ZIvzJUX>rT zP<2sV_b1mb3m4-)lU5gEpy^$Y6;6`sB|V??QBoADDRa-l4YDJ%JQpTaYNE6+a-8xT zri51_;>u>sG@CyiM#|3#uEDslBLO?*A6$0|b{C(!_M^U6DH=5J4_UpDZiCIyz_%`M z$j6qy>pw!Za1F`|`6@>jll%i^U%zG#Rvtj#N}Q?V>3~y9DM>gG|5q)_Jr*vU7|{QS zwo>>a2Q+w+Z(+~;_)Fr#*vtNKb8|U1t&^Lb*c=l|I}K?I`ttn&AvpI3xKP)kAzPO8Up@%^aj;e^GkKc--}hfa}-uWxb{y??z>; ziw~aY7P$!Jf5=>Dav}Qjoj*$-ZH_>y6R4xC=X)B@cc^&;5T`|EucP|4nYf*+;IaIG z`!VQvpl?P3nX?x#7Kk|?S96So;~9;AlPd%6TVSgT^a4;?o`)w}VEcS_EtmbiN#4rYN*fk<#g*uq&DY|V} zL>cAujD#as)|XmOd~hszGE8w68bo{YuJUn8RhCBX_C zC(|Xch1RPj8v~}gYCFv+Qd1@*) z{E`TjQ8Orj-Q^sCqydKSG2uo825NRgxB5tJYU@O-d>NuKcuXLQESFWhPw>w6`>}uQ zAV+wA7%@Crf;bm!NzjV$8{$7kLzSqziyQ3M?t#Pop-oqI+z028nM7K7i3yskuG48q zWP;!eY5_Vwh&$=U+^wHOdA<}+vRuN8-eTx+8p+@!SDSs&cR@)3m&!WwtXo^vD7-g5 zIo(A@TS^(4c?cIrA(&uf@SN}zbZSjAF^>W}?T;kpOHKXHDhDzH`d^Q%hg62%uR=_( zXpDtHq!gcH4gv<0eiDD0dB6f$aC7;|ydU^^NSEkN1)N3KVlp`j7oU@(fqjw^@(Q<< zR6J_pyN~rG6pnhI&;+Mn8mPzMHd8huko50z1=iFbctn<}3v~+`h&bZntpdZeGkQ(X zmhw>(y?0DFl}1;~%t7Yd0_UZqej`jTvV){WfJ*^XLwm+wI87#Ng{!)N=*Re*OrA0g z+MDPvQoknI6>n+2qEu`Vu~qm;VTui*rtEbGMktwRm0>kYl^@@Gc?Nr8(ufozo~?Sr zwKDhtZm;HF5Y#2|LwSFDKPV=U5&z)^3mE-j&x5z8YlA;S6UCg~9LNvU8JNyax(w^r zeAbX>2`Bl^IOnO%UxOh@pDq&MQ=UX{=F*-2LrX6uJ}ZFnJ( zzFmk?2(gy%^blOC*f&b2*rH;|?NbO;-1CuB^+Vpxmeea(INq~mo=%Ld)JgUn+k-Jh zqW}jBYmbgg*0;Tj0rJBdxDHK`@em*c*lzz!L%37)s+kZ> zyQq2Ht$B5bb9gwH-ACY{OhrJXB5mmJzq+q>S3xj;d)!g8+X zw2a`s?N*^L{u2;J)YU!30C(qt3^y!Fe6sX5N5C%&!6u;=C!$2REWPN6;qJ-0Jw3w4 zZE|TikN`l|#m7GhQ9oJT-e-;MRV>v^3IR)Aan8fn=FbQ;8Gb5Il8??wy5P;dQQk{7 zU6Y=^Nd5#V?Qs4r_$h$SG zb+fOQkrmW9D5PHXk{LPMhsccDCCaDBN!s;6F6K-}&5W3ZQDzVWp3LkDeGK!OY603{ zQX2BR>l_HUXkaG~s}DOu0MHHq;TE7M;A<$u&j;8;7!3+*7iPjCRQ+dniv83!yXyO6 zY5=J!6JbF9QNnOOm^qAMWvQR0&kZ&9=L?E5OgbtfaF4b$^e%rTy6Y@Q$&M19kg(lL>s}*$a(y&|u zfsA(wjW{7Bh-G$QNZTtc-gfaNPpzH*nC*-o_wY6g)J>qlV86kf(BIvY;JpPM76@2- z>CJmny1(gI4e}XqZ#l<6VF8gK31Oc-alT-BB2hX)-e!fHK;VXb-_X98p{5`p`0ggA zy;mwZlNF{GbGsw0;|l<1rPw^*U{?p9KnrfHvKnR+nr)!>^!na>_P#kgA8@9@wRR01 z_!PuJ(D)#HY4&TrnXm(yyhgPYSoKzJRMs~z76VhsFH!~_>kwWOq$*?Rv9?9&nfy(u4$YB zlpF}=ARs~<$)EKMOea7o!G;<2W&^oQxQ|AAC}mOIe57YeUkFlW^8PjW+y*HCzjV;J z>`hWHUW708^6ve)C?#S^EK31ZCly`5raMFGj-kurp5*JCk?FW{#!d~GW+uAJ_&Vr1 z4sL25-(FR08`4>+Y=P;rwbG=^+3esq=@fhR)WZpb>sYXP$r<(c(bUJdILlL(jX4WJ z^p(5`w3{?7wWvdo3P;Us-{53wc=>oCz#FB`iz^Gmu@AJPtVnuLF-xw2trfmTHJBA7 zmFBbrhN=!Pxwg*5C1@hBio1^xb5Z8;1VO$b1iQyEDIC%s^AN~3SsxX}wwZFn59zfE z&=&BM6hx+YHuU*`h_HI6q9Hu6^`xHG@Ic@o3M_!yjnWd+1fZnnxPi2KhEq-HFF1)r}+ zy?6mU|NrotKPM>jaI6g2gD#AtR^NK|GL1zk*%kDp(S0cq-0(Pu#OWO0BgKs=EV4^Z zg`1|Za;nW#Gg;371>lq0Eg7w8R|U#u?yxG2$>b1f(;`j#D)j2mW2TdHRuI?_&)}Xq ziybK7%~FNI21d9#eg0YZ%H~rgr!~nXnhY1<|JKxLeS|vRd$b|n?V;&Op%(W+)r+^o z&cG-o2b-E~kq&6D1B?_F3Y|1iuVJyz2S3P3e!3Tf)E7K8wEJVxVfIc2$=F0jw;Lav zCpXvEV)+OLf^lLIcr#Sr0p!qI=a+-cG&qa7KQY97hfx`rar;-wNqrjq<-IY2hjdl^ z=U8nT-Uo-!HcbxofboHcv{(k$20#uJg3-W2HgdO+4xLL8G7Iqp7*%@ab69KA3ysi* z#?m9bxZa#RA~OxIAi7iFanDC52PbPqPj$0d11`%+y@erW<8psC`$zZXx9t)R>-(%x z!rw69@&Qc|{{A>J;rPGu&7n7-uuJC}($A#8cT1++M@nbq+WIeO2)YL?q)tk5R}F1L z%rdcTy!aUo2r@8p4ka;^K-@X_Ua}ZwDtO#x4%rMKAprUd;mdy|#F|M~9CpYJYSy?pcT&p&>eUqAu*VC`9C zqze2qG}q^}KZc7vP{{9q-E%suRmXE^N~NkFbW32isc#Kl{_qJ?_9slF79%wa5d=hv zBt(JC_>>G1Rp@LYU-k`w{pA`=R)zkeN?y-tv|k4{7Xq+l21f=A(_w;w1O6oHU&%Lm1r%&ew^}SnBg|^* zaehz#U>u;mAptnHq6p2hUqUV(e=P8s8Mn~D*V6`Kf0E4FODcc_EKq3JwD6*_OZ{=$ zJv(<=-QalEPM(_8;vQ%(KewEeEmW3XyCM~~20+@tsE%RVopMjEYR1|>k$a(nJ+j(R z6@^>ILa;}n=C*;cx(9R7{pivoW3w@gexF_@D3C6PU4?#jx>DmnYPZ;g0~pFd`?XQO zy?9~$&IUezd)uvE-rcod5t1i<5KZ@mwy6F$zvmw>j1PcncRA;!k)gzVC*Q$AZ+@be zaDKlJAP?~AHDMtBc#CL5I_J@|ILHclBE>F=!0K!bcT8ckPvTqK+aZ808*={Z8UiZt!|CFd(ccfZ0|?b(L345L z+O-KYSiDNA1AmZS;BcQYaBf02gi_%ax@MXVuw*zb0Q%`jLyi|{Ofnp|%u}c$kPR>% z>tZr&OH4Ub(KWr&;o{(aOoUx#GVFZ*(W@aLINX`5j9z}2`oUGB1-gE{nvsQ}p5!!O+Fu9_L~Y-N1ENA_ST&uR&JK zYg7IA@HZJ}#WLd~unp124f|=anwG^*G7@W;%D`IMg8obS4KtmMgNTSI1!M;)2?a** zQYM>7g#}HVRzZhGH*iF{wd9q_ucSK6^0r=W*cYhkFec$-7~ z2d}V4z=q*lomeWs!zmZ`N%+MDAI9b>{PRn1Y;hb4|g?me7iKyzv0~C!pF7G|0ciNjvVro7^CcL1VqJLauo%D&YV=o0FzPqvPa@;fH zZx<^*XVNPVn$)24Zb?OxAc68CzJE#(n5Mlx)71d^JO3RIV(J_9W%~WPtgAVXLQoqvliuQkWMn0Du8)AjK;@=8yIVr=}YC)>BUh=#+s$+92eB_gu$C z=gHm)|GYO{crrHS-mk`fE?Lnxj9tzoN=^J97Bb#Y$2Cct#3yKamq5Mv@($z@gv_^6 zNwkrw;6Q&z7*q%v`nB~%Bouvj&p{nlf9o+A1;%U$CBav++{&lyjI4O@?L$-Bok^2I zjo2eX87sMBN?@(6|Jo+Kp#-w z`1*>{Bfi7Jei;ObFYi~|?RZuHyCLG5_zV^X<7gI1&RIoy2dAIZGe}2geyFaU zF4u!;Cqf3&K-~c}eR{UByF|Aug73p$jkQj)5bnhmItS>#pfB!S(_u;A&-JZ~uV(ZA zmj(;B_@I3sE^UQspZzSNJ``a7nmtMGW51zpgv3xak?{1APs$c}Y)^N54`czbd~t@vzg z0DfWehxa3`z8{qGSDIQBBpu33-w_O36obed(a4pICT+3HX1lI4ud}gNWguyzrQQqc z1}KHW)ynp8*6dd%g2nS7{9m-^>4V$ij!oZIXtA#^$BF}c$-;(wWd{2Lz5cs(Nlv#E z4$yfI*i-!Q0+a+zO?XF$J}uL?sr^LCOV1I#X3hDNc)lfJqPsmWaj4Ktgu=X8z{Qz- z9)*juH_mEDOzB$AIZ0#nZBf}-LAvEXAC_A%KLb3woV~Xe;DFRP&+}O!W4~z#ynuz5 z@ew+P3`a8;j)q2;>LP$t2njyNz!-ny8_XYuJU=dGX>e$;6=8V|CD^Mpe@(md` zW4|FDt0jF#u?@a&mna$* z#+|m8fk}-oR~LInR)YqN#VTAp6`tVzm$QqD%gaw! z7yMpH>+aIo0Uob!?r=6m$mlJ^!pqld67KMm*J1|3Z}a`*XSk(~4(!^IU)EMNEo%_0 z(ZYntLi&2ci~`@ifutTG2mBa-N4p)X#kmmA2&250@margJ274VSO-j<#cT5$QMpg5yul27#JWS_^Y6YHQhpcO1|MI09|CB}FK$HZI(* zA6w&E^c^|AWjK$cOxEk`4JXBxGBJ<(DV_%U6#yN#6pxeLlUD$y2*7}o2&kc40h_!! z?dlEw-#rxy0=VtfTYmG$ql?m=jw;aboWVE-bU4R;6%>V;apkCL5MU4RfumOQ4 zP6NlGmy-rse73Sp>Rf2aoNRu&DP$b>Fg(do8`El9dv9@f1}5Jja4A+u0^n$HEtfSl zLE1T!&4&;3q&~cuM1qT~!Y3$bnuRNHa7%`M0Djc;#o^B%aFXw79@aF1cutQ$E$FwFS_ zL%-%z`*QcDE;pz@=z_I$3&XAZ$avq+R;!kVm&;BYuZ5Q~h#XJ>gF30okS2|H@x?6P z{JhUdheL^w1eF$&*8N?y2L!w5V+d|&47>IEu6+-nx59tBY9B7{KVSjjAJ#5K6NRqy zY(aqmRC)R#IeL)$L%}s12fZcpy=KXXUqsfsPf1I;R_`7hEAc(xQInXUc{@Jgp#Ai2 z#ym@s`DdG>XF~^AT(p>SLfIFSjx5W`{)QQ9$Ykbo4p`7Z#d0`95^Nn>`S9+Iol;9M zijeG(hc0qCKKvs$WXG)eAJWjYE7AVDGdRbpG5L)JkA;j%J_CO#;BRv6H}_JzOllUA z)13nz438d`;YYFkIbd+VC>m}3X#$fjmqN@nOy2^GF?Cb82Z6D~ao9dQ2XBcA z06n`EW(jfncx{vV3Zqwe4#U;K&bKA%Nb5y|1UCOg?cllQw?pFvpi)_uYgn1$ed7M# zUz33%8n(F45CBCwCqim+!O#v9Ea$^}U^n*fA=||6sP5H{$yeZt3TYD91|`@RS3~G- z?1TC-XR-T_-07613m}zWNSbu(HSNWGK^2LNNl#K-U<&^ z8XLG89dJb&WLBw!3!cB*lPBD0asnqaG>Gyo*MKX)4Z!4=-dw_lXECg!V=Nbw zP^uEpZ3!X)h#@Xgxa|NtHborth7V~z{2AXMSa1YD0aXYYhol1dFPof@)Z9N*-%=R= zWqZXoTK|0Y5P}sw@Ib&|r^tR%lf}joTSL{gK|K@tHK?u9X*;yhrE>{{Ty7JRw=0fF zpxA8*Oxedg=)a1NNM}7ticZ3tOo`vKY?*80QPQ;v;9EA)Z#HkxJcsus9$Uo z+g~tAP@jt^n}R18ocM^+YcmHRsCL82&S!LrsC2>#1fm?u4j=D{bADbtFX%bjB^b)^ zy!xBmiXI2>fcV@$n<5S(Ryr@&(Pjp(e1mSwP5$9Cl81$*QZtgz%A{iRx{_Zh|qkn7dZKmHt?L&#Eti8 z^%N3|C5R7N+vuo-ZDa894)HJKRSffV2xuktYM!A~Ujd^e`CH~_mH?;q74g3;845W! z9K^&)2r0%_7%z%tMS_HGWC%`C{}L#5&uZ_cAsNHUN0@VH#hdicin%bzH`gn& z9&`tRW=>bbo~rj^21yve9>n^(oP@SnSe(D4nBnX3-!?8!M}E`uU6RFwkf|tVacn_V zEy;$wyo6z2w8N)@o0uA@=$FFGQ!*DWEtsING4@ZqJ=9g`(PT}Vsm@@g+tTGqZbu#k z#pM;UYc!rV(0?W$Se-EDZf6Te>u`>%*^oAHgX?s#Hqjsgsu`P9fjNF5 zd@-U1H2lCZ8SWTTatF8y=aoTbkr<3qk9`+TiZ}j8TkoUqhkv^p$QM4a`hs4s{g(IzYgJ5}q z`hs+&>f!Z7rIZMTYNbW1L{*S1p&)N@_S1|)#ekCN?L z`*63hXZ|N-utYEWc!-g61jsscy;i*b7jascJdQRRS2*i{I!Dv-o$H{}t+qHzDEi5iU1PuLfB;Rl)v?W0{i0t zYycnl_{Y5KF9+-a$#kAm28D3NU$jXj&mv&b+!;-AXyi5Cxzy752k~R(xGS2M7slA8 zT%}qF2T)^#0FWvNAWj_uf)*c^h&QmKby%htQ{WUS{$^Q<8_0(odNXYs#=e;= zT87!EK$<9~I)vuDnguZfsHcLYHDMT3EFPnN>n1zc6IvVmp{&1gAy;$w# zfB5Sh20)~(R5PECvbspED7VC`JRCE0R8~X?ldYt_w+0x}YRQ9Y@ls^rX(5c`tj+5E zN>)}67=uak@$?)CX`$)JrL5>n4xc3TheqpK+xEbsp0wUALPbhMbJnlWrflt-9L(8- z#tbHKSo1iUjY*0*lbsnSZ*Zhs%`t$ks{yL$eC?F`>qt#QOf9!y4hf9E)c}$e9_Xyg zFJ3t9@>9U*HDZ5iT!4CIMr58&oKIg=duBK=9U_=Ob1{9Vu)p}v${P4jE|fyOxG}mA z031~GR`5QOuULg2J!9Wzxfe(f{zgR8IP6d68Y)6UDC|Id3OO8}H3Sds``aD48AZ|x z0ON19(Z>zm{|WjOV3hlidMLY09XixL#w5foh^xj@#$-`F2( z`}#!g@PN00--AlhJCGOt%DaEoxxs~Io^PS)i;hZ15>aNe|y(`*Ro(>y*x>vtz4)%*~f9BSlr*!EiX97!`26q*?X=(yZA zP1%^~WB!Ke#nYnsMD41CUtC;Ni#bRw^1nIUuW^nw>|>Sh35s5FcQ6go>x@7M@*?45 zdC)PP4CFo7W%%to=-zB*zj04o14R`4c&K;*;-SIN&wmH5d2Bv`NI9M_ zz9)W&{M>666KP^dunH-UgwLe!Jx5PkeLh(pegn701N^~Kfw}P0{Nw@FEUT896NXzt z)9Kx{LH5ZSBggiTtkFR^dB%pzXo4q0(cdZUTpm#=LKv8uI`fbR8H&cUD=a&+QrsM* z5-3;5A<~f^s$>R$FZxte1W>e|bJn!!g+{M3?ktCZt)5|iN>H7sy(Ke#Y=?!Xu>xtC zhbbDyux4*SYV#qBl12BX& z$wXF7F}Rjv8U?P9T5I|wTS>|*XLeCbz*~YN3Y7r>cgZ_r&JF?@A`D_tkvs>7lhL=% zqm!#k>Bclmpa&l>IP_${);av}NRdGf-v8`CNoVt@0WHGhx@B&KjEzSKwE^*=(}xMhV{prY8t!8Ac)b$IWA*bj!7%b_qycGH z(Mw_sW;HFA>m~V=FqYswhe(jRj$+6iNwbwy$49?XZ=qiT$_w0sK+^+InaxWd49`W_ z){k0EPdwcY(gcFY##-~Gp+e)s`K5l|PrHdcp;uv{7$J!r`a3eZoCnXvIXXjD8W96= zVUplLaCY$ULq~g)0@?oR*hg?aa~J6PD!?VS{C~iSVPNO@qA6P|z0t6YqV0)KO7*~} zcHw7%FWsTx|5d%duYm9V^xtn|KMU^ND@)Fe*23iZOSXn0Fv-h;9Tgur1>t8SR`(ya zn}_lj{I>GaliVEL)Ez3aKb$YIZWye+QMNl=Exj7NgSm}-GDQI5S(pJ{b8`dV-?%v z1rc?V&GI5Pc<}8dvO%h1!`+CE2_V1u3R%x^2d!x87es#e>GXS*zM;DHtH(RQ{c|0; zh){AlA|7;qVIOeh%Pd?z_teS04U>uz^=T^gmoS0dT>t$MF14}Ub|lRt3wRE54)uqO z-XZcu;b{|}JNm@g%&|e@i8$%ytT-6zmga*My!P?tZt*4-dEb6eG{3a}^HuQvKO}{x zz-z+%D0wn7Oc~$7cvz9UquF^z?Y2SGdGP7vzXn`JmPdk4i-zgfY7y8?_zy@Y5g{z0 z@&#BQZ*$B}(~Df=JH6TD-gas?{kk zpOz`PHmhd2nPDtB9b@Krh`pxKg()#D+FDTi@+-=HzY&NFGx8q zY~CS|RRM#V+chvPmdBa%zA7c81Ed(ygJryX%#ryvwZ)uLddU1bpprKmKPTq#pF`-; zbjWC8fT&obq&N6-EE@|G4{>f&ct+!8F0%!lOt`d3+1*(+9F6kvjx+1o3&)TG>JG&e zmh1cF&EG5^^NP;;H&(ONw@t$hlH(fydXylLd5eS4=iP|}$TL5OgAoWKjK<(IKpSN7 zR^K>-LZy%Ki^CP`hs3(Awcw~Y61aK`(EOTU)w=(YXv0${VcZ~R8Gn9245TH5oYo2o zDc6PA)a92m30P?7X&0(=3CRwkJv9nFe$a)T?YQ*>IBTaW=NVuvsSTwU9dq?|T@_H6 zO6~&C4t(HL9(}*Lp$kc4Qur@k>{q?U8)4GWabtS9@UhlZ)#B~l>htq`cWh%p^)E;? z&si*YTNs9cKhRi9O@)T7IeL4`bUu_L+G`>VMBw{9TR6ewp^;-;;8)UXn#37_?7aFB z2k3fNE6?QqsLTnn7x|2Eg+EQ*7^CBl!N3bbibKDO`R4cAd$ZU1hChg9BOG3Hf>=0O z=x)oXJq%umk9jtIN+8yw<#DsXYLG#Z+D0-x1NMjPrIkhhl(R>SD7hU!N}CFaD*&NT zj>0CjkOI78>I0S>y}+^?D+!{x=hhR(T1Xh{_k6 z?H$F#dy)8Xrav0NEk_e=6DY$-nFtB*WVwz(#0=6b0UNYO5f88o1W{D1L4~cMF*|j) zjC8*`9=_6D*x!zAxPf9+AtB@%q$k6WY#xu}8J<(uEXW}?c)B@x1-v|eeOct5$foAJ zzoH#7d%V7XyuDQ~r2Ik}Dg_YOAUn!uNeB7dBpgal7gt-pj&{t35J?sZfMX5MbOB-s zUhduSPC+kY-H-wbize?VJfr-P4)bW*yVrU1lsAaYjwap;yeJZ#;V#FP9JyvMu0uA8 zTZ>8y>kGzVTV2PjaqWUqygK3!*e%3C5Ln@)NiIEWf&<&_oQ;SsDY@nj+L~~e!hQes zSMTa~H>|z>`r^gQYoo!Yb>rsqwGkB&PiRR}xUJ~ipdA{#e7McQxZ2uMfpUD~b``lz z&!oOKkNVa5z57uJPVqlFM-P}1>jy?!d$9s4zM&ctr^P=n&R~|&_p+r_L!RV5r=TKmfM$%c`t=?{EGuankWkHvQXR<&-mlxB z+D?TWT91w}Anam~cX9PcRM5#voIiZMrIAk-hgK5K4%nnZb4#6I^A$Bek`-g3 zu5KR&)dUP0u_OQf766w%enfH+;sf;*DG>z2T^okRkM|__|7LI6$#V_p`AT$$%W9Re zNt0yUV-&o_&{pVk;L3%D;+E` z-Q}~kc;8+uGO-E3#wzv!nK1FzP#Puc8ix}E8p;&K9x`x1qmub zBO*lH*5pI)3Y<|QX(;~W?&$=F6v0`tlBh3%U!urMrHBeuc)-&^B;BegYP5qEvvNa2 znBOOG+JuM-YfR3<6_8Mv%<88k10i*-R}|1FgkcclIAxe)1uiHK@2z>8hTm5YP$kI5 zO>d_a-B2*KuF>0@iRWOqoeovIcTCeWMBt!;S}u5X^&9W5<@?^%j>&~EY6w8|6XjSI zg^TTgOh@fkjdC?VlZPJWYp@h!I$^LUwAoeQ&1hRe3*5JxeH;xn^dR)}7rxr^2#stQ z;~t|4C2i2{Z0#2E0vKxiInThT%yG;m$D(rw+zgdnXj!Q$Aa!T=9BiQa#$eyoTLUBw zIaaa~<^?&8oLXqzq~A!nLbb^9j0$2heAI=S14vb-KShumxV@@WDltp=y&6TlF`bV( z4&;<2(tNaiVJ!OLa-tFb3$Koh6~9qosJpBEuj(J{U(y0FuqB%OX$U9vB2B||E(LeF z!u`?;`PcXax0T-~C-(%us6$r7hz%UEX3cg3+}tmI?H;HV3*2(s-4PAk%XeaeP~SpO zbx!sc&iQ2+OlZst3wl5t_^YCb->)wRUcl53zWaRhulDO(_R2%|-kjfsMIe|99?Npw zs4obb1L(5icX_&rTCPyQ0C8VK-Uc;em`hvc6Ll%`pTAEr94G~_nU=;XG0wyn)I<$) z8bhczP(zB5prHVB&f--^3sxfpVGB;2hA!H{A@Ii3q6ggHMKHit=`h@FXoEHX}(mUTR`4}xaMV3oxT+zJiPn^_#0 zA0f<=hY|e7qKOAA=-o+pTkle#Zwzb%?=`PTD1>_t6k^Fc(=j5DqdO}DvsdS5EQGcIkU|B*ygEfL38|*}QesssOiQKUrP4=ooP^wqd zA9dhw2*_ZU1kt6CHGL-%+YmVvulTQ=9%~*cXmHoYn4>sC)*TQS>B(@BwpGYfWjX22 zUXqmy==p|9vTWz`4w9yD!8a-o9%x^s{4uAUpIEU)@gx~@pZs%b=KAil3NrN{pMOzZ zCX?qt+A|bsDCx{VzuI!T$CEXc|3aSpX4Z%XC zRU((~P~B7uk@g`9bV%55P#{e%>fdGHr8S*W1OcfiZ-gW;Mt_B#MYy(c)7rbDDeHVh zGWxpO5XI!k!Lyj-2s}@N%iZG->z}WG2Y^HU znhds}I9hl>cOdeFkG!CHB>NT3LE`pZX&YD?C7WG&`z?RgyqrAlC^EJ94ZvrYCbZ zaPKR$7Kqgl{A`9lg(==gAA~45QziFdOPBiU5<;u(M$m%{9(4(;H7I5DcS_}SbS#7?1!V2%G{kW65E9j`=Ckxha0p0{a z0i9XlCkMS`cCdLJ>aEDp{?)U0rklvWkqv1d{EHKAR8=B#p2bJF>*@bpfIg;5W9fH< z$1uqR4H}}@W+8lvNAbK?h__R-6&g!f zOT2@DHXD*b6-Z5pmjDI%O4lmr4XpB&$9i?4yMp^=DLIujZT4_*r?2b&LRc(&yERz} zTDb8Yq8T1%3uU-?8n$#+Ey=EeLZNXd*`0&vCJ)igy?7nCYyrn7Z|O^_hM(Ieu1k zzB2x!Ic<8h#4cb%quYG+iu)Pt%(Cyk_V`fldtc3|R8f$ODqBp_sZy&o6DepPwt#=37EG+K@v+Vo!_ zTOmZ~;BxcbJl+kIYYSQdkr5(SVZp`=b9=N%oJ*4lCVYL8G%evu(mp~ajzro zL+w4PxGL;%8D3|L{D|n6lxhsG=X;>vtNdmcZlAVIJ>ku42^IyBE4(j2Zs{u>I{!U7 zv8a1@5uV4iU_piV>_rDjRl=NZU}n`_oH+gSf3!MGB8>dv#jmvVza-c1>EuC9B02am2jNtg%Pf%> zY+r|tPBNj#ZC+quq^i9ntVDPj2?x3&Z6+2eQ^cfKWWoM;D%=N4;j6Dh_3pKbVlrZ- zsTHTb)P{z^N*iX$aS7wi&XP`M7+_3c9f>&slrBypXB%~{-9?8gMVve;E`SCsQTzf2 z(9lK}FMN9Da6_6HfD>3cc5J-Qu-EMx;NsP-SWhm27An%ae|UHEu{&2j0>m|l>P1Ep z4iVHa)c;+ia%f9|%q28mN&Yp?wpE^%YUH-eJ$ZEyl?L_3l9E_K_c{fLIHad905Ge7Bmm!mN?UVS*a{3e z`*0LZ33jjwVL*6CNcL-cs{kXa)gRz(n%wl{GUrs)n+||o1yXdk`j2n=s{3yccFgFU z^9?OiSeYRm0HS9%m^h#MzN5nXjuiel2&!Qr!fYpfWpt0i9YUX!yN+Y2mUkeOT#{vE zM9s=1>M!r^to&3jF(xbJR@d?n=b$;rM4}MnBmRcZt9c6O)ENnhhE{-Nip}-*^iJ>N zY=v(%`?f;>Uw0~+&8e63tq>X_GYrqJFB4yGiA%^yC9O9hPz6Co}ULh?UMG_hp(_y zP(ivNEM-XZwnDlJh<1mcil>rnzr*yNS;jWpUJEj9bUQSf(SiV08?I+b^V&_09q~`< z+LWMtNnZ?nyFiP=-Syr21n7Q`U4cw6@3t0s$2`tkQC_xrEo=ehLaAM%h(vBK`s`8A7gs=vV;&C41 zo#%D`!Sb;5#~}Ve%LI5)ELF0LI0pA8eL{81?gBr|EX#l?!4rmBV%SF0QubM+;Fcm4 z&fpr2g-^iRukwOhqb=f;HHLqOzX?JLJ}Go-Ah>38^{G?3-y32`O7~8tP9!?}rlbqf zLO`S|N|ovmePZz-K0pGHotr)g^A%{FXI>*y*QJdOj2YBR%UbGN=_Ta@he8l>*&Ces zqe0^XmJh`@K5AWpi~5K=1Bgw_+dgf~`Gtn-0_>i)3yky2B~rWqkHjOf`*OP?n}};@ zF9&)79n=Lc!F8Ejwz4K*=0dVQZt`ZHCZ9+T1~r7?BGVj?wz>{Ae~~o3sO#-jiE)XTl8>nMwShmv!)}VgbX(MWXe+=@3fp_ zp2=tfS6(6q9j*;NzyPFa>+>#K0ME42i*XHGwOnZ>I(;RR)2=v9wHToIC%ac{XrTuT z;UgNHP|DOW5@5s!I4~le~3LiIFDu+^ci8vDz450_ab9ktz#v~UXN@72S7Y?;hz&7YJt>t*9cR#Ci2hZ>J z8diirLr1DbfVQ9?tk277+UpEm-Ezqlgy=M6q6g#-x5nC+A?~W-Jbopq7CIbwhguReb^(DlGe# z?^TT^>T`T9!1{D1k}m?3x;Js>Z#1v`b~J+E>n@3x7+1Jkke;xKQyGch?5auWkmIZwq<(WGfcK{&E3CNr=?0BOqEu{Dg;%_k z(7lLS=p6}Xzh{^H==LL(i0YQJl|^Bx*pP*NO=|Lh&fHT@VsuJGD#k%f{VLT6i@T@CB5S zu*W3JC*V&b&whaO?HxjUxe_*zVM-?X^KGR>@6CP;HvUkt4H*{TPi;qxx1N5)+&}wZ{za7`llbX16b3o@Y_>KE zAl0n2&`2Gr|AiVfh?sPer&{hpyC7K~xMh%|1h0UqHQE~OoT35!Qzgva;U>X0+s1Q$ z`R!L6lPl$5#&eRo+Q9XWy4v`sK~e<|SrxF1M%^xp53ZcJrQh-VCfEcN0!N-Hi&DvE z_1)^e{839!3^Gt8a)PaA@xEI4Xlz9);ETKa%E}1Yyr&2L`L4a{e%39#z#tZ{_wvQI zG=P4X5$Lj^n^po1v{-l`@SHpo>0+R1G@j#Rwxm_;PRAkkXUQ^4a@DzXQ;Ibs$tm<_hGTZ%TJyKk{rlI=9i~s+0nx`u9 zJ{ztR|M3%xgHR9ee4%AbUSu%mSh5-s8?SXqyg~jrNkhPT>CYYVH+NwTc^0xw|eZ8am{>1V6=!KPhg)e->l3>KaAIcMv4V}O}Nz{1S8FyRmwBJNgCWN z+pP2bhL$xx^rD4Nel7W1QY7&)9MQ7mj+o&2fuFBI)cB1QquhtPg<& zIAwGs+~6f?ZS|}`0YEC?_6;%o_RE2^rvAQUvZTZIlKpHYRF>|at6gg zcGDjesuTT*@^og*ssa9h04MonDO&k$ZS4>%$LK(YmAyd0~Ofh;{%=wLvb$>vzm*=$od zh&az~8XRuY0Hg?{du(qNMYR~6G)OhA0}5`2}c$lTDof(!R7Ms&vOVVR#YUa$n_vvPc3Y>35&yB9%?jSs*GH$ zV3i?lE}LoM2sDL3_5chD>74#{13s_85%7m$ihlD`;FSZ4#seQNGX3drv0a^M8S$-n zHcI#`cJFh@iwJ--)nKSwuJ9q~#R?ZjnY-j;rd)~m)~_Jd#h4s&{8Pq6z2)Dg=@PL& zhDitQ2+|allLhS1@M!HuFaKSE%fS{0gH zaG86Gtm_#97f@9RFO%F)pF3hW;;&p#Zq!0nQMBWWlQFc38aO29RW1fXyx8bod6y7$ zC5Zs3dG-(RG%_RF_nRUIZyz~(Z3w5IRuK5=*R%<)!zllEfg&NLBuXrn0KAuQo%lo_ zI~kZkX!7|)oNz7v5X^!U$KsWJBEAU~v4^{251#h7A0Sgzxy)>!`NeY*5t5?juCPfg zVdSXRc?VZwx>C;a_@^W!gkZ1fpoCBmQTq6b&(8^R+%ZrZQmL-dZja_|PEK=Y298H# zgVYcNco|}kBwx5&xX0Yngu&h7bUuf1^f>koydohZ{F6vtitTGR*6-5`PG=MFdNhup zB*Ye_i|ml=i5|}LQU??C@ULP&%M=FI(-hHn71R9hcRl_Wi-9W}UD#fz0@zPRagc*E zr$aZqPd1KcsaRh@TYq`FKGGuI1`{A%vk4zSJTLk}?l4~0j1ZsMir!GuQZ6lB z%6$f=uj2LP*BS~u=v3)r$XQQe%)PVP$XUH`RtveT)@T-!YFVb{48#BgHsnK+{Kke- z!pgB9@m5XRMfC5*tHZ1N0GIEU&8(HkSgIHZ%7mDN6*7$IP{x6bP6+{)-EQ4V%j(fE zNm`F^nvu&|)`)G>N9yabPD_ZwM(vW^7l&N7Mtu-Q9V^l{iXkL2jx; zZ;;@ZGWp=rb1~_NoYA()E=8OLaiQ>Pj> zPG03uv>U>Fw67q~rXi=LP!KQNLz?zL1h53OgWcSGe7yY!{IKaXyMgMFSU^%E+*BdH zf2uniByqu~x(Jq}bF?Xp6KnV#Xi%e3I1Z(cv-+reD8!?{d%)gZ)T|Ux-W4f>@m)sI zTA&skXw!rSblPCaf~^2!Zd%y(Y<0LbJ*u&rRm!n)5Lk*8WEVRWe+~6ds9mr#yk7Eo zzK>Upm^MwcB$x3mgbmxRbPtv6+?${Q23u|9?xCR#(SwZoOwR05)d;s~()^wqns+y* z#wy2Zyhesj!_(^+q8h~sKwk#;Dh?tbf_)W|=WlOGg?M%THAiI+t+}v6bCe1^X#8;8 zY3^K+pQVd0J}kwe=2ZlG^MbvDuA%hjR7b1$Zlho}6k6mOkA9@q)jSlMkG8 z$-<Kw4nD(H(fEf&x!Y$V|JKB9=<|jcz*!<7JVBmdVz}+u`3@g zIYzEOF{u?OXE+O?5`qq*Tlw4s>LoWG&)O&l?FaCCVlVY_@XACTwl*6tXC8PS&@fQF zxWxV&MS4*8u^NT-a-OyG?H3161L9{@P}QMMlB@;Akt{<+HtmN0YQ-U-tA(nlKp~P1 zc37~s60ve={5pNdVu&?%1UTc4M{l)4v87CkKtu-R@5bDJ@^Xv(jy7By^ zXtW=10XsF+zrk&BrwdH?hd=J;dZ;pnf` z^3XpL=J7j~3^{Hv{U>J`ig7`&Vewf*85m#k88O3}vf2ua`~rl0e;-*T8Fm%enwV=? z7hd4S6Uu7Xov2NbbBmAGB?n;ah03CW9GG6N3~&dM47Sm>gutV}!_x;39oUk7Y&vxz zooCC~Qu8&82Spd~K95mvq!f4V!lG%OSf z<5(&Xfi#g_Fw?h<*CoskyUyK`+OI&U+2LiVvZ|eh|5}Fpyb9QlYdHLz; zLZw<<(GFh@HU|#7n>&#-tYLLSFLHH}GZSQC7DTed*c;s2bS4faO@e@$Lx@XGXaEU7 zk>M*JTwjo^t^^mopYLVv-BYr}_8X_uRDK)JLwSWCdJEg*y7^n9CCT3##GVWkFs4qD zb|@*O-!54`swe|Py{r9K-W1wp;wsoD>v;jj(XUG}$K$wSyv`@G@dOXhA0Psr�)z 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 Gk^Mh!qH1RV diff --git a/node/node-server/test/no-cache.js b/node/node-server/test/no-cache.js deleted file mode 100644 index 0a24e4d..0000000 --- a/node/node-server/test/no-cache.js +++ /dev/null @@ -1,103 +0,0 @@ -const { expect } = require("chai") -const SDK = require("weavedb-sdk-node") -const EthCrypto = require("eth-crypto") - -describe("rollup node", function () { - this.timeout(0) - - const CONTRACT_TX_ID = "sGtGKS0R3lAN1AoMuRLpXRPaLMlLg1PL2Qf5DxORvYM" - const COLLECTION_NAME = "people" - - before(async () => {}) - - after(async () => { - process.exit() - }) - - it("should create new document and evaluate previous transaction with nocache set to true", async () => { - try { - const _userAuth = EthCrypto.createIdentity() - const _userAddress = _userAuth.address.toLowerCase() - const _JSON_DATA = { name: "Bob", address: _userAddress } - const _DOC_ID = _userAddress - - const db = new SDK({ - contractTxId: CONTRACT_TX_ID, - nocache: true, - }) - await db.init() - - // const rules = { - // "allow write": true, - // } - // const txSetRules = await db.setRules(rules, COLLECTION_NAME, dbOwnerAuth) - // console.log(`txSetRules.success: ${txSetRules.success}`) - - console.log("_JSON_DATA", _JSON_DATA) - const txUpsert = await db.upsert( - _JSON_DATA, - COLLECTION_NAME, - _DOC_ID, - _userAuth, - ) - console.log(`txUpsert.success: ${txUpsert.success}`) - - const txGetDoc = await db.get(COLLECTION_NAME, _DOC_ID) - console.log("txGetDoc", txGetDoc) - expect(txGetDoc).to.eql(_JSON_DATA) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) - - const userAuth = EthCrypto.createIdentity() - const userAddress = userAuth.address.toLowerCase() - const JSON_DATA = { name: "Bob", address: userAddress } - const DOC_ID = userAddress - it("should create new document with nocache set to false", async () => { - try { - const db = new SDK({ - contractTxId: CONTRACT_TX_ID, - nocache: false, - }) - await db.init() - - // const rules = { - // "allow write": true, - // } - // const txSetRules = await db.setRules(rules, COLLECTION_NAME, dbOwnerAuth) - // console.log(`txSetRules.success: ${txSetRules.success}`) - - console.log("JSON_DATA", JSON_DATA) - const txUpsert = await db.upsert( - JSON_DATA, - COLLECTION_NAME, - DOC_ID, - userAuth, - ) - console.log(`txUpsert.success: ${txUpsert.success}`) - expect((await txUpsert.getResult()).success).to.eql(true) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) - - it("should evaluate previous transaction with nocache set to false", async () => { - try { - const db = new SDK({ - contractTxId: CONTRACT_TX_ID, - nocache: false, - }) - await db.init() - - const txGetDoc = await db.get(COLLECTION_NAME, DOC_ID) - console.log("txGetDoc", txGetDoc) - expect(txGetDoc).to.eql(JSON_DATA) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) -}) diff --git a/node/node-server/test/parallel-query.js b/node/node-server/test/parallel-query.js deleted file mode 100644 index 72713d3..0000000 --- a/node/node-server/test/parallel-query.js +++ /dev/null @@ -1,164 +0,0 @@ -const { expect } = require("chai") -const DB = require("weavedb-node-client") -const SDK_NODE = require("weavedb-sdk-node") -const { wait, Test } = require("./lib/utils") -const EthCrypto = require("eth-crypto") - -describe("rollup node", function () { - this.timeout(0) - let admin, network, bundler, test, nodeAdmin - - const RPC_NODE = "localhost:9090" - const DATABASE_KEY = "testdb" - const COLLECTION_NAME = "posts" - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ secure: false }) - ;({ network, bundler, admin } = await test.start()) - nodeAdmin = { privateKey: admin.privateKey } - this.bail(true) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - it("should commit parallel write queries to warp", async () => { - const dbOwner = admin - - try { - const db = new DB({ - rpc: RPC_NODE, - contractTxId: DATABASE_KEY, - }) - await wait(2000) - - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - - const tx = await db.admin( - { - op: "add_db", - key: DATABASE_KEY, - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: dbOwner.address.toLowerCase(), - }, - }, - nodeAdmin, - ) - console.log("DB owner: ", dbOwner.address.toLowerCase()) - expect(tx.success).to.eql(true) - await wait(2000) - - const { contractTxId, srcTxId } = await db.admin( - { op: "deploy_contract", key: DATABASE_KEY }, - nodeAdmin, - ) - console.log("contractTxId", contractTxId) - expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) - await wait(2000) - - const db2 = new DB({ - rpc: RPC_NODE, - contractTxId, - }) - - const txSetRules = await db2.setRules( - [["allow()"]], - COLLECTION_NAME, - "write", - dbOwner, - ) - expect(txSetRules.success).to.eql(true) - await wait(2000) - - const warpDb = new SDK_NODE({ - arweave: network, - contractTxId, - nocache: true, - type: 3, - }) - await warpDb.init() - expect( - (await warpDb.db.readState()).cachedValue.state.rollup.height, - ).to.eql(1) - - const TX_COUNT = 4 - const addPost1 = async () => { - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db2.add( - { address: userAuth.address }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost1" - } - const addPost2 = async () => { - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db2.add( - { address: userAuth.address }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost2" - } - const addPost3 = async () => { - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db2.add( - { address: userAuth.address }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost3" - } - const addPost4 = async () => { - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db2.add( - { address: userAuth.address }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost4" - } - - for (let i = 0; i < TX_COUNT; i++) { - const results = await Promise.allSettled([ - addPost1(), - addPost2(), - addPost3(), - addPost4(), - ]) - console.log(results) - await wait(4000) - const dbLog = new DB({ - contractTxId: `${contractTxId}#log`, - rpc: RPC_NODE, - }) - const txLogRes = await dbLog.get("txs", ["id", "desc"], 1) - const lastBlock = txLogRes[0].block - const height = (await warpDb.db.readState()).cachedValue.state.rollup - .height - console.log("lastBlock", lastBlock) - console.log("height", height) - expect(height).to.eql(lastBlock) - } - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) -}) diff --git a/node/node-server/test/rate-limit-403.js b/node/node-server/test/rate-limit-403.js deleted file mode 100644 index b6dc1df..0000000 --- a/node/node-server/test/rate-limit-403.js +++ /dev/null @@ -1,47 +0,0 @@ -const { expect } = require("chai") -const SDK = require("weavedb-sdk-node") -const EthCrypto = require("eth-crypto") - -describe("Rate Limit Error 403", function () { - this.timeout(0) - - const CONTRACT_TX_ID = "AoKUJICroTBG5QO4Hdduy7ag-KTGCFLo-B21irCyVWs" - const COLLECTION_NAME = "people" - const TX_COUNT = 200 - - before(async () => { - this.bail(true) - }) - - after(async () => { - process.exit() - }) - - it("should write to DB contract without rate limiting error", async () => { - try { - const db = new SDK({ - contractTxId: CONTRACT_TX_ID, - nocache: true, - sequencerUrl: "https://gw.warp.cc/", - apiKey: process.env.apiKey, - }) - await db.init() - - for (let i = 0; i < TX_COUNT; i++) { - const userAuth = EthCrypto.createIdentity() - const userAddress = userAuth.address.toLowerCase() - const txAddPost = await db.upsert( - { name: "sample", address: userAddress }, - COLLECTION_NAME, - userAddress, - userAuth, - ) - expect(txAddPost.success).to.eql(true) - console.log(`[${i}] ${txAddPost.docID} txAddPost: ${txAddPost.success}`) - } - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) -}) diff --git a/node/node-server/test/rate-limit-429.js b/node/node-server/test/rate-limit-429.js deleted file mode 100644 index 9e87318..0000000 --- a/node/node-server/test/rate-limit-429.js +++ /dev/null @@ -1,44 +0,0 @@ -const { expect } = require("chai") -const SDK = require("weavedb-sdk-node") -const fs = require("fs") -const path = require("path") - -describe("Rate Limit Error 429", function () { - this.timeout(0) - const COLLECTION_NAME = "people" - const CONTRACT_TX_ID = "tbg8t02nuUl_KahdVcOd6lxDeFDgtEQnVIyyqR8i8Nw" - const DOC_ID_TEST = "0x00f1cc125b21c0a865a5da1c0278f5f97bf716db" - - before(async () => { - this.bail(true) - }) - - after(async () => { - process.exit() - }) - - it("should not have a cache folder", () => { - const cachePath = path.resolve(__dirname, "../cache") - const folderExists = fs.existsSync(cachePath) // Check if the folder exists - expect(folderExists).to.be.false // Assert that the folder does not exist - }) - - it("should fetch latest DB contract state without rate limiting error ", async () => { - try { - const db = new SDK({ - contractTxId: CONTRACT_TX_ID, - sequencerUrl: "https://gw.warp.cc/", - apiKey: process.env.apiKey, - }) - await db.init() - console.log(db) - console.log("waiting to fetch docs from db collection.....") - const txGetDocs = await db.get(COLLECTION_NAME, DOC_ID_TEST) - console.log("txGetDocs", txGetDocs) - expect(txGetDocs.address).to.eql(DOC_ID_TEST) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) -}) diff --git a/node/node-server/test/rate-limit-no-api-key.js b/node/node-server/test/rate-limit-no-api-key.js deleted file mode 100644 index 57f63d1..0000000 --- a/node/node-server/test/rate-limit-no-api-key.js +++ /dev/null @@ -1,43 +0,0 @@ -const { expect } = require("chai") -const SDK = require("weavedb-sdk-node") -const fs = require("fs") -const { resolve } = require("path") - -describe("Rate Limit Error 429", function () { - this.timeout(0) - const COLLECTION_NAME = "posts" - const CONTRACT_TX_ID = "cxcIF4N8SEyt7PnUgMssZ-HZVNv_LY-iOGgolmRIfQ0" - const DOC_ID_TEST = "0xcfe3e0e5b16d81e03ea2c4321b95f256ace3ab8c" - - before(async () => { - this.bail(true) - }) - - after(async () => { - process.exit() - }) - - it("should not have a cache folder", () => { - const cachePath = resolve(__dirname, "../cache") - const folderExists = fs.existsSync(cachePath) // Check if the folder exists - expect(folderExists).to.be.false // Assert that the folder does not exist - }) - - it("should fetch latest DB contract state without rate limiting error ", async () => { - try { - const db = new SDK({ - contractTxId: CONTRACT_TX_ID, - nocache: true, - }) - await db.init() - - console.log("waiting to fetch docs from db collection.....") - const txGetDocs = await db.get(COLLECTION_NAME, DOC_ID_TEST) - console.log("txGetDocs", txGetDocs) - expect(txGetDocs.address).to.eql(DOC_ID_TEST) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) -}) diff --git a/node/node-server/test/test-add_db.js b/node/node-server/test/test-add_db.js deleted file mode 100644 index 62d63e1..0000000 --- a/node/node-server/test/test-add_db.js +++ /dev/null @@ -1,150 +0,0 @@ -const { expect } = require("chai") -const DB = require("weavedb-node-client") -const SDK = require("weavedb-sdk-node") -const { wait, Test } = require("./lib/utils") - -describe("add_db", function () { - this.timeout(0) - let admin, network, bundler, test - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ secure: false }) - ;({ network, bundler, admin } = await test.start()) - }) - - after(async () => { - await test.stop() - - // some processes linger, so force exit for now - process.exit() - }) - - it("should add and recover existing DBs", async () => { - const auth = { privateKey: admin.privateKey } - const db = new DB({ - rpc: "localhost:9090", - contractTxId: "testdb", - arweave: network, - }) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - - // add a DB to node - const tx = await db.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: admin.address, - }, - }, - auth, - ) - expect(tx.success).to.eql(true) - await wait(2000) - - // deploy L1 warp contract (via node) - const { contractTxId, srcTxId } = await db.admin( - { op: "deploy_contract", key: "testdb" }, - auth, - ) - expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) - console.log(await db.node({ op: "stats" })) - await wait(2000) - - // check L1 warp contract info directly with SDK (not via node) - const warp_db = new SDK({ - type: 3, - contractTxId, - arweave: network, - }) - await warp_db.init() - expect((await warp_db.getInfo()).version).to.eql("0.37.2") - - // update the DB (via node) - const db2 = new DB({ rpc: "localhost:9090", contractTxId }) - const Bob = { name: "Bob" } - const tx2 = await db2.set(Bob, "ppl", "Bob", auth) - expect(tx2.success).to.eql(true) - expect(await db2.get("ppl", "Bob")).to.eql(Bob) - - // check rollup - await wait(5000) - expect( - (await warp_db.db.readState()).cachedValue.state.rollup.height, - ).to.eql(1) - - // check if L1 Warp state is the same as L2 DB state - expect(await warp_db.get("ppl", "Bob")).to.eql(Bob) - - // shutdown vm and server, but keep arLocal running - test.server.server.forceShutdown() - await test.vm.stop() - await wait(1000) - - // new config - const conf = { - secure: test.secure, - weavedb_srcTxId: test.weavedb_srcTxId, - weavedb_version: test.weavedb_version, - arweave: test.network, - dbname: `test2-${Math.floor(Math.random() * 1000)}`, - admin: test.admin, - bundler: test.bundler, - rollups: {}, - contracts: test.contracts, - } - - // starting a new node - const test2 = new Test({ - secure: test.secure, - dbname: conf.dbname, - admin: conf.admin, - bundler: conf.bundler, - network: test.network, - weavedb_version: conf.weavedb_version, - weavedb_srcTxId: conf.weavedb_srcTxId, - }) - await test2.startVM() - await test2.startServer() - await wait(1000) - - // add the existing DB to the new node with contractTxId - const test2_db = new DB({ - rpc: "localhost:9090", - contractTxId: "test2_testdb", - arweave: network, - }) - - const test2_tx = await test2_db.admin( - { - op: "add_db", - key: "test2_testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: admin.address, - contractTxId, - }, - }, - auth, - ) - await wait(3000) - expect( - (await test2_db.node({ op: "stats" })).dbs[0].data.contractTxId, - ).to.eql(contractTxId) - - // check if the DB is recovered - const test2_db2 = new DB({ rpc: "localhost:9090", contractTxId }) - expect(await test2_db2.get("ppl", "Bob")).to.eql(Bob) - - // stop the new node - test2.stopServer() - await test2.stopVM() - }) -}) diff --git a/node/node-server/test/test.js b/node/node-server/test/test.js index 8f33c44..a509549 100644 --- a/node/node-server/test/test.js +++ b/node/node-server/test/test.js @@ -2,19 +2,29 @@ const { expect } = require("chai") const DB = require("weavedb-node-client") const SDK = require("weavedb-sdk-node") const { wait, Test } = require("./lib/utils") +const { readFileSync } = require("fs") +const { resolve } = require("path") +const { AO } = require("aonote") +const { setup, ok, fail } = require("./lib/helpers.js") -describe("rollup node", function () { +const getModule = async () => readFileSync(resolve(__dirname, "../contract.js")) + +describe("WeaveDB on AO", function () { this.timeout(0) - let admin, network, bundler, test + let admin, network, bundler, test, base, arweave, opt before(async () => { + ;({ opt } = await setup({ cache: true })) + // testing in insecure mode, never do that in production test = new Test({ + aos: opt.ao, secure: false, sequencerUrl: "https://gw.warp.cc/", apiKey: "xyz", + ao: true, }) - ;({ network, bundler, admin } = await test.start()) + ;({ network, arweave, bundler, admin, base } = await test.start()) await wait(3000) }) @@ -24,7 +34,7 @@ describe("rollup node", function () { process.exit() }) - it("should start server", async () => { + it("should deploy weavedb on AO", async () => { const db = new DB({ rpc: "localhost:9090", contractTxId: "testdb", @@ -49,22 +59,21 @@ describe("rollup node", function () { { privateKey: admin.privateKey }, ) expect(tx.success).to.eql(true) - // deploy L1 warp contract (via node) + + // deploy L1 AO contract (via node) const { contractTxId, srcTxId } = await db.admin( - { op: "deploy_contract", key: "testdb" }, + { + op: "deploy_contract", + key: "testdb", + type: "ao", + module: opt.ao.module, + scheduler: opt.ao.scheduler, + }, { privateKey: admin.privateKey }, ) expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) - await wait(2000) - // check L1 warp contract info directly with SDK (not via node) - const warp_db = new SDK({ - type: 3, - contractTxId, - arweave: network, - }) - await warp_db.init() - expect((await warp_db.getInfo()).version).to.eql("0.42.1") + await wait(2000) // update the DB (via node) const db2 = new DB({ @@ -80,10 +89,41 @@ describe("rollup node", function () { // check rollup await wait(5000) + const ao = new AO(opt.ao) + expect( + JSON.parse( + ( + await ao.dry({ + pid: contractTxId, + act: "Get", + tags: { Query: JSON.stringify(["ppl", "Bob"]) }, + get: { name: "Result", json: true }, + }) + ).out, + ), + ).to.eql(Bob) - const res = await warp_db.db.readState() - expect(res.cachedValue.state.rollup.height).to.eql(1) - // check if L1 Warp state is the same as L2 DB state - expect(await warp_db.get("ppl", "Bob")).to.eql(Bob) + // check zkp + let hash = null + let zkp = null + try { + hash = (await db.node({ op: "hash", key: "testdb" })).hash + } catch (e) { + console.log(e) + } + try { + zkp = ( + await db.node({ + op: "zkp", + key: "testdb", + collection: "ppl", + doc: "Bob", + path: "name", + }) + ).zkp + } catch (e) { + console.log(e) + } + expect(hash).to.eql(zkp[21]) }) }) diff --git a/node/node-server/test/wal.js b/node/node-server/test/wal.js deleted file mode 100644 index 46769bf..0000000 --- a/node/node-server/test/wal.js +++ /dev/null @@ -1,378 +0,0 @@ -const { expect } = require("chai") -const DB = require("weavedb-node-client") -const { wait, Test } = require("./lib/utils") -const crypto = require("crypto") -const EthCrypto = require("eth-crypto") - -describe("rollup node", function () { - this.timeout(0) - let admin, network, bundler, test - - const RPC_NODE = "localhost:9090" - const DATABASE_KEY = "testdb" - const COLLECTION_NAME = "posts" - const CONTRACT_TX_ID = DATABASE_KEY - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ secure: false }) - ;({ network, bundler, admin } = await test.start()) - this.bail(true) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - it("should add new db offchain", async () => { - try { - const db = new DB({ - rpc: RPC_NODE, - contractTxId: CONTRACT_TX_ID, - }) - await wait(2000) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - const tx = await db.admin( - { - op: "add_db", - key: DATABASE_KEY, - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: false, - owner: admin.address.toLowerCase(), - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx.success).to.eql(true) - await wait(2000) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) - it("should set rules", async () => { - try { - const db = new DB({ - rpc: RPC_NODE, - contractTxId: CONTRACT_TX_ID, - }) - - const txSetRules = await db.setRules( - [["allow()"]], - COLLECTION_NAME, - "write", - { privateKey: admin.privateKey }, - ) - expect(txSetRules.success).to.eql(true) - // console.log("getRules", await db.getRules(COLLECTION_NAME)) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) - it("should add new docs in parallel", async () => { - try { - const db = new DB({ - rpc: RPC_NODE, - contractTxId: CONTRACT_TX_ID, - }) - - const TX_COUNT = 100 - - const addPost1 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost1" - } - const addPost2 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost2" - } - const addPost3 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost3" - } - const addPost4 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost4" - } - const addPost5 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost5" - } - const addPost6 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost6" - } - const addPost7 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost7" - } - const addPost8 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost8" - } - const addPost9 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost9" - } - const addPost10 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost10" - } - const addPost11 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost11" - } - const addPost12 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost12" - } - const addPost13 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost13" - } - const addPost14 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost14" - } - const addPost15 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost15" - } - const addPost16 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost16" - } - const addPost17 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost17" - } - const addPost18 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost18" - } - const addPost19 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost19" - } - const addPost20 = async () => { - const randomBytes = crypto.randomBytes(16).toString("hex") - const userAuth = EthCrypto.createIdentity() - for (let i = 0; i < TX_COUNT; i++) { - const txAddPost = await db.add( - { name: randomBytes }, - COLLECTION_NAME, - userAuth, - ) - } - return "addPost20" - } - - const results = await Promise.allSettled([ - addPost1(), - addPost2(), - addPost3(), - addPost4(), - addPost5(), - addPost6(), - addPost7(), - addPost8(), - addPost9(), - addPost10(), - addPost11(), - addPost12(), - addPost13(), - addPost14(), - addPost15(), - addPost16(), - addPost17(), - addPost18(), - addPost19(), - addPost20(), - ]) - // console.log(results) - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) - - it("should not have null data in WAL", async () => { - try { - const db = new DB({ - rpc: RPC_NODE, - contractTxId: `${CONTRACT_TX_ID}#log`, - }) - const page1 = await db.cget("txs", 1000) - const filteredItemsPage1 = page1.filter(item => { - if (item.data && typeof item.data === "object") { - return Object.keys(item.data).length === 0 - } - return true - }) - console.log("items that have null data in WAL : ", filteredItemsPage1) - if (filteredItemsPage1.length > 0) - throw "data is null on some items fetched from WAL" - } catch (e) { - console.error(e) - expect(e).to.eql(null) - } - }) -}) diff --git a/node/node-server/test/zkdb.js b/node/node-server/test/zkdb.js deleted file mode 100644 index eea25c9..0000000 --- a/node/node-server/test/zkdb.js +++ /dev/null @@ -1,88 +0,0 @@ -const EthCrypto = require("eth-crypto") -const { expect } = require("chai") -const DB = require("weavedb-node-client") -const SDK = require("weavedb-sdk-node") -const { wait, Test } = require("./lib/utils") - -describe("rollup node", function () { - this.timeout(0) - let admin, network, bundler, test - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ secure: false }) - ;({ network, bundler, admin } = await test.start()) - await wait(3000) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - it("should achieve 1000 tps", async () => { - const db = new DB({ - rpc: "localhost:9090", - contractTxId: "testdb", - arweave: network, - }) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - await wait(2000) - // add a DB to node - const tx = await db.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: false, - owner: admin.address, - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx.success).to.eql(true) - - let txs = [] - let done = 0 - let count = 10 - let pr = 10 - for (let i = 0; i < count; i++) { - const user = EthCrypto.createIdentity() - txs.push( - await db.sign( - "upsert", - { - age: db.inc(1), - name: "abcdefglksjadflkjasdflksadjfl,abcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkj", - name2: - "abcdefglksjadflkjasdflksadjfl,abcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkj", - name3: - "abcdefglksjadflkjasdflksadjfl,abcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkjasdflksadjflabcdefglksjadflkj", - }, - "ppl", - "bob", - { - privateKey: user.privateKey, - nonce: 1, - }, - ), - ) - } - await db.write(txs[0].function, txs[0], true, true, false) - let i = 1 - let start = Date.now() - const go = async num => { - await db.write(txs[num].function, txs[num], true, true, false) - done += 1 - } - for (let i2 = 0; i < pr; i2++) { - await go(i++) - } - console.log(Date.now() - start) - //expect((await db.get("ppl", "bob")).age).to.be.gt(1000) - }) -}) diff --git a/node/node-server/vm.js b/node/node-server/vm.js index a2138cf..f72ad67 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -103,6 +103,22 @@ class Rollup { console.log(e) } } + hash(id, res) { + this.cb[id] = res + try { + this.db.send({ op: "hash", id }) + } catch (e) { + console.log(e) + } + } + zkp(collection, doc, path, id, res) { + this.cb[id] = res + try { + this.db.send({ op: "zkp", id, collection, doc, path }) + } catch (e) { + console.log(e) + } + } deployContract(contractTxId, srcTxId, id, res, type = "warp", ao) { this.cb[id] = res try { @@ -242,7 +258,8 @@ class VM { const parsed = this.parseQuery(call, callback) const { type, res, nocache, txid, func, query, isAdmin } = parsed if (isAdmin) { - let { op, module, scheduler, key, db, type } = JSON.parse(query).query + let { op, module, scheduler, key, db, type, collection, doc, path } = + JSON.parse(query).query const auth = { privateKey: this.conf.admin } let err, signer switch (op) { @@ -263,6 +280,28 @@ class VM { }) } + break + case "zkp": + this.rollups[key].zkp( + collection, + doc, + path, + ++this.count, + (err, res) => { + callback(null, { + result: JSON.stringify({ zkp: res.zkp }), + err: null, + }) + }, + ) + break + case "hash": + this.rollups[key].hash(++this.count, (err, res) => { + callback(null, { + result: JSON.stringify({ hash: res.hash }), + err: null, + }) + }) break case "deploy_contract": ;({ err, signer } = await validate(JSON.parse(query), txid)) From 4f5ff7fb8d93c73d476ce07d7841705494882b11 Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Sat, 26 Oct 2024 18:00:28 +0400 Subject: [PATCH 10/60] zkJSON/Solidity query test --- node/node-server/package.json | 2 +- node/node-server/rollup.js | 10 +- node/node-server/test/lib/helpers.js | 2 +- node/node-server/vm.js | 2 +- node/node-server/yarn.lock | 4750 ++++---------------------- solidity/package.json | 5 +- solidity/test/cwao20.js | 364 -- solidity/test/weavedb.js | 80 +- solidity/yarn.lock | 821 ++++- 9 files changed, 1554 insertions(+), 4482 deletions(-) delete mode 100644 solidity/test/cwao20.js diff --git a/node/node-server/package.json b/node/node-server/package.json index 3b7c879..f5c5d81 100644 --- a/node/node-server/package.json +++ b/node/node-server/package.json @@ -16,7 +16,7 @@ "@grpc/grpc-js": "~1.1.8", "@grpc/proto-loader": "~0.5.0", "@metamask/eth-sig-util": "^5.0.2", - "aonote": "^0.8.2", + "aonote": "^0.8.3", "archiver": "^5.3.1", "arweave": "^1.14.4", "aws-sdk": "^2.1306.0", diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index fb65d90..920bd80 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -152,7 +152,7 @@ class Rollup { console.log(e) return { err: e } } - return { err: null, zkp } + return { err: null, zkp, col_id } } async measureSizes(bundles, last_hash) { let sizes = 0 @@ -935,12 +935,16 @@ process.on("message", async msg => { } else if (op === "hash") { process.send({ op, id, result: { hash: rollup.hash } }) } else if (op === "zkp") { - const { err, zkp } = await rollup.genZKP(msg.collection, msg.doc, msg.path) + const { err, zkp, col_id } = await rollup.genZKP( + msg.collection, + msg.doc, + msg.path, + ) process.send({ op, id, err, - result: { zkp }, + result: { zkp, col_id }, }) } else { process.send({ op, id }) diff --git a/node/node-server/test/lib/helpers.js b/node/node-server/test/lib/helpers.js index 35c37d6..933b4e0 100644 --- a/node/node-server/test/lib/helpers.js +++ b/node/node-server/test/lib/helpers.js @@ -39,7 +39,7 @@ const setup = async ({ } if (opt) { const ar = await new AR(opt.ar).init(opt.jwk) - const ao = new AO({ ...opt.ar, ar }) + const ao = new AO({ ...opt.ao, ar }) const profile = new Profile({ ...opt.profile, ao }) return { opt, ar, ao, profile } } diff --git a/node/node-server/vm.js b/node/node-server/vm.js index f72ad67..f033a26 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -289,7 +289,7 @@ class VM { ++this.count, (err, res) => { callback(null, { - result: JSON.stringify({ zkp: res.zkp }), + result: JSON.stringify({ zkp: res.zkp, col_id: res.col_id }), err: null, }) }, diff --git a/node/node-server/yarn.lock b/node/node-server/yarn.lock index 64dacf6..b393483 100644 --- a/node/node-server/yarn.lock +++ b/node/node-server/yarn.lock @@ -7,14 +7,6 @@ resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz" integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - "@apollo/protobufjs@1.2.6": version "1.2.6" resolved "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz" @@ -181,7 +173,7 @@ "@aws-amplify/core" "5.8.5" tslib "^1.8.0" -"@aws-amplify/core@^5.1.2", "@aws-amplify/core@5.8.5": +"@aws-amplify/core@5.8.5", "@aws-amplify/core@^5.1.2": version "5.8.5" resolved "https://registry.npmjs.org/@aws-amplify/core/-/core-5.8.5.tgz" integrity sha512-R7zB+VUyNRT/7GCfBfWOIz2vy70VbHNfhotbdyo02ZVcc4vyXt+tsdZvvMSm1SB5uQ411jiAfDmTvOzLOIaJsA== @@ -232,7 +224,7 @@ "@aws-sdk/util-locate-window" "^3.0.0" tslib "^1.11.1" -"@aws-crypto/sha256-js@^1.0.0", "@aws-crypto/sha256-js@^1.2.2", "@aws-crypto/sha256-js@1.2.2": +"@aws-crypto/sha256-js@1.2.2", "@aws-crypto/sha256-js@^1.0.0", "@aws-crypto/sha256-js@^1.2.2": version "1.2.2" resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz" integrity sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g== @@ -557,6 +549,11 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" +"@aws-sdk/types@3.6.1": + version "3.6.1" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz" + integrity sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g== + "@aws-sdk/types@^3.1.0": version "3.428.0" resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.428.0.tgz" @@ -565,11 +562,6 @@ "@smithy/types" "^2.3.5" tslib "^2.5.0" -"@aws-sdk/types@3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz" - integrity sha512-4Dx3eRTrUHLxhFdLJL8zdNGzVsJfAxtxPYYGmIddUkO2Gj3WA1TGjdfG4XN/ClI6e1XonCHafQX3UYO/mgnH3g== - "@aws-sdk/url-parser-native@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/url-parser-native/-/url-parser-native-3.6.1.tgz" @@ -665,13 +657,6 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" -"@aws-sdk/util-utf8-browser@^3.0.0": - version "3.259.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz" - integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== - dependencies: - tslib "^2.3.1" - "@aws-sdk/util-utf8-browser@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.6.1.tgz" @@ -679,6 +664,13 @@ dependencies: tslib "^1.8.0" +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + "@aws-sdk/util-utf8-node@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.6.1.tgz" @@ -687,7 +679,7 @@ "@aws-sdk/util-buffer-from" "3.6.1" tslib "^1.8.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.7": +"@babel/code-frame@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz" integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g== @@ -695,33 +687,7 @@ "@babel/highlight" "^7.25.7" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.7", "@babel/compat-data@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz" - integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA== - -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.20.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz" - integrity sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.25.7" - "@babel/generator" "^7.25.7" - "@babel/helper-compilation-targets" "^7.25.7" - "@babel/helper-module-transforms" "^7.25.7" - "@babel/helpers" "^7.25.7" - "@babel/parser" "^7.25.8" - "@babel/template" "^7.25.7" - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.8" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.20.0", "@babel/generator@^7.25.7": +"@babel/generator@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz" integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA== @@ -731,74 +697,7 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz" - integrity sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA== - dependencies: - "@babel/types" "^7.25.7" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz" - integrity sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg== - dependencies: - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz" - integrity sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A== - dependencies: - "@babel/compat-data" "^7.25.7" - "@babel/helper-validator-option" "^7.25.7" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz" - integrity sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.7" - "@babel/helper-member-expression-to-functions" "^7.25.7" - "@babel/helper-optimise-call-expression" "^7.25.7" - "@babel/helper-replace-supers" "^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" - "@babel/traverse" "^7.25.7" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz" - integrity sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.7" - regexpu-core "^6.1.1" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.6.2": - version "0.6.2" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" - integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-member-expression-to-functions@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz" - integrity sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA== - dependencies: - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.25.7": +"@babel/helper-module-imports@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz" integrity sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw== @@ -816,36 +715,11 @@ "@babel/helper-validator-identifier" "^7.25.7" "@babel/traverse" "^7.25.7" -"@babel/helper-optimise-call-expression@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz" - integrity sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng== - dependencies: - "@babel/types" "^7.25.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.7", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz" integrity sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw== -"@babel/helper-remap-async-to-generator@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz" - integrity sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.7" - "@babel/helper-wrap-function" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/helper-replace-supers@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz" - integrity sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.25.7" - "@babel/helper-optimise-call-expression" "^7.25.7" - "@babel/traverse" "^7.25.7" - "@babel/helper-simple-access@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz" @@ -854,14 +728,6 @@ "@babel/traverse" "^7.25.7" "@babel/types" "^7.25.7" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz" - integrity sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA== - dependencies: - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - "@babel/helper-string-parser@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz" @@ -872,28 +738,6 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz" integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg== -"@babel/helper-validator-option@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz" - integrity sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ== - -"@babel/helper-wrap-function@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz" - integrity sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg== - dependencies: - "@babel/template" "^7.25.7" - "@babel/traverse" "^7.25.7" - "@babel/types" "^7.25.7" - -"@babel/helpers@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz" - integrity sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA== - dependencies: - "@babel/template" "^7.25.7" - "@babel/types" "^7.25.7" - "@babel/highlight@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz" @@ -904,363 +748,14 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.13.16", "@babel/parser@^7.20.0", "@babel/parser@^7.25.7", "@babel/parser@^7.25.8": +"@babel/parser@^7.25.7": version "7.25.8" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz" integrity sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ== dependencies: "@babel/types" "^7.25.8" -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz" - integrity sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz" - integrity sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz" - integrity sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz" - integrity sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" - "@babel/plugin-transform-optional-chaining" "^7.25.7" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz" - integrity sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/plugin-proposal-class-properties@^7.13.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-export-default-from@^7.0.0": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.8.tgz" - integrity sha512-5SLPHA/Gk7lNdaymtSVS9jH77Cs7yuHTR3dYj+9q+M7R7tNLXhNuvnmOfafRIzpWL+dtMibuu1I4ofrc768Gkw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-default-from@^7.0.0": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.7.tgz" - integrity sha512-LRUCsC0YucSjabsmxx6yly8+Q/5mxKdp9gemlpR9ro3bfpcOQOXx/CHivs7QCbjgygd6uQ2GcRfHu1FVax/hgg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz" - integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-flow@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.25.7.tgz" - integrity sha512-fyoj6/YdVtlv2ROig/J0fP7hh/wNO1MJGm1NR70Pg7jbkF+jOUL9joorqaCOQh06Y+LfgTagHzC8KqZ3MF782w== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-import-assertions@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz" - integrity sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-import-attributes@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz" - integrity sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-jsx@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz" - integrity sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-typescript@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz" - integrity sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz" - integrity sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-async-generator-functions@^7.24.3", "@babel/plugin-transform-async-generator-functions@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz" - integrity sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-remap-async-to-generator" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz" - integrity sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg== - dependencies: - "@babel/helper-module-imports" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-remap-async-to-generator" "^7.25.7" - -"@babel/plugin-transform-block-scoped-functions@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz" - integrity sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz" - integrity sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-class-properties@^7.24.1", "@babel/plugin-transform-class-properties@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz" - integrity sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-class-static-block@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz" - integrity sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz" - integrity sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.7" - "@babel/helper-compilation-targets" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-replace-supers" "^7.25.7" - "@babel/traverse" "^7.25.7" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz" - integrity sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/template" "^7.25.7" - -"@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz" - integrity sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-dotall-regex@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz" - integrity sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-duplicate-keys@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz" - integrity sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz" - integrity sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-dynamic-import@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz" - integrity sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-exponentiation-operator@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz" - integrity sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-export-namespace-from@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz" - integrity sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.7.tgz" - integrity sha512-q8Td2PPc6/6I73g96SreSUCKEcwMXCwcXSIAVTyTTN6CpJe0dMj8coxu1fg1T9vfBLi6Rsi6a4ECcFBbKabS5w== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/plugin-syntax-flow" "^7.25.7" - -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz" - integrity sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" - -"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz" - integrity sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ== - dependencies: - "@babel/helper-compilation-targets" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/plugin-transform-json-strings@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz" - integrity sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz" - integrity sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-logical-assignment-operators@^7.24.1", "@babel/plugin-transform-logical-assignment-operators@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz" - integrity sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-member-expression-literals@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz" - integrity sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-modules-amd@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz" - integrity sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA== - dependencies: - "@babel/helper-module-transforms" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.8", "@babel/plugin-transform-modules-commonjs@^7.25.7": +"@babel/plugin-transform-modules-commonjs@^7.24.8": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz" integrity sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg== @@ -1269,382 +764,21 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/helper-simple-access" "^7.25.7" -"@babel/plugin-transform-modules-systemjs@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz" - integrity sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g== - dependencies: - "@babel/helper-module-transforms" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-validator-identifier" "^7.25.7" - "@babel/traverse" "^7.25.7" - -"@babel/plugin-transform-modules-umd@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz" - integrity sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw== - dependencies: - "@babel/helper-module-transforms" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz" - integrity sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-new-target@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz" - integrity sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz" - integrity sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-numeric-separator@^7.24.1", "@babel/plugin-transform-numeric-separator@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz" - integrity sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-object-rest-spread@^7.24.5", "@babel/plugin-transform-object-rest-spread@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz" - integrity sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g== - dependencies: - "@babel/helper-compilation-targets" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/plugin-transform-parameters" "^7.25.7" - -"@babel/plugin-transform-object-super@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz" - integrity sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-replace-supers" "^7.25.7" - -"@babel/plugin-transform-optional-catch-binding@^7.24.1", "@babel/plugin-transform-optional-catch-binding@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz" - integrity sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-optional-chaining@^7.24.5", "@babel/plugin-transform-optional-chaining@^7.25.7", "@babel/plugin-transform-optional-chaining@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz" - integrity sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" - -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz" - integrity sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-private-methods@^7.22.5", "@babel/plugin-transform-private-methods@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz" - integrity sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-private-property-in-object@^7.22.11", "@babel/plugin-transform-private-property-in-object@^7.25.8": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz" - integrity sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.7" - "@babel/helper-create-class-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-property-literals@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz" - integrity sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.7.tgz" - integrity sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz" - integrity sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz" - integrity sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@7.19.0": - version "7.19.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz" - integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.19.0" - -"@babel/plugin-transform-regenerator@^7.20.0", "@babel/plugin-transform-regenerator@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz" - integrity sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - regenerator-transform "^0.15.2" - -"@babel/plugin-transform-reserved-words@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz" - integrity sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-runtime@^7.0.0": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz" - integrity sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg== - dependencies: - "@babel/helper-module-imports" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" - babel-plugin-polyfill-regenerator "^0.6.1" - semver "^6.3.1" - -"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz" - integrity sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz" - integrity sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" - -"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz" - integrity sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-template-literals@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz" - integrity sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-typeof-symbol@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz" - integrity sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-typescript@^7.25.7", "@babel/plugin-transform-typescript@^7.5.0": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.7.tgz" - integrity sha512-VKlgy2vBzj8AmEzunocMun2fF06bsSWV+FvVXohtL6FGve/+L217qhHxRTVGHEDO/YR8IANcjzgJsd04J8ge5Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.7" - "@babel/helper-create-class-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" - "@babel/plugin-syntax-typescript" "^7.25.7" - -"@babel/plugin-transform-unicode-escapes@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz" - integrity sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-unicode-property-regex@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz" - integrity sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz" - integrity sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/plugin-transform-unicode-sets-regex@^7.25.7": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz" - integrity sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - -"@babel/preset-env@^7.1.6": - version "7.25.8" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz" - integrity sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg== - dependencies: - "@babel/compat-data" "^7.25.8" - "@babel/helper-compilation-targets" "^7.25.7" - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-validator-option" "^7.25.7" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.7" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.7" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.25.7" - "@babel/plugin-syntax-import-attributes" "^7.25.7" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.25.7" - "@babel/plugin-transform-async-generator-functions" "^7.25.8" - "@babel/plugin-transform-async-to-generator" "^7.25.7" - "@babel/plugin-transform-block-scoped-functions" "^7.25.7" - "@babel/plugin-transform-block-scoping" "^7.25.7" - "@babel/plugin-transform-class-properties" "^7.25.7" - "@babel/plugin-transform-class-static-block" "^7.25.8" - "@babel/plugin-transform-classes" "^7.25.7" - "@babel/plugin-transform-computed-properties" "^7.25.7" - "@babel/plugin-transform-destructuring" "^7.25.7" - "@babel/plugin-transform-dotall-regex" "^7.25.7" - "@babel/plugin-transform-duplicate-keys" "^7.25.7" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.7" - "@babel/plugin-transform-dynamic-import" "^7.25.8" - "@babel/plugin-transform-exponentiation-operator" "^7.25.7" - "@babel/plugin-transform-export-namespace-from" "^7.25.8" - "@babel/plugin-transform-for-of" "^7.25.7" - "@babel/plugin-transform-function-name" "^7.25.7" - "@babel/plugin-transform-json-strings" "^7.25.8" - "@babel/plugin-transform-literals" "^7.25.7" - "@babel/plugin-transform-logical-assignment-operators" "^7.25.8" - "@babel/plugin-transform-member-expression-literals" "^7.25.7" - "@babel/plugin-transform-modules-amd" "^7.25.7" - "@babel/plugin-transform-modules-commonjs" "^7.25.7" - "@babel/plugin-transform-modules-systemjs" "^7.25.7" - "@babel/plugin-transform-modules-umd" "^7.25.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.7" - "@babel/plugin-transform-new-target" "^7.25.7" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.8" - "@babel/plugin-transform-numeric-separator" "^7.25.8" - "@babel/plugin-transform-object-rest-spread" "^7.25.8" - "@babel/plugin-transform-object-super" "^7.25.7" - "@babel/plugin-transform-optional-catch-binding" "^7.25.8" - "@babel/plugin-transform-optional-chaining" "^7.25.8" - "@babel/plugin-transform-parameters" "^7.25.7" - "@babel/plugin-transform-private-methods" "^7.25.7" - "@babel/plugin-transform-private-property-in-object" "^7.25.8" - "@babel/plugin-transform-property-literals" "^7.25.7" - "@babel/plugin-transform-regenerator" "^7.25.7" - "@babel/plugin-transform-reserved-words" "^7.25.7" - "@babel/plugin-transform-shorthand-properties" "^7.25.7" - "@babel/plugin-transform-spread" "^7.25.7" - "@babel/plugin-transform-sticky-regex" "^7.25.7" - "@babel/plugin-transform-template-literals" "^7.25.7" - "@babel/plugin-transform-typeof-symbol" "^7.25.7" - "@babel/plugin-transform-unicode-escapes" "^7.25.7" - "@babel/plugin-transform-unicode-property-regex" "^7.25.7" - "@babel/plugin-transform-unicode-regex" "^7.25.7" - "@babel/plugin-transform-unicode-sets-regex" "^7.25.7" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.38.1" - semver "^6.3.1" - -"@babel/preset-flow@^7.13.13": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.25.7.tgz" - integrity sha512-q2x3g0YHzo/Ohsr51KOYS/BtZMsvkzVd8qEyhZAyTatYdobfgXCuyppTqTuIhdq5kR/P3nyyVvZ6H5dMc4PnCQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-validator-option" "^7.25.7" - "@babel/plugin-transform-flow-strip-types" "^7.25.7" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-typescript@^7.13.0": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz" - integrity sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.7" - "@babel/helper-validator-option" "^7.25.7" - "@babel/plugin-syntax-jsx" "^7.25.7" - "@babel/plugin-transform-modules-commonjs" "^7.25.7" - "@babel/plugin-transform-typescript" "^7.25.7" - -"@babel/register@^7.13.16": - version "7.25.7" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.25.7.tgz" - integrity sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q== +"@babel/runtime@7.20.13": + version "7.20.13" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.6" - source-map-support "^0.5.16" + regenerator-runtime "^0.13.11" -"@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6", "@babel/runtime@^7.25.0", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.20.13", "@babel/runtime@^7.20.6": version "7.25.7" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz" integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w== dependencies: regenerator-runtime "^0.14.0" -"@babel/runtime@7.20.13": - version "7.20.13" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/template@^7.0.0", "@babel/template@^7.25.7": +"@babel/template@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz" integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA== @@ -1653,7 +787,7 @@ "@babel/parser" "^7.25.7" "@babel/types" "^7.25.7" -"@babel/traverse@^7.20.0", "@babel/traverse@^7.25.7": +"@babel/traverse@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz" integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== @@ -1666,7 +800,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.25.7", "@babel/types@^7.25.8", "@babel/types@^7.4.4": +"@babel/types@^7.25.7", "@babel/types@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz" integrity sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg== @@ -1675,11 +809,36 @@ "@babel/helper-validator-identifier" "^7.25.7" to-fast-properties "^2.0.0" +"@cbor-extract/cbor-extract-darwin-arm64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.1.1.tgz#5721f6dd3feae0b96d23122853ce977e0671b7a6" + integrity sha512-blVBy5MXz6m36Vx0DfLd7PChOQKEs8lK2bD1WJn/vVgG4FXZiZmZb2GECHFvVPA5T7OnODd9xZiL3nMCv6QUhA== + +"@cbor-extract/cbor-extract-darwin-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.1.1.tgz#c25e7d0133950d87d101d7b3afafea8d50d83f5f" + integrity sha512-h6KFOzqk8jXTvkOftyRIWGrd7sKQzQv2jVdTL9nKSf3D2drCvQB/LHUxAOpPXo3pv2clDtKs3xnHalpEh3rDsw== + +"@cbor-extract/cbor-extract-linux-arm64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.1.1.tgz#48f78e7d8f0fcc84ed074b6bfa6d15dd83187c63" + integrity sha512-SxAaRcYf8S0QHaMc7gvRSiTSr7nUYMqbUdErBEu+HYA4Q6UNydx1VwFE68hGcp1qvxcy9yT5U7gA+a5XikfwSQ== + +"@cbor-extract/cbor-extract-linux-arm@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.1.1.tgz#7507d346389cb682e44fab8fae9534edd52e2e41" + integrity sha512-ds0uikdcIGUjPyraV4oJqyVE5gl/qYBpa/Wnh6l6xLE2lj/hwnjT2XcZCChdXwW/YFZ1LUHs6waoYN8PmK0nKQ== + "@cbor-extract/cbor-extract-linux-x64@2.1.1": version "2.1.1" resolved "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.1.1.tgz" integrity sha512-GVK+8fNIE9lJQHAlhOROYiI0Yd4bAZ4u++C2ZjlkS3YmO6hi+FUxe6Dqm+OKWTcMpL/l71N6CQAmaRcb4zyJuA== +"@cbor-extract/cbor-extract-win32-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.1.1.tgz#21b11a1a3f18c3e7d62fd5f87438b7ed2c64c1f7" + integrity sha512-2Niq1C41dCRIDeD8LddiH+mxGlO7HJ612Ll3D/E73ZWBmycued+8ghTr/Ho3CMOWPUEr08XtyBMVXAjqF+TcKw== + "@cosmjs/crypto@^0.28.4": version "0.28.13" resolved "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.28.13.tgz" @@ -1693,7 +852,7 @@ elliptic "^6.5.3" libsodium-wrappers "^0.7.6" -"@cosmjs/encoding@^0.28.4", "@cosmjs/encoding@0.28.13": +"@cosmjs/encoding@0.28.13", "@cosmjs/encoding@^0.28.4": version "0.28.13" resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.13.tgz" integrity sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA== @@ -1744,7 +903,7 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethersproject/abi@^5.7.0", "@ethersproject/abi@5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -1759,7 +918,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@^5.7.0", "@ethersproject/abstract-provider@5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -1772,7 +931,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@^5.7.0", "@ethersproject/abstract-signer@5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -1783,7 +942,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@^5.7.0", "@ethersproject/address@5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -1794,14 +953,14 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@^5.7.0", "@ethersproject/base64@5.7.0": +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@^5.7.0", "@ethersproject/basex@5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -1809,7 +968,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@^5.7.0", "@ethersproject/bignumber@5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -1818,21 +977,21 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0", "@ethersproject/bytes@5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.5.0", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@^5.7.0", "@ethersproject/constants@5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@^5.2.0", "@ethersproject/contracts@5.7.0": +"@ethersproject/contracts@5.7.0", "@ethersproject/contracts@^5.2.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== @@ -1848,7 +1007,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.7.0", "@ethersproject/hash@5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.4.0", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -1863,7 +1022,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@^5.7.0", "@ethersproject/hdnode@5.7.0": +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== @@ -1881,7 +1040,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@^5.7.0", "@ethersproject/json-wallets@5.7.0": +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== @@ -1900,7 +1059,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.7.0", "@ethersproject/keccak256@5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -1908,19 +1067,19 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.7.0", "@ethersproject/logger@5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@^5.7.0", "@ethersproject/networks@5.7.1": +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@^5.7.0", "@ethersproject/pbkdf2@5.7.0": +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== @@ -1928,14 +1087,14 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@^5.7.0", "@ethersproject/properties@5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@^5.2.0", "@ethersproject/providers@^5.7.2", "@ethersproject/providers@5.7.2": +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.2.0", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -1961,7 +1120,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@^5.7.0", "@ethersproject/random@5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -1969,7 +1128,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@^5.7.0", "@ethersproject/rlp@5.7.0": +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -1977,7 +1136,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@^5.7.0", "@ethersproject/sha2@5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -1986,7 +1145,7 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.7.0", "@ethersproject/signing-key@5.7.0": +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== @@ -2010,7 +1169,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0", "@ethersproject/strings@5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.5.0", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -2019,7 +1178,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@^5.7.0", "@ethersproject/transactions@5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -2034,7 +1193,7 @@ "@ethersproject/rlp" "^5.7.0" "@ethersproject/signing-key" "^5.7.0" -"@ethersproject/units@^5.4.0", "@ethersproject/units@5.7.0": +"@ethersproject/units@5.7.0", "@ethersproject/units@^5.4.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== @@ -2043,7 +1202,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/wallet@^5.2.0", "@ethersproject/wallet@^5.7.0", "@ethersproject/wallet@5.7.0": +"@ethersproject/wallet@5.7.0", "@ethersproject/wallet@^5.2.0", "@ethersproject/wallet@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== @@ -2064,7 +1223,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@^5.7.0", "@ethersproject/web@5.7.1": +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -2075,7 +1234,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@^5.7.0", "@ethersproject/wordlists@5.7.0": +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== @@ -2138,14 +1297,6 @@ teeny-request "^8.0.0" uuid "^8.0.0" -"@graphql-tools/merge@^8.4.1": - version "8.4.2" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz" - integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== - dependencies: - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - "@graphql-tools/merge@8.3.1": version "8.3.1" resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz" @@ -2154,6 +1305,14 @@ "@graphql-tools/utils" "8.9.0" tslib "^2.4.0" +"@graphql-tools/merge@^8.4.1": + version "8.4.2" + resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== + dependencies: + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + "@graphql-tools/mock@^8.1.2": version "8.7.20" resolved "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz" @@ -2179,10 +1338,17 @@ resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz" integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== dependencies: - "@graphql-tools/merge" "^8.4.1" - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/utils@8.9.0": + version "8.9.0" + resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz" + integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== + dependencies: tslib "^2.4.0" - value-or-promise "^1.0.12" "@graphql-tools/utils@^9.2.1": version "9.2.1" @@ -2192,13 +1358,6 @@ "@graphql-typed-document-node/core" "^3.1.1" tslib "^2.4.0" -"@graphql-tools/utils@8.9.0": - version "8.9.0" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz" - integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== - dependencies: - tslib "^2.4.0" - "@graphql-typed-document-node/core@^3.1.1": version "3.2.0" resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz" @@ -2251,18 +1410,6 @@ protobufjs "^7.2.4" yargs "^17.7.2" -"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": - version "9.3.0" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/topo@^5.1.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hexagon/base64@^1.1.25": version "1.1.28" resolved "https://registry.npmjs.org/@hexagon/base64/-/base64-1.1.28.tgz" @@ -2303,70 +1450,6 @@ base64-js "^1.5.1" bignumber.js "^9.1.1" -"@isaacs/ttlcache@^1.4.1": - version "1.4.1" - resolved "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz" - integrity sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA== - -"@jest/create-cache-key-function@^29.6.3": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz" - integrity sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA== - dependencies: - "@jest/types" "^29.6.3" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@josephg/resolvable@^1.0.0": version "1.0.1" resolved "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz" @@ -2391,14 +1474,6 @@ resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.5.0" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" @@ -2472,11 +1547,36 @@ tweetnacl-util "^0.15.1" utf-8-validate "^5.0.8" +"@lmdb/lmdb-darwin-arm64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e" + integrity sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw== + +"@lmdb/lmdb-darwin-x64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz#ca243534c8b37d5516c557e4624256d18dd63184" + integrity sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug== + +"@lmdb/lmdb-linux-arm64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz#b44a8023057e21512eefb9f6120096843b531c1e" + integrity sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww== + +"@lmdb/lmdb-linux-arm@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz#17bd54740779c3e4324e78e8f747c21416a84b3d" + integrity sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg== + "@lmdb/lmdb-linux-x64@2.8.5": version "2.8.5" resolved "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz" integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ== +"@lmdb/lmdb-win32-x64@2.8.5": + version "2.8.5" + resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz#8233e8762440b0f4632c47a09b1b6f23de8b934c" + integrity sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ== + "@metamask/eth-sig-util@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" @@ -2505,31 +1605,42 @@ resolved "https://registry.npmjs.org/@metamask/legacy-web3/-/legacy-web3-2.0.0.tgz" integrity sha512-hR5sbVR0wU3sXMXx2btRBKYzzTkBNTYoZbPHqqB7UARwxm9yEe9C/Y79YyciyzC9cnKetNV6s6VAwNQp5LNpLw== +"@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" + integrity sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ== + +"@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz#f954f34355712212a8e06c465bc06c40852c6bb3" + integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw== + +"@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz#45c63037f045c2b15c44f80f0393fa24f9655367" + integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg== + +"@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz#35707efeafe6d22b3f373caf9e8775e8920d1399" + integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA== + "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2": version "3.0.2" resolved "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz" integrity sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA== +"@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407" + integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ== + "@noble/ciphers@^0.2.0": version "0.2.0" resolved "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.2.0.tgz" integrity sha512-6YBxJDAapHSdd3bLDv6x2wRPwq4QFMUaB3HvljNBUTThDd12eSm7/3F+2lnfzx2jvM+S6Nsy0jEt9QbPqSwqRw== -"@noble/curves@^0.9.0": - version "0.9.1" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz" - integrity sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ== - dependencies: - "@noble/hashes" "1.3.0" - -"@noble/curves@^1.4.2": - version "1.6.0" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz" - integrity sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ== - dependencies: - "@noble/hashes" "1.5.0" - -"@noble/curves@~1.1.0", "@noble/curves@1.1.0": +"@noble/curves@1.1.0", "@noble/curves@~1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz" integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== @@ -2543,26 +1654,18 @@ dependencies: "@noble/hashes" "1.3.2" +"@noble/curves@^0.9.0": + version "0.9.1" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz" + integrity sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ== + dependencies: + "@noble/hashes" "1.3.0" + "@noble/ed25519@^1.6.1": version "1.7.3" resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz" integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== -"@noble/hashes@^1": - version "1.4.0" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz" - integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== - -"@noble/hashes@^1.1.5", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1", "@noble/hashes@1.3.2": - version "1.3.2" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - -"@noble/hashes@^1.4.0", "@noble/hashes@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz" - integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA== - "@noble/hashes@1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz" @@ -2578,32 +1681,21 @@ resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz" integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== +"@noble/hashes@1.3.2", "@noble/hashes@^1.1.5", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/hashes@^1": + version "1.4.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + "@noble/secp256k1@1.7.1": version "1.7.1" resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - "@npmcli/fs@^1.0.0": version "1.1.1" resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz" @@ -2620,10 +1712,10 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@opencensus/core@^0.0.8": - version "0.0.8" - resolved "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz" - integrity sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ== +"@opencensus/core@0.0.9": + version "0.0.9" + resolved "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz" + integrity sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q== dependencies: continuation-local-storage "^3.2.1" log-driver "^1.2.7" @@ -2631,10 +1723,10 @@ shimmer "^1.2.0" uuid "^3.2.1" -"@opencensus/core@0.0.9": - version "0.0.9" - resolved "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz" - integrity sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q== +"@opencensus/core@^0.0.8": + version "0.0.8" + resolved "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz" + integrity sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ== dependencies: continuation-local-storage "^3.2.1" log-driver "^1.2.7" @@ -2831,7 +1923,7 @@ ed2curve "^0.3.0" tweetnacl "^1.0.3" -"@polkadot/util@*", "@polkadot/util@^10.1.11", "@polkadot/util@10.4.2": +"@polkadot/util@10.4.2", "@polkadot/util@^10.1.11": version "10.4.2" resolved "https://registry.npmjs.org/@polkadot/util/-/util-10.4.2.tgz" integrity sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA== @@ -2910,7 +2002,7 @@ dependencies: "@babel/runtime" "^7.20.13" -"@polkadot/x-randomvalues@*", "@polkadot/x-randomvalues@10.4.2": +"@polkadot/x-randomvalues@10.4.2": version "10.4.2" resolved "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.4.2.tgz" integrity sha512-mf1Wbpe7pRZHO0V3V89isPLqZOy5XGX2bCqsfUWHgb1NvV1MMx5TjVjdaYyNlGTiOkAmJKlOHshcfPU2sYWpNg== @@ -2999,304 +2091,12 @@ dependencies: "@randlabs/communication-bridge" "1.0.1" -"@react-native-community/cli-clean@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-14.1.0.tgz" - integrity sha512-/C4j1yntLo6faztNgZnsDtgpGqa6j0+GYrxOY8LqaKAN03OCnoeUUKO6w78dycbYSGglc1xjJg2RZI/M2oF2AA== - dependencies: - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - execa "^5.0.0" - fast-glob "^3.3.2" - -"@react-native-community/cli-config@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-14.1.0.tgz" - integrity sha512-P3FK2rPUJBD1fmQHLgTqpHxsc111pnMdEEFR7KeqprCNz+Qr2QpPxfNy0V7s15tGL5rAv+wpbOGcioIV50EbxA== - dependencies: - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - cosmiconfig "^9.0.0" - deepmerge "^4.3.0" - fast-glob "^3.3.2" - joi "^17.2.1" - -"@react-native-community/cli-debugger-ui@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-14.1.0.tgz" - integrity sha512-+YbeCL0wLcBcqDwraJFGsqzcXu9S+bwTVrfImne/4mT6itfe3Oa93yrOVJgNbstrt5pJHuwpU76ZXfXoiuncsg== - dependencies: - serve-static "^1.13.1" - -"@react-native-community/cli-doctor@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-14.1.0.tgz" - integrity sha512-xIf0oQDRKt7lufUenRwcLYdINGc0x1FSXHaHjd7lQDGT5FJnCEYlIkYEDDgAl5tnVJSvM/IL2c6O+mffkNEPzQ== - dependencies: - "@react-native-community/cli-config" "14.1.0" - "@react-native-community/cli-platform-android" "14.1.0" - "@react-native-community/cli-platform-apple" "14.1.0" - "@react-native-community/cli-platform-ios" "14.1.0" - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - command-exists "^1.2.8" - deepmerge "^4.3.0" - envinfo "^7.13.0" - execa "^5.0.0" - node-stream-zip "^1.9.1" - ora "^5.4.1" - semver "^7.5.2" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - yaml "^2.2.1" - -"@react-native-community/cli-platform-android@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-14.1.0.tgz" - integrity sha512-4JnXkAV+ca8XdUhZ7xjgDhXAMwTVjQs8JqiwP7FTYVrayShXy2cBXm/C3HNDoe+oQOF5tPT2SqsDAF2vYTnKiQ== - dependencies: - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - execa "^5.0.0" - fast-glob "^3.3.2" - fast-xml-parser "^4.4.1" - logkitty "^0.7.1" - -"@react-native-community/cli-platform-apple@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-14.1.0.tgz" - integrity sha512-DExd+pZ7hHxXt8I6BBmckeYUxxq7PQ+o4YSmGIeQx0xUpi+f82obBct2WNC3VWU72Jw6obwfoN6Fwe6F7Wxp5Q== - dependencies: - "@react-native-community/cli-tools" "14.1.0" - chalk "^4.1.2" - execa "^5.0.0" - fast-glob "^3.3.2" - fast-xml-parser "^4.4.1" - ora "^5.4.1" - -"@react-native-community/cli-platform-ios@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-14.1.0.tgz" - integrity sha512-ah/ZTiJXUdCVHujyRJ4OmCL5nTq8OWcURcE3UXa1z0sIIiA8io06n+v5n299T9rtPKMwRtVJlQjtO/nbODABPQ== - dependencies: - "@react-native-community/cli-platform-apple" "14.1.0" - -"@react-native-community/cli-server-api@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-14.1.0.tgz" - integrity sha512-1k2LBQaYsy9RDWFIfKVne3frOye73O33MV6eYMoRPff7wqxHCrsX1CYJQkmwpgVigZHxYwalHj+Axtu3gpomCA== - dependencies: - "@react-native-community/cli-debugger-ui" "14.1.0" - "@react-native-community/cli-tools" "14.1.0" - compression "^1.7.1" - connect "^3.6.5" - errorhandler "^1.5.1" - nocache "^3.0.1" - pretty-format "^26.6.2" - serve-static "^1.13.1" - ws "^6.2.3" - -"@react-native-community/cli-tools@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-14.1.0.tgz" - integrity sha512-r1KxSu2+OSuhWFoE//1UR7aSTXMLww/UYWQprEw4bSo/kvutGX//4r9ywgXSWp+39udpNN4jQpNTHuWhGZd/Bg== - dependencies: - appdirsjs "^1.2.4" - chalk "^4.1.2" - execa "^5.0.0" - find-up "^5.0.0" - mime "^2.4.1" - open "^6.2.0" - ora "^5.4.1" - semver "^7.5.2" - shell-quote "^1.7.3" - sudo-prompt "^9.0.0" - -"@react-native-community/cli-types@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-14.1.0.tgz" - integrity sha512-aJwZI9mGRx3HdP8U4CGhqjt3S4r8GmeOqv4kRagC1UHDk4QNMC+bZ8JgPA4W7FrGiPey+lJQHMDPAXOo51SOUw== - dependencies: - joi "^17.2.1" - -"@react-native-community/cli@14.1.0": - version "14.1.0" - resolved "https://registry.npmjs.org/@react-native-community/cli/-/cli-14.1.0.tgz" - integrity sha512-k7aTdKNZIec7WMSqMJn9bDVLWPPOaYmshXcnjWy6t5ItsJnREju9p2azMTR5tXY5uIeynose3cxettbhk2Tbnw== - dependencies: - "@react-native-community/cli-clean" "14.1.0" - "@react-native-community/cli-config" "14.1.0" - "@react-native-community/cli-debugger-ui" "14.1.0" - "@react-native-community/cli-doctor" "14.1.0" - "@react-native-community/cli-server-api" "14.1.0" - "@react-native-community/cli-tools" "14.1.0" - "@react-native-community/cli-types" "14.1.0" - chalk "^4.1.2" - commander "^9.4.1" - deepmerge "^4.3.0" - execa "^5.0.0" - find-up "^5.0.0" - fs-extra "^8.1.0" - graceful-fs "^4.1.3" - prompts "^2.4.2" - semver "^7.5.2" - -"@react-native/assets-registry@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.75.4.tgz" - integrity sha512-WX6/LNHwyjislSFM+h3qQjBiPaXXPJW5ZV4TdgNKb6QOPO0g1KGYRQj44cI2xSpZ3fcWrvQFZfQgSMbVK9Sg7A== - -"@react-native/babel-plugin-codegen@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.75.4.tgz" - integrity sha512-gu5ZRIdr7+ufi09DJROhfDtbF4biTnCDJqtqcmtsku4cXOXPHE36QbC/vAmKEZ0PMPURBI8lwF2wfaeHLn7gig== - dependencies: - "@react-native/codegen" "0.75.4" - -"@react-native/babel-preset@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.75.4.tgz" - integrity sha512-UtyYCDJ3rZIeggyFEfh/q5t/FZ5a1h9F8EI37Nbrwyk/OKPH+1XS4PbHROHJzBARlJwOAfmT75+ovYUO0eakJA== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-generator-functions" "^7.24.3" - "@babel/plugin-transform-async-to-generator" "^7.20.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-class-properties" "^7.24.1" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.20.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" - "@babel/plugin-transform-numeric-separator" "^7.24.1" - "@babel/plugin-transform-object-rest-spread" "^7.24.5" - "@babel/plugin-transform-optional-catch-binding" "^7.24.1" - "@babel/plugin-transform-optional-chaining" "^7.24.5" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-regenerator" "^7.20.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "0.75.4" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.14.0" - -"@react-native/codegen@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.75.4.tgz" - integrity sha512-0FplNAD/S5FUvm8YIn6uyarOcP4jdJPqWz17K4a/Gp2KSsG/JJKEskX3aj5wpePzVfNQl3WyvBJ0whODdCocIA== - dependencies: - "@babel/parser" "^7.20.0" - glob "^7.1.1" - hermes-parser "0.22.0" - invariant "^2.2.4" - jscodeshift "^0.14.0" - mkdirp "^0.5.1" - nullthrows "^1.1.1" - yargs "^17.6.2" - -"@react-native/community-cli-plugin@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.75.4.tgz" - integrity sha512-k/hevYPjEpW0MNVVyb3v9PJosOP+FzenS7+oqYNLXdEmgTnGHrAtYX9ABrJJgzeJt7I6g8g+RDvm8PSE+tnM5w== - dependencies: - "@react-native-community/cli-server-api" "14.1.0" - "@react-native-community/cli-tools" "14.1.0" - "@react-native/dev-middleware" "0.75.4" - "@react-native/metro-babel-transformer" "0.75.4" - chalk "^4.0.0" - execa "^5.1.1" - metro "^0.80.3" - metro-config "^0.80.3" - metro-core "^0.80.3" - node-fetch "^2.2.0" - readline "^1.3.0" - -"@react-native/debugger-frontend@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.75.4.tgz" - integrity sha512-QfGurR5hV6bhMPn/6VxS2RomYrPRFGwA03jJr+zKyWHnxDAu5jOqYVyKAktIIbhYe5sPp78QVl1ZYuhcnsRbEw== - -"@react-native/dev-middleware@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.75.4.tgz" - integrity sha512-UhyBeQOG2wNcvrUGw3+IBrHBk/lIu7hHGmWt4j8W9Aqv9BwktHKkPyko+5A1yoUeO1O/VDnHWYqWeOejcA9wpQ== - dependencies: - "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.75.4" - chrome-launcher "^0.15.2" - chromium-edge-launcher "^0.2.0" - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - nullthrows "^1.1.1" - open "^7.0.3" - selfsigned "^2.4.1" - serve-static "^1.13.1" - ws "^6.2.2" - -"@react-native/gradle-plugin@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.75.4.tgz" - integrity sha512-kKTmw7cF7p1raT30DC0L6N+xiVXN7dlRy0J+hYPiCRRVHplwgvyS7pszjxfzwXmHFqOxwpxQVI3du8opsma1Mg== - -"@react-native/js-polyfills@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.75.4.tgz" - integrity sha512-NF5ID5FjcVHBYk1LQ4JMRjPmxBWEo4yoqW1m6vGOQZPT8D5Qs9afgx3f7gQatxbn3ivMh0FVbLW0zBx6LyxEzA== - -"@react-native/metro-babel-transformer@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.75.4.tgz" - integrity sha512-O0WMW/K8Ny/MAAeRebqGEQhrbzcioxcPHZtos+EH2hWeBTEKHQV8fMYYxfYDabpr392qdhSBwg3LlXUD4U3PXQ== - dependencies: - "@babel/core" "^7.20.0" - "@react-native/babel-preset" "0.75.4" - hermes-parser "0.22.0" - nullthrows "^1.1.1" - -"@react-native/normalize-colors@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.75.4.tgz" - integrity sha512-90QrQDLg0/k9xqYesaKuIkayOSjD+FKa0hsHollbwT5h3kuGMY+lU7UZxnb8tU55Y1PKdvjYxqQsYWI/ql79zA== - -"@react-native/virtualized-lists@0.75.4": - version "0.75.4" - resolved "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.75.4.tgz" - integrity sha512-iEauRiXjvWG/iOH8bV+9MfepCS+72cuL5rhkrenYZS0NUnDcNjF+wtaoS9+Gx5z1UJOfEXxSmyXRtQJZne8SnA== - dependencies: - invariant "^2.2.4" - nullthrows "^1.1.1" - "@redis/bloom@1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz" integrity sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg== -"@redis/client@^1.0.0", "@redis/client@1.5.11": +"@redis/client@1.5.11": version "1.5.11" resolved "https://registry.npmjs.org/@redis/client/-/client-1.5.11.tgz" integrity sha512-cV7yHcOAtNQ5x/yQl7Yw1xf53kO0FNDTdDU6bFIMbW6ljB7U7ns0YRM+QIkpoqTAt6zK5k9Fq0QWlUbLcq9AvA== @@ -3325,16 +2125,16 @@ resolved "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.5.tgz" integrity sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg== -"@scure/base@~1.1.0": - version "1.1.3" - resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz" - integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== - "@scure/base@1.1.1": version "1.1.1" resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz" integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== +"@scure/base@~1.1.0": + version "1.1.3" + resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz" + integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== + "@scure/bip32@1.3.1": version "1.3.1" resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz" @@ -3352,23 +2152,6 @@ "@noble/hashes" "~1.3.0" "@scure/base" "~1.1.0" -"@sideway/address@^4.1.5": - version "4.1.5" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz" - integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@simplewebauthn/iso-webcrypto@^7.4.0": version "7.4.0" resolved "https://registry.npmjs.org/@simplewebauthn/iso-webcrypto/-/iso-webcrypto-7.4.0.tgz" @@ -3401,25 +2184,6 @@ resolved "https://registry.npmjs.org/@simplewebauthn/typescript-types/-/typescript-types-7.4.0.tgz" integrity sha512-8/ZjHeUPe210Bt5oyaOIGx4h8lHdsQs19BiOT44gi/jBEgK7uBGA0Fy7NRsyh777al3m6WM0mBf0UR7xd4R7WQ== -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@smithy/types@^2.3.5": version "2.3.5" resolved "https://registry.npmjs.org/@smithy/types/-/types-2.3.5.tgz" @@ -3427,13 +2191,6 @@ dependencies: tslib "^2.5.0" -"@solana/buffer-layout@^4.0.1": - version "4.0.1" - resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz" - integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - dependencies: - buffer "~6.0.3" - "@solana/wallet-adapter-base@^0.9.2": version "0.9.23" resolved "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.23.tgz" @@ -3452,27 +2209,6 @@ "@wallet-standard/base" "^1.0.1" "@wallet-standard/features" "^1.0.3" -"@solana/web3.js@^1.77.3": - version "1.95.3" - resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.3.tgz" - integrity sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og== - dependencies: - "@babel/runtime" "^7.25.0" - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@solana/buffer-layout" "^4.0.1" - agentkeepalive "^4.5.0" - bigint-buffer "^1.1.5" - bn.js "^5.2.1" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.3" - fast-stable-stringify "^1.0.0" - jayson "^4.1.1" - node-fetch "^2.7.0" - rpc-websockets "^9.0.2" - superstruct "^2.0.2" - "@spruceid/siwe-parser@1.1.3": version "1.1.3" resolved "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-1.1.3.tgz" @@ -3510,13 +2246,6 @@ resolved "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.47.0.tgz" integrity sha512-6kuIJedRcisUJS2pgksEH2jZf3hfSIVzqtFzs/AyjTW3ETbMg5q1Bb7VWa0WYaT6dTrEXp/6UoXM5B9pSIUmcw== -"@swc/helpers@^0.5.11": - version "0.5.13" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz" - integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== - dependencies: - tslib "^2.4.0" - "@terran-one/cosmwasm-vm-js@^0.2.16": version "0.2.16" resolved "https://registry.npmjs.org/@terran-one/cosmwasm-vm-js/-/cosmwasm-vm-js-0.2.16.tgz" @@ -3565,13 +2294,6 @@ dependencies: "@types/node" "*" -"@types/bn.js@^4.11.3": - version "4.11.6" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - "@types/bn.js@5.1.1": version "5.1.1" resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz" @@ -3579,6 +2301,13 @@ dependencies: "@types/node" "*" +"@types/bn.js@^4.11.3": + version "4.11.6" + resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + "@types/body-parser@*": version "1.19.5" resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz" @@ -3599,7 +2328,7 @@ dependencies: "@types/cli-color" "*" -"@types/connect@*", "@types/connect@^3.4.33": +"@types/connect@*": version "3.4.38" resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz" integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== @@ -3685,37 +2414,11 @@ "@types/through" "*" rxjs "^7.2.0" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.6" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - "@types/keygrip@*": version "1.0.6" resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz" integrity sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ== -"@types/koa__cors@^3.0.1": - version "3.3.1" - resolved "https://registry.npmjs.org/@types/koa__cors/-/koa__cors-3.3.1.tgz" - integrity sha512-aFGYhTFW7651KhmZZ05VG0QZJre7QxBxDj2LF1lf6GA/wSXEfKVAJxiQQWzRV4ZoMzQIO8vJBXKsUcRuvYK9qw== - dependencies: - "@types/koa" "*" - "@types/koa-bodyparser@^4.3.0": version "4.3.12" resolved "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.12.tgz" @@ -3744,6 +2447,13 @@ "@types/koa-compose" "*" "@types/node" "*" +"@types/koa__cors@^3.0.1": + version "3.3.1" + resolved "https://registry.npmjs.org/@types/koa__cors/-/koa__cors-3.3.1.tgz" + integrity sha512-aFGYhTFW7651KhmZZ05VG0QZJre7QxBxDj2LF1lf6GA/wSXEfKVAJxiQQWzRV4ZoMzQIO8vJBXKsUcRuvYK9qw== + dependencies: + "@types/koa" "*" + "@types/long@^4.0.0", "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" @@ -3772,13 +2482,6 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== - dependencies: - "@types/node" "*" - "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "20.8.5" resolved "https://registry.npmjs.org/@types/node/-/node-20.8.5.tgz" @@ -3786,6 +2489,11 @@ dependencies: undici-types "~5.25.1" +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + "@types/node@^10.1.0": version "10.17.60" resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" @@ -3796,21 +2504,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - "@types/node@^18.11.9": version "18.18.5" resolved "https://registry.npmjs.org/@types/node/-/node-18.18.5.tgz" integrity sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A== -"@types/node@18.15.13": - version "18.15.13" - resolved "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz" - integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - "@types/pbkdf2@^3.0.0": version "3.1.0" resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz" @@ -3859,11 +2557,6 @@ "@types/mime" "*" "@types/node" "*" -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - "@types/through@*": version "0.0.33" resolved "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz" @@ -3871,44 +2564,6 @@ dependencies: "@types/node" "*" -"@types/uuid@^8.3.4": - version "8.3.4" - resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" - integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== - -"@types/ws@^7.4.4": - version "7.4.7" - resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" - integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - dependencies: - "@types/node" "*" - -"@types/ws@^8.2.2": - version "8.5.12" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz" - integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^15.0.0": - version "15.0.19" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz" - integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== - dependencies: - "@types/yargs-parser" "*" - "@types/yauzl@^2.9.1": version "2.10.1" resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz" @@ -4077,6 +2732,11 @@ randombytes "^2.1.0" tslib "1.14.1" +"@walletconnect/safe-json@1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz" + integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== + "@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": version "1.0.2" resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz" @@ -4084,11 +2744,6 @@ dependencies: tslib "1.14.1" -"@walletconnect/safe-json@1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz" - integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== - "@walletconnect/signer-connection@^1.7.8": version "1.8.0" resolved "https://registry.npmjs.org/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz" @@ -4128,7 +2783,7 @@ js-sha3 "0.8.0" query-string "6.13.5" -"@walletconnect/window-getters@^1.0.0", "@walletconnect/window-getters@1.0.0": +"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== @@ -4170,7 +2825,7 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.4: module-error "^1.0.1" queue-microtask "^1.2.3" -accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: +accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -4180,35 +2835,20 @@ accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: acorn-walk@^8.2.0: version "8.3.4" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0: - version "8.12.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -acorn@^8.7.0: - version "8.12.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -acorn@^8.8.2: - version "8.12.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" acorn@7.1.1: version "7.1.1" resolved "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== -aes-js@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== +acorn@^8.11.0, acorn@^8.7.0: + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== aes-js@3.0.0: version "3.0.0" @@ -4220,7 +2860,12 @@ aes-js@4.0.0-beta.5: resolved "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz" integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== -agent-base@^6.0.2, agent-base@6: +aes-js@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz" + integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== + +agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -4234,7 +2879,7 @@ agent-base@^7.0.2, agent-base@^7.1.0: dependencies: debug "^4.3.4" -agentkeepalive@^4.1.3, agentkeepalive@^4.5.0: +agentkeepalive@^4.1.3: version "4.5.0" resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz" integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== @@ -4288,26 +2933,21 @@ amp-message@~0.1.1: dependencies: amp "0.3.1" -amp@~0.3.1, amp@0.3.1: +amp@0.3.1, amp@~0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz" integrity sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw== -anser@^1.4.9: - version "1.4.10" - resolved "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz" - integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" @@ -4315,15 +2955,6 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" -ansi-fragments@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz" - integrity sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w== - dependencies: - colorette "^1.0.7" - slice-ansi "^2.0.0" - strip-ansi "^5.0.0" - ansi-regex@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" @@ -4334,19 +2965,12 @@ ansi-regex@^4.1.0: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.0: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -4360,12 +2984,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: +anymatch@~3.1.1, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -4373,10 +2992,10 @@ anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aonote@^0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/aonote/-/aonote-0.8.2.tgz" - integrity sha512-CZNXHm4ApPCIHWbAkMHulobxN3aaRxoB36mAQfc5ekOSQ5qI1tUIAVSzAUmmYd/eQZxnZY9rtexhI6KFKy7arA== +aonote@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/aonote/-/aonote-0.8.3.tgz#52ce470ac867daf16af7745fdaba5f738abf8f30" + integrity sha512-v+jgz8pKn+brD3RrpqMFnxrj8hBRBBSlzrQgoKrjFrm0OF9wZaWaWwvWAS9CxrjL/0m3DXIc3f7Ytq1jJMhXcQ== dependencies: "@babel/plugin-transform-modules-commonjs" "^7.24.8" "@permaweb/aoconnect" "^0.0.59" @@ -4454,9 +3073,9 @@ apollo-server-koa@^3.6.2: "@koa/cors" "^3.1.0" "@types/accepts" "^1.3.5" "@types/koa" "^2.11.6" - "@types/koa__cors" "^3.0.1" "@types/koa-bodyparser" "^4.3.0" "@types/koa-compose" "^3.2.5" + "@types/koa__cors" "^3.0.1" accepts "^1.3.7" apollo-server-core "^3.13.0" apollo-server-types "^3.8.0" @@ -4487,11 +3106,6 @@ apollo-server-types@^3.8.0: dependencies: sylvester ">= 0.0.8" -appdirsjs@^1.2.4: - version "1.2.7" - resolved "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz" - integrity sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw== - "aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" @@ -4695,16 +3309,6 @@ arweave-stream-tx@^1.1.0: dependencies: exponential-backoff "^3.1.0" -arweave@^1.10.0, arweave@^1.10.13, arweave@^1.10.5, arweave@^1.11.4, arweave@^1.12.2, arweave@^1.13.7, arweave@^1.14.4, arweave@^1.15.0, arweave@^1.15.1: - version "1.15.5" - resolved "https://registry.npmjs.org/arweave/-/arweave-1.15.5.tgz" - integrity sha512-Zj3b8juz1ZtDaQDPQlzWyk2I4wZPx3RmcGq8pVJeZXl2Tjw0WRy5ueHPelxZtBLqCirGoZxZEAFRs6SZUSCBjg== - dependencies: - arconnect "^0.4.2" - asn1.js "^5.4.1" - base64-js "^1.5.1" - bignumber.js "^9.0.2" - arweave@1.11.6: version "1.11.6" resolved "https://registry.npmjs.org/arweave/-/arweave-1.11.6.tgz" @@ -4737,12 +3341,17 @@ arweave@1.14.4: base64-js "^1.5.1" bignumber.js "^9.0.2" -asap@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +arweave@^1.10.13, arweave@^1.10.5, arweave@^1.11.4, arweave@^1.12.2, arweave@^1.13.7, arweave@^1.14.4, arweave@^1.15.0, arweave@^1.15.1: + version "1.15.5" + resolved "https://registry.npmjs.org/arweave/-/arweave-1.15.5.tgz" + integrity sha512-Zj3b8juz1ZtDaQDPQlzWyk2I4wZPx3RmcGq8pVJeZXl2Tjw0WRy5ueHPelxZtBLqCirGoZxZEAFRs6SZUSCBjg== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + base64-js "^1.5.1" + bignumber.js "^9.0.2" -asn1.js@^5.4.1, asn1.js@5.4.1: +asn1.js@5.4.1, asn1.js@^5.4.1: version "5.4.1" resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -4773,23 +3382,6 @@ ast-types@^0.13.4: dependencies: tslib "^2.0.1" -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - async-listener@^0.6.0: version "0.6.10" resolved "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz" @@ -4812,7 +3404,7 @@ async-retry@^1.2.1, async-retry@^1.3.3: dependencies: retry "0.13.1" -async@^2.6.3: +async@^2.6.3, async@~2.6.1: version "2.6.4" resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -4829,13 +3421,6 @@ async@^3.2.3: resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz" integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== -async@~2.6.1: - version "2.6.4" - resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -4868,6 +3453,13 @@ aws-sdk@^2.1306.0: uuid "8.0.0" xml2js "0.5.0" +axios@0.26.0: + version "0.26.0" + resolved "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz" + integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og== + dependencies: + follow-redirects "^1.14.8" + axios@^0.21.0, axios@^0.21.3: version "0.21.4" resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" @@ -4892,54 +3484,11 @@ axios@^1.4.0: form-data "^4.0.0" proxy-from-env "^1.1.0" -axios@0.26.0: - version "0.26.0" - resolved "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz" - integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og== - dependencies: - follow-redirects "^1.14.8" - b4a@^1.0.1: version "1.6.6" resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz" integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== -babel-core@^7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.11" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" - integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.2" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" - -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" - integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - -babel-plugin-transform-flow-enums@^0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz" - integrity sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ== - dependencies: - "@babel/plugin-syntax-flow" "^7.12.1" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" @@ -4967,7 +3516,7 @@ basic-ftp@^5.0.2: resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz" integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== -bech32@^1.1.4, bech32@1.1.4: +bech32@1.1.4, bech32@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== @@ -4988,29 +3537,22 @@ bfj@^7.0.2: jsonpath "^1.1.1" tryer "^1.0.1" -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" +bignumber.js@9.1.1: + version "9.1.1" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== bignumber.js@^9.0.0, bignumber.js@^9.0.2, bignumber.js@^9.1.1, bignumber.js@^9.1.2: version "9.1.2" resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== -bignumber.js@9.1.1: - version "9.1.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz" - integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.3.0, bindings@^1.5.0: +bindings@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -5078,36 +3620,21 @@ bluebird@^3.7.2: resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bn.js@4.11.8: + version "4.11.8" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.12.0: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.2: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -bn.js@^5.1.3: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -bn.js@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -bn.js@^5.2.1: +bn.js@^5.1.2, bn.js@^5.1.3, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - bodec@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz" @@ -5131,15 +3658,6 @@ body-parser@1.20.2: type-is "~1.6.18" unpipe "1.0.0" -borsh@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" - integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== - dependencies: - bn.js "^5.2.0" - bs58 "^4.0.0" - text-encoding-utf-8 "^1.0.2" - bowser@^2.11.0: version "2.11.0" resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" @@ -5160,7 +3678,7 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.3, braces@~3.0.2: +braces@~3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== @@ -5199,16 +3717,6 @@ browserify-aes@^1.0.6, browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserslist@^4.23.3, browserslist@^4.24.0, "browserslist@>= 4.21.0": - version "4.24.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz" - integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== - dependencies: - caniuse-lite "^1.0.30001663" - electron-to-chromium "^1.5.28" - node-releases "^2.0.18" - update-browserslist-db "^1.1.0" - bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" @@ -5225,13 +3733,6 @@ bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" @@ -5284,15 +3785,16 @@ buffer-xor@^1.0.3: resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@^5.4.3: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== +buffer@4.9.2: + version "4.9.2" + resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" -buffer@^5.5.0: +buffer@^5.4.3, buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -5300,7 +3802,7 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3, buffer@6.0.3: +buffer@^6.0.2, buffer@^6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -5308,32 +3810,18 @@ buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3, buffer@6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -bufferutil@^4.0.1, bufferutil@^4.0.6: +bufferutil@^4.0.6: version "4.0.7" resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz" integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== dependencies: node-gyp-build "^4.3.0" -bytes@^3.1.0, bytes@^3.1.2, bytes@3.1.2: +bytes@3.1.2, bytes@^3.1.0, bytes@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - cacache@^15.2.0: version "15.3.0" resolved "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz" @@ -5377,45 +3865,16 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bin get-intrinsic "^1.2.4" set-function-length "^1.2.1" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - camelcase@^5.0.0: version "5.3.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.0.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001663: - version "1.0.30001668" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz" - integrity sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw== - catering@^2.1.0, catering@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" @@ -5455,6 +3914,14 @@ chai@^4.3.7: pathval "^1.1.1" type-detect "^4.0.8" +chalk@3.0.0, chalk@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -5464,7 +3931,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2, chalk@^4.x: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.x: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -5472,22 +3939,6 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2, chalk@^4.x ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chardet@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" @@ -5515,21 +3966,6 @@ check-types@^11.2.3: resolved "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz" integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== -chokidar@^3.5.3, chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - chokidar@3.5.1: version "3.5.1" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" @@ -5545,6 +3981,21 @@ chokidar@3.5.1: optionalDependencies: fsevents "~2.3.1" +chokidar@3.5.3, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" @@ -5555,38 +4006,6 @@ chownr@^2.0.0: resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chrome-launcher@^0.15.2: - version "0.15.2" - resolved "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz" - integrity sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ== - dependencies: - "@types/node" "*" - escape-string-regexp "^4.0.0" - is-wsl "^2.2.0" - lighthouse-logger "^1.0.0" - -chromium-edge-launcher@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz" - integrity sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg== - dependencies: - "@types/node" "*" - escape-string-regexp "^4.0.0" - is-wsl "^2.2.0" - lighthouse-logger "^1.0.0" - mkdirp "^1.0.4" - rimraf "^3.0.2" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" @@ -5661,15 +4080,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" @@ -5688,15 +4098,6 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" @@ -5749,30 +4150,25 @@ color-convert@^1.9.0: color-convert@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + color-support@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -colorette@^1.0.7: - version "1.4.0" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" - integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== - colorette@2.0.16: version "2.0.16" resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" @@ -5785,15 +4181,10 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -command-exists@^1.2.8: - version "1.2.9" - resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@2.15.1: + version "2.15.1" + resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== commander@^2.20.3: version "2.20.3" @@ -5805,21 +4196,6 @@ commander@^7.1.0: resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^9.4.1: - version "9.5.0" - resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== - -commander@2.15.1: - version "2.15.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz" - integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - compare-versions@^6.0.0-rc.1: version "6.1.1" resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz" @@ -5835,47 +4211,24 @@ compress-commons@^4.1.2: normalize-path "^3.0.0" readable-stream "^3.6.0" -compressible@^2.0.12, compressible@~2.0.16: +compressible@^2.0.12: version "2.0.18" resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" -compression@^1.7.1: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -connect@^3.6.5: - version "3.7.0" - resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -content-disposition@~0.5.2, content-disposition@0.5.4: +content-disposition@0.5.4, content-disposition@~0.5.2: version "0.5.4" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -5895,26 +4248,21 @@ continuation-local-storage@^3.2.1: async-listener "^0.6.0" emitter-listener "^1.1.1" -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@^0.4.0: - version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - cookie@0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== +cookie@^0.4.0: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + cookies@~0.9.0: version "0.9.1" resolved "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz" @@ -5935,13 +4283,6 @@ copy-to@^2.0.1: resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz" integrity sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w== -core-js-compat@^3.38.0, core-js-compat@^3.38.1: - version "3.38.1" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz" - integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== - dependencies: - browserslist "^4.23.3" - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" @@ -5955,26 +4296,6 @@ cors@^2.8.5: object-assign "^4" vary "^1" -cosmiconfig@^5.0.5: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" - integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - dependencies: - env-paths "^2.2.1" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - crc-32@^1.2.0: version "1.2.2" resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" @@ -6083,15 +4404,7 @@ cwao@^0.5.5: arweave "^1.15.0" ramda "^0.29.1" -d@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" - integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== - dependencies: - es5-ext "^0.10.64" - type "^2.7.2" - -d@^1.0.2, d@1: +d@1, d@^1.0.1, d@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== @@ -6106,14 +4419,6 @@ d@~0.1.1: dependencies: es5-ext "~0.10.2" -d@1: - version "1.0.2" - resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" - integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== - dependencies: - es5-ext "^0.10.64" - type "^2.7.2" - data-uri-to-buffer@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz" @@ -6156,7 +4461,7 @@ dateformat@^3.0.3: resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -dayjs@^1.8.15, dayjs@~1.11.5: +dayjs@~1.11.5: version "1.11.10" resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== @@ -6179,48 +4484,20 @@ debounce@^1.0.0: resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^2.6.9: +debug@2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.2.6: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@4, debug@4.3.4: +debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^4.3.6: - version "4.3.7" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" @@ -6235,6 +4512,20 @@ debug@4.3.2: dependencies: ms "2.1.2" +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.3.6: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" @@ -6279,11 +4570,6 @@ deep-is@~0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.3.0: - version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - defaults@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" @@ -6318,11 +4604,6 @@ degenerator@^5.0.0: escodegen "^2.1.0" esprima "^4.0.1" -delay@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" - integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -6333,12 +4614,7 @@ delegates@^1.0.0: resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz" - integrity sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg== - -depd@^2.0.0, depd@~2.0.0, depd@2.0.0: +depd@2.0.0, depd@^2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -6348,7 +4624,7 @@ depd@~1.1.2: resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -destroy@^1.0.4, destroy@1.2.0: +destroy@1.2.0, destroy@^1.0.4: version "1.2.0" resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== @@ -6416,7 +4692,7 @@ eccrypto@1.1.6: optionalDependencies: secp256k1 "3.7.1" -ecdsa-sig-formatter@^1.0.11, ecdsa-sig-formatter@1.0.11: +ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== @@ -6449,12 +4725,7 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.5.28: - version "1.5.36" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz" - integrity sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw== - -elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4, elliptic@6.5.4: +elliptic@6.5.4, elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -6489,7 +4760,7 @@ encodeurl@^1.0.2, encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.0, encoding@^0.1.12: +encoding@^0.1.12: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -6515,43 +4786,16 @@ ent@^2.2.0: resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== -env-paths@^2.2.0, env-paths@^2.2.1: +env-paths@^2.2.0: version "2.2.1" resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -envinfo@^7.13.0: - version "7.14.0" - resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz" - integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== - err-code@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.6: - version "2.1.4" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" - integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== - dependencies: - stackframe "^1.3.4" - -errorhandler@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz" - integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== - dependencies: - accepts "~1.3.7" - escape-html "~1.0.3" - es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: version "1.23.3" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz" @@ -6669,27 +4913,12 @@ es6-iterator@~0.1.3: es5-ext "~0.10.5" es6-symbol "~2.0.1" -es6-promise@^4.0.3, es6-promise@4.2.8: +es6-promise@4.2.8: version "4.2.8" resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" - integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - dependencies: - es6-promise "^4.0.3" - -es6-symbol@^3.1.1: - version "3.1.4" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz" - integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== - dependencies: - d "^1.0.2" - ext "^1.7.0" - -es6-symbol@^3.1.3: +es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.4" resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz" integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== @@ -6715,7 +4944,7 @@ es6-weak-map@~0.1.4: es6-iterator "~0.1.3" es6-symbol "~2.0.1" -escalade@^3.1.1, escalade@^3.2.0: +escalade@^3.1.1: version "3.2.0" resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== @@ -6725,21 +4954,16 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@^1.8.1: version "1.14.3" resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" @@ -6778,16 +5002,16 @@ esniff@^2.0.1: event-emitter "^0.3.5" type "^2.7.2" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esprima@1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz" integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + estraverse@^4.2.0: version "4.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" @@ -6860,20 +5084,18 @@ ethereumjs-abi@^0.6.8: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-util@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== +ethereumjs-util@7.1.5, ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" create-hash "^1.1.2" - elliptic "^6.5.2" ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" + rlp "^2.2.4" -ethereumjs-util@^6.2.1: +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== @@ -6886,18 +5108,7 @@ ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.1.5, ethereumjs-util@7.1.5: - version "7.1.5" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - rlp "^2.2.4" - -ethers@^5.5.1: +ethers@5.7.2, ethers@^5.5.1: version "5.7.2" resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -6946,43 +5157,7 @@ ethers@^6.8.0: tslib "2.4.0" ws "8.5.0" -ethers@5.7.2: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - -ethjs-util@^0.1.6, ethjs-util@0.1.6: +ethjs-util@0.1.6, ethjs-util@^0.1.6: version "0.1.6" resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== @@ -7011,11 +5186,16 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -event-target-shim@^5.0.0, event-target-shim@^5.0.1: +event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +eventemitter2@5.0.1, eventemitter2@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz" + integrity sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg== + eventemitter2@^6.3.1: version "6.4.9" resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz" @@ -7026,31 +5206,21 @@ eventemitter2@~0.4.14: resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" integrity sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ== -eventemitter2@~5.0.1, eventemitter2@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz" - integrity sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg== - -eventemitter3@^4.0.7, eventemitter3@4.0.7: +eventemitter3@4.0.7, eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -events@^3.3.0, events@3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - events@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== +events@3.3.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" @@ -7059,27 +5229,12 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^5.0.0, execa@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - expand-template@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -exponential-backoff@^3.1.0, exponential-backoff@^3.1.1: +exponential-backoff@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== @@ -7153,11 +5308,6 @@ extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -eyes@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - fast-base64-decode@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz" @@ -7168,17 +5318,6 @@ fast-copy@^3.0.0: resolved "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz" integrity sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ== -fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-patch@^3.0.0-1: version "3.1.1" resolved "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz" @@ -7194,17 +5333,12 @@ fast-levenshtein@~2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-stable-stringify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" - integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - fast-text-encoding@^1.0.0: version "1.0.6" resolved "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz" integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== -fast-xml-parser@^4.2.2, fast-xml-parser@^4.4.1: +fast-xml-parser@^4.2.2: version "4.5.0" resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz" integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== @@ -7216,21 +5350,7 @@ fastfile@0.0.20: resolved "https://registry.npmjs.org/fastfile/-/fastfile-0.0.20.tgz" integrity sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA== -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fclone@~1.0.11, fclone@1.0.11: +fclone@1.0.11, fclone@~1.0.11: version "1.0.11" resolved "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz" integrity sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw== @@ -7249,20 +5369,20 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4, fetch-blob@^3.2.0: dependencies: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" - -ffjavascript@^0.2.45: - version "0.2.63" - resolved "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.63.tgz" - integrity sha512-dBgdsfGks58b66JnUZeZpGxdMIDQ4QsD3VYlRJyFVrKQHb2kJy4R2gufx5oetrTxXPT+aEjg0dOvOLg1N0on4A== + +ffjavascript@0.3.0, ffjavascript@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.3.0.tgz" + integrity sha512-l7sR5kmU3gRwDy8g0Z2tYBXy5ttmafRPFOqY7S6af5cq51JqJWt5eQ/lSR/rs2wQNbDYaYlQr5O+OSUf/oMLoQ== dependencies: wasmbuilder "0.0.16" wasmcurves "0.2.2" web-worker "1.2.0" -ffjavascript@^0.3.0, ffjavascript@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.3.0.tgz" - integrity sha512-l7sR5kmU3gRwDy8g0Z2tYBXy5ttmafRPFOqY7S6af5cq51JqJWt5eQ/lSR/rs2wQNbDYaYlQr5O+OSUf/oMLoQ== +ffjavascript@^0.2.45: + version "0.2.63" + resolved "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.63.tgz" + integrity sha512-dBgdsfGks58b66JnUZeZpGxdMIDQ4QsD3VYlRJyFVrKQHb2kJy4R2gufx5oetrTxXPT+aEjg0dOvOLg1N0on4A== dependencies: wasmbuilder "0.0.16" wasmcurves "0.2.2" @@ -7306,19 +5426,6 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" @@ -7332,14 +5439,13 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" + locate-path "^6.0.0" + path-exists "^4.0.0" find-up@^3.0.0: version "3.0.0" @@ -7348,37 +5454,11 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0, find-up@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - flat@^5.0.2: version "5.0.2" resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flow-enums-runtime@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz" - integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== - -flow-parser@0.*: - version "0.248.1" - resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.248.1.tgz" - integrity sha512-fkCfVPelbTzSVp+jVwSvEyc+I4WG8MNhRG/EWSZZTlgHAMEdhXJaFEbfErXxMktboMhVGchvEFhWxkzNGM1m2A== - follow-redirects@^1.14.0, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.0: version "1.15.3" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" @@ -7433,7 +5513,7 @@ fpjson-lang@^0.1.5: dependencies: ramda "^0.28.0" -fresh@~0.5.2, fresh@0.5.2: +fresh@0.5.2, fresh@~0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== @@ -7469,6 +5549,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.1, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -7550,11 +5635,6 @@ generic-pool@3.9.0: resolved "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz" integrity sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g== -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" @@ -7588,11 +5668,6 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" @@ -7632,25 +5707,13 @@ github-from-package@0.0.0: resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@^7.0.5, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.2.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.6: version "7.1.6" resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" @@ -7674,6 +5737,18 @@ glob@8.1.0: minimatch "^5.0.1" once "^1.3.0" +glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" @@ -7748,7 +5823,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -7760,16 +5835,16 @@ graphql-tag@^2.11.0: dependencies: tslib "^2.1.0" -"graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", "graphql@^14.2.1 || ^15.0.0 || ^16.0.0", "graphql@^15.3.0 || ^16.0.0", graphql@^16.2.0, "graphql@14.x || 15.x || 16.x": - version "16.8.1" - resolved "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== - graphql@15.8.0: version "15.8.0" resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== +graphql@^16.2.0: + version "16.8.1" + resolved "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz" + integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== + growl@1.10.5: version "1.10.5" resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" @@ -7863,7 +5938,7 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7, hash.js@1.1.7: +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -7883,30 +5958,6 @@ he@1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hermes-estree@0.22.0: - version "0.22.0" - resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.22.0.tgz" - integrity sha512-FLBt5X9OfA8BERUdc6aZS36Xz3rRuB0Y/mfocSADWEJfomc1xfene33GdyAmtTkKTBXTN/EgAy+rjTKkkZJHlw== - -hermes-estree@0.23.1: - version "0.23.1" - resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz" - integrity sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg== - -hermes-parser@0.22.0: - version "0.22.0" - resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.22.0.tgz" - integrity sha512-gn5RfZiEXCsIWsFGsKiykekktUoh0PdFWYocXsUdZIyWSckT6UIyPcyyUIPSR3kpnELWeK3n3ztAse7Mat6PSA== - dependencies: - hermes-estree "0.22.0" - -hermes-parser@0.23.1: - version "0.23.1" - resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz" - integrity sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA== - dependencies: - hermes-estree "0.23.1" - hi-base32@^0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz" @@ -7939,29 +5990,18 @@ http-cache-semantics@^4.1.0: resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@^1.6.3: - version "1.8.1" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - -http-errors@^1.7.3: - version "1.8.1" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" -http-errors@~1.8.0: +http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0: version "1.8.1" resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== @@ -7972,17 +6012,6 @@ http-errors@~1.8.0: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" @@ -8025,11 +6054,6 @@ https-proxy-agent@^7.0.2: agent-base "^7.0.2" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" @@ -8047,7 +6071,7 @@ hyper-async@^1.1.2: resolved "https://registry.npmjs.org/hyper-async/-/hyper-async-1.1.2.tgz" integrity sha512-cnpOgKa+5FZOaccTtjduac1FrZuSc38/ftCp3vYJdUMt+7c+uvGDKLDK4MTNK8D3aFjIeveVrPcSgUPvzZLopg== -iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -8061,22 +6085,15 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ieee754@1.1.13: version "1.1.13" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -image-size@^1.0.2: - version "1.1.1" - resolved "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz" - integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== - dependencies: - queue "6.0.2" +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== immediate@~3.0.5: version "3.0.6" @@ -8088,22 +6105,6 @@ immutable@^4.1.0: resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" @@ -8132,7 +6133,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -8177,13 +6178,6 @@ interpret@^2.2.0: resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - ip-address@^9.0.5: version "9.0.5" resolved "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz" @@ -8202,16 +6196,16 @@ ip@^2.0.0: resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== -ipaddr.js@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" @@ -8228,11 +6222,6 @@ is-array-buffer@^3.0.4: call-bind "^1.0.2" get-intrinsic "^1.2.1" -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" @@ -8291,11 +6280,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - is-docker@^2.0.0: version "2.2.1" resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" @@ -8367,13 +6351,6 @@ is-plain-obj@^2.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" @@ -8415,7 +6392,7 @@ is-typed-array@^1.1.13, is-typed-array@^1.1.3: dependencies: which-typed-array "^1.1.14" -is-typedarray@^1.0.0, is-typedarray@1.0.0: +is-typedarray@1.0.0, is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== @@ -8432,12 +6409,7 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - -is-wsl@^2.1.1, is-wsl@^2.2.0: +is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -8449,12 +6421,7 @@ isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@^2.0.5: +isarray@^2.0.1, isarray@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== @@ -8464,11 +6431,6 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - isomorphic-unfetch@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz" @@ -8477,11 +6439,6 @@ isomorphic-unfetch@^3.0.0: node-fetch "^2.6.1" unfetch "^4.2.0" -isomorphic-ws@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" - integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - isomorphic-ws@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" @@ -8497,115 +6454,11 @@ jake@^10.8.5: filelist "^1.0.4" minimatch "^3.1.2" -jayson@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/jayson/-/jayson-4.1.2.tgz" - integrity sha512-5nzMWDHy6f+koZOuYsArh2AXs73NfWYVlFyJJuCedr93GpY+Ku8qq10ropSXVfHK+H0T6paA88ww+/dV+1fBNA== - dependencies: - "@types/connect" "^3.4.33" - "@types/node" "^12.12.54" - "@types/ws" "^7.4.4" - commander "^2.20.3" - delay "^5.0.0" - es6-promisify "^5.0.0" - eyes "^0.1.8" - isomorphic-ws "^4.0.1" - json-stringify-safe "^5.0.1" - JSONStream "^1.3.5" - uuid "^8.3.2" - ws "^7.5.10" - -jest-environment-node@^29.6.3: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.6.3: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - -jest-worker@^29.6.3: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - jmespath@0.16.0: version "0.16.0" resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz" integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== -joi@^17.2.1: - version "17.13.3" - resolved "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz" - integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== - dependencies: - "@hapi/hoek" "^9.3.0" - "@hapi/topo" "^5.1.0" - "@sideway/address" "^4.1.5" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - js-base64@^3.7.2: version "3.7.7" resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz" @@ -8631,7 +6484,7 @@ js-sha256@^0.9.0: resolved "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== -js-sha3@^0.8.0, js-sha3@0.8.0: +js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== @@ -8641,74 +6494,31 @@ js-sha512@^0.8.0: resolved "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz" integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: +js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== +js-yaml@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" + argparse "^2.0.1" -js-yaml@^4.1.0, js-yaml@4.1.0: +js-yaml@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -js-yaml@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== - dependencies: - argparse "^2.0.1" - jsbn@1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsc-android@^250231.0.0: - version "250231.0.0" - resolved "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz" - integrity sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw== - -jsc-safe-url@^0.2.2: - version "0.2.4" - resolved "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz" - integrity sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q== - -jscodeshift@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz" - integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== - dependencies: - "@babel/core" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/preset-flow" "^7.13.13" - "@babel/preset-typescript" "^7.13.0" - "@babel/register" "^7.13.16" - babel-core "^7.0.0-bridge.0" - chalk "^4.1.2" - flow-parser "0.*" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - neo-async "^2.5.0" - node-dir "^0.1.17" - recast "^0.21.0" - temp "^0.8.4" - write-file-atomic "^2.3.0" - -jsesc@^3.0.2, jsesc@~3.0.2: +jsesc@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== @@ -8725,26 +6535,11 @@ json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-stringify-safe@^5.0.1, json-stringify-safe@5: +json-stringify-safe@5, json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" @@ -8752,11 +6547,6 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - jsonpath@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz" @@ -8766,14 +6556,6 @@ jsonpath@^1.1.1: static-eval "2.0.2" underscore "1.12.1" -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - jszip@^3.6.0: version "3.10.1" resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" @@ -8822,16 +6604,6 @@ keyvaluestorage-interface@^1.0.0: resolved "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz" integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - knex@^0.95.6: version "0.95.15" resolved "https://registry.npmjs.org/knex/-/knex-0.95.15.tgz" @@ -8916,7 +6688,7 @@ koa-router@^10.1.1: methods "^1.1.2" path-to-regexp "^6.1.0" -koa@^2.13.1, koa@^2.13.4: +koa@^2.13.4: version "2.15.1" resolved "https://registry.npmjs.org/koa/-/koa-2.15.1.tgz" integrity sha512-kpxzGxsv7tlc0WmccWd6CfdWqYXk4o/FsCTjnKaDnHLjPK/Sy1MpoBkuKO5LN7GdPHgPljrAVmMO3wbFxEJTeA== @@ -8957,7 +6729,7 @@ lazystream@^1.0.0: dependencies: readable-stream "^2.0.5" -leb128@^0.0.4, leb128@0.0.4: +leb128@0.0.4, leb128@^0.0.4: version "0.0.4" resolved "https://registry.npmjs.org/leb128/-/leb128-0.0.4.tgz" integrity sha512-2zejk0fCIgY8RVcc/KzvyfpDio5Oo8HgPZmkrOmdwmbk0KpKpgD+JKwikxKk8cZYkANIhwHK50SNukkCm3XkCQ== @@ -8987,11 +6759,6 @@ level@^8.0.0: browser-level "^1.0.1" classic-level "^1.2.0" -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - levn@~0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" @@ -9019,19 +6786,6 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" -lighthouse-logger@^1.0.0: - version "1.4.2" - resolved "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz" - integrity sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g== - dependencies: - debug "^2.6.9" - marky "^1.2.2" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - lit-connect-modal@^0.1.11: version "0.1.11" resolved "https://registry.npmjs.org/lit-connect-modal/-/lit-connect-modal-0.1.11.tgz" @@ -9074,13 +6828,6 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" @@ -9093,11 +6840,6 @@ lodash.camelcase@^4.3.0: resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" @@ -9123,11 +6865,6 @@ lodash.sortby@^4.7.0: resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" - integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== - lodash.union@^4.6.0: version "4.6.0" resolved "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz" @@ -9143,14 +6880,6 @@ log-driver@^1.2.7: resolved "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz" integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== -log-symbols@^4.1.0, log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - log-symbols@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" @@ -9158,14 +6887,13 @@ log-symbols@4.0.0: dependencies: chalk "^4.0.0" -logkitty@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz" - integrity sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ== +log-symbols@4.1.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: - ansi-fragments "^0.2.1" - dayjs "^1.8.15" - yargs "^15.1.0" + chalk "^4.1.0" + is-unicode-supported "^0.1.0" loglevel@^1.6.8, loglevel@^1.8.0: version "1.9.1" @@ -9187,13 +6915,6 @@ long@^5.0.0: resolved "https://registry.npmjs.org/long/-/long-5.2.3.tgz" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== -loose-envify@^1.0.0, loose-envify@^1.1.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - loupe@^2.3.6: version "2.3.6" resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" @@ -9201,18 +6922,16 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.0" +"lru-cache@7.10.1 - 7.13.1": + version "7.13.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz" + integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== + lru-cache@^10.2.2: version "10.4.3" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" @@ -9225,11 +6944,6 @@ lru-cache@^7.14.1: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -"lru-cache@7.10.1 - 7.13.1": - version "7.13.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz" - integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== - lru-queue@0.1: version "0.1.0" resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz" @@ -9237,14 +6951,6 @@ lru-queue@0.1: dependencies: es5-ext "~0.10.2" -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-fetch-happen@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz" @@ -9267,23 +6973,11 @@ make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - map-stream@~0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz" integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== -marky@^1.2.2: - version "1.2.5" - resolved "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz" - integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" @@ -9307,11 +7001,6 @@ media-typer@0.3.0: resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memoize-one@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz" - integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== - memoizee@0.3.x: version "0.3.10" resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz" @@ -9339,264 +7028,43 @@ merge-descriptors@1.0.1: resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - methods@^1.1.2, methods@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -metro-babel-transformer@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.12.tgz" - integrity sha512-YZziRs0MgA3pzCkkvOoQRXjIoVjvrpi/yRlJnObyIvMP6lFdtyG4nUGIwGY9VXnBvxmXD6mPY2e+NSw6JAyiRg== - dependencies: - "@babel/core" "^7.20.0" - flow-enums-runtime "^0.0.6" - hermes-parser "0.23.1" - nullthrows "^1.1.1" - -metro-cache-key@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.12.tgz" - integrity sha512-o4BspKnugg/pE45ei0LGHVuBJXwRgruW7oSFAeSZvBKA/sGr0UhOGY3uycOgWInnS3v5yTTfiBA9lHlNRhsvGA== - dependencies: - flow-enums-runtime "^0.0.6" - -metro-cache@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.12.tgz" - integrity sha512-p5kNHh2KJ0pbQI/H7ZBPCEwkyNcSz7OUkslzsiIWBMPQGFJ/xArMwkV7I+GJcWh+b4m6zbLxE5fk6fqbVK1xGA== - dependencies: - exponential-backoff "^3.1.1" - flow-enums-runtime "^0.0.6" - metro-core "0.80.12" - -metro-config@^0.80.3, metro-config@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.80.12.tgz" - integrity sha512-4rwOWwrhm62LjB12ytiuR5NgK1ZBNr24/He8mqCsC+HXZ+ATbrewLNztzbAZHtFsrxP4D4GLTGgh96pCpYLSAQ== - dependencies: - connect "^3.6.5" - cosmiconfig "^5.0.5" - flow-enums-runtime "^0.0.6" - jest-validate "^29.6.3" - metro "0.80.12" - metro-cache "0.80.12" - metro-core "0.80.12" - metro-runtime "0.80.12" - -metro-core@^0.80.3, metro-core@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.80.12.tgz" - integrity sha512-QqdJ/yAK+IpPs2HU/h5v2pKEdANBagSsc6DRSjnwSyJsCoHlmyJKCaCJ7KhWGx+N4OHxh37hoA8fc2CuZbx0Fw== - dependencies: - flow-enums-runtime "^0.0.6" - lodash.throttle "^4.1.1" - metro-resolver "0.80.12" - -metro-file-map@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.12.tgz" - integrity sha512-sYdemWSlk66bWzW2wp79kcPMzwuG32x1ZF3otI0QZTmrnTaaTiGyhE66P1z6KR4n2Eu5QXiABa6EWbAQv0r8bw== - dependencies: - anymatch "^3.0.3" - debug "^2.2.0" - fb-watchman "^2.0.0" - flow-enums-runtime "^0.0.6" - graceful-fs "^4.2.4" - invariant "^2.2.4" - jest-worker "^29.6.3" - micromatch "^4.0.4" - node-abort-controller "^3.1.1" - nullthrows "^1.1.1" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -metro-minify-terser@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.12.tgz" - integrity sha512-muWzUw3y5k+9083ZoX9VaJLWEV2Jcgi+Oan0Mmb/fBNMPqP9xVDuy4pOMn/HOiGndgfh/MK7s4bsjkyLJKMnXQ== - dependencies: - flow-enums-runtime "^0.0.6" - terser "^5.15.0" - -metro-resolver@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.12.tgz" - integrity sha512-PR24gYRZnYHM3xT9pg6BdbrGbM/Cu1TcyIFBVlAk7qDAuHkUNQ1nMzWumWs+kwSvtd9eZGzHoucGJpTUEeLZAw== - dependencies: - flow-enums-runtime "^0.0.6" - -metro-runtime@^0.80.3, metro-runtime@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.12.tgz" - integrity sha512-LIx7+92p5rpI0i6iB4S4GBvvLxStNt6fF0oPMaUd1Weku7jZdfkCZzmrtDD9CSQ6EPb0T9NUZoyXIxlBa3wOCw== - dependencies: - "@babel/runtime" "^7.25.0" - flow-enums-runtime "^0.0.6" - -metro-source-map@^0.80.3, metro-source-map@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.12.tgz" - integrity sha512-o+AXmE7hpvM8r8MKsx7TI21/eerYYy2DCDkWfoBkv+jNkl61khvDHlQn0cXZa6lrcNZiZkl9oHSMcwLLIrFmpw== - dependencies: - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - flow-enums-runtime "^0.0.6" - invariant "^2.2.4" - metro-symbolicate "0.80.12" - nullthrows "^1.1.1" - ob1 "0.80.12" - source-map "^0.5.6" - vlq "^1.0.0" - -metro-symbolicate@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.12.tgz" - integrity sha512-/dIpNdHksXkGHZXARZpL7doUzHqSNxgQ8+kQGxwpJuHnDhGkENxB5PS2QBaTDdEcmyTMjS53CN1rl9n1gR6fmw== - dependencies: - flow-enums-runtime "^0.0.6" - invariant "^2.2.4" - metro-source-map "0.80.12" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - -metro-transform-plugins@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz" - integrity sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - flow-enums-runtime "^0.0.6" - nullthrows "^1.1.1" - -metro-transform-worker@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.12.tgz" - integrity sha512-KAPFN1y3eVqEbKLx1I8WOarHPqDMUa8WelWxaJCNKO/yHCP26zELeqTJvhsQup+8uwB6EYi/sp0b6TGoh6lOEA== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/types" "^7.20.0" - flow-enums-runtime "^0.0.6" - metro "0.80.12" - metro-babel-transformer "0.80.12" - metro-cache "0.80.12" - metro-cache-key "0.80.12" - metro-minify-terser "0.80.12" - metro-source-map "0.80.12" - metro-transform-plugins "0.80.12" - nullthrows "^1.1.1" - -metro@^0.80.3, metro@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/metro/-/metro-0.80.12.tgz" - integrity sha512-1UsH5FzJd9quUsD1qY+zUG4JY3jo3YEMxbMYH9jT6NK3j4iORhlwTK8fYTfAUBhDKjgLfKjAh7aoazNE23oIRA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - accepts "^1.3.7" - chalk "^4.0.0" - ci-info "^2.0.0" - connect "^3.6.5" - debug "^2.2.0" - denodeify "^1.2.1" - error-stack-parser "^2.0.6" - flow-enums-runtime "^0.0.6" - graceful-fs "^4.2.4" - hermes-parser "0.23.1" - image-size "^1.0.2" - invariant "^2.2.4" - jest-worker "^29.6.3" - jsc-safe-url "^0.2.2" - lodash.throttle "^4.1.1" - metro-babel-transformer "0.80.12" - metro-cache "0.80.12" - metro-cache-key "0.80.12" - metro-config "0.80.12" - metro-core "0.80.12" - metro-file-map "0.80.12" - metro-resolver "0.80.12" - metro-runtime "0.80.12" - metro-source-map "0.80.12" - metro-symbolicate "0.80.12" - metro-transform-plugins "0.80.12" - metro-transform-worker "0.80.12" - mime-types "^2.1.27" - nullthrows "^1.1.1" - serialize-error "^2.1.0" - source-map "^0.5.6" - strip-ansi "^6.0.0" - throat "^5.0.0" - ws "^7.5.10" - yargs "^17.6.2" - micro-ftch@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== -micromatch@^4.0.4: - version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - micromodal@^0.4.10: version "0.4.10" resolved "https://registry.npmjs.org/micromodal/-/micromodal-0.4.10.tgz" integrity sha512-BUrEnzMPFBwK8nOE4xUDYHLrlGlLULQVjpja99tpJQPSUEWgw3kTLp1n1qv0HmKU29AiHE7Y7sMLiRziDK4ghQ== -"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.18, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@^2.4.1: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" @@ -9617,41 +7085,34 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.2, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.4, minimatch@3.0.4: +minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: brace-expansion "^2.0.1" -minimatch@^5.1.0: +minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1, minimatch@^5.1.0: version "5.1.6" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" @@ -9721,14 +7182,7 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@1.0.4: +mkdirp@1.0.4, mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -9812,11 +7266,6 @@ moment@^2.29.1: resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== -ms@^2.0.0, ms@^2.1.1, ms@^2.1.3, ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -9827,6 +7276,11 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + msgpackr-extract@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz" @@ -9856,21 +7310,21 @@ multistream@^4.1.0: once "^1.4.0" readable-stream "^3.6.0" -mute-stream@~0.0.4, mute-stream@0.0.8: +mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.14.0: - version "2.18.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz" - integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== - nan@2.14.0: version "2.14.0" resolved "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== +nan@^2.14.0: + version "2.18.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + nanoassert@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz" @@ -9909,22 +7363,17 @@ needle@2.4.0: iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@^0.6.2, negotiator@0.6.3: +negotiator@0.6.3, negotiator@^0.6.2: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0: - version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - netmask@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -next-tick@^1.1.0, next-tick@1: +next-tick@1, next-tick@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== @@ -9934,11 +7383,6 @@ next-tick@~0.2.2: resolved "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz" integrity sha512-f7h4svPtl+QidoBv4taKXUjJ70G2asaZ8G28nS0OkqaalX8dwwrtWtyxEDPK62AC00ur/+/E0pUwBwY5EPn15Q== -nocache@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz" - integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== - node-abi@^3.3.0: version "3.56.0" resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz" @@ -9946,7 +7390,7 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" -node-abort-controller@^3.0.1, node-abort-controller@^3.1.1: +node-abort-controller@^3.0.1: version "3.1.1" resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== @@ -10000,19 +7444,12 @@ node-dev@^8.0.0: resolve "^1.22.0" semver "^7.3.7" -node-dir@^0.1.17: - version "0.1.17" - resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" - integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== - dependencies: - minimatch "^3.0.2" - node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-fetch@^2.2.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.9, node-fetch@^2.7.0: +node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.9: version "2.7.0" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -10028,7 +7465,7 @@ node-fetch@^3.2.3: fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-forge@^1, node-forge@^1.3.1: +node-forge@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== @@ -10076,11 +7513,6 @@ node-gyp@8.x: tar "^6.1.2" which "^2.0.2" -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - node-notifier@^8.0.1: version "8.0.2" resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz" @@ -10093,16 +7525,6 @@ node-notifier@^8.0.1: uuid "^8.3.0" which "^2.0.2" -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== - -node-stream-zip@^1.9.1: - version "1.15.0" - resolved "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz" - integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== - nopt@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" @@ -10127,13 +7549,6 @@ nostr-tools@^1.16.0: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - npmlog@^6.0.0: version "6.0.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz" @@ -10152,18 +7567,6 @@ nssocket@0.6.0: eventemitter2 "~0.4.14" lazy "~1.0.11" -nullthrows@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - -ob1@0.80.12: - version "0.80.12" - resolved "https://registry.npmjs.org/ob1/-/ob1-0.80.12.tgz" - integrity sha512-VMArClVT6LkhUGpnuEoBuyjG9rzUyEzg4PDkav6wK1cLhOK02gPCYFxoiB4mqVnrMhDpIzJcrGNAMVi9P+hXrw== - dependencies: - flow-enums-runtime "^0.0.6" - object-assign@^4: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" @@ -10194,25 +7597,13 @@ obliterator@^2.0.1: resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== -on-finished@^2.3.0, on-finished@2.4.1: +on-finished@2.4.1, on-finished@^2.3.0: version "2.4.1" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -10220,7 +7611,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -10232,21 +7623,6 @@ only@~0.0.2: resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz" integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ== -open@^6.2.0: - version "6.4.0" - resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== - dependencies: - is-wsl "^1.1.0" - -open@^7.0.3: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" @@ -10291,13 +7667,6 @@ p-limit@^2.0.0: dependencies: p-try "^2.0.0" -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - p-limit@^3.0.1, p-limit@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" @@ -10312,13 +7681,6 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" @@ -10376,31 +7738,6 @@ pako@~1.0.2: resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parseurl@^1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" @@ -10426,7 +7763,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -10436,16 +7773,16 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz" - integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + pathval@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" @@ -10479,12 +7816,12 @@ pg-connection-string@2.5.0: resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz" integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== -picocolors@^1.0.0, picocolors@^1.1.0: +picocolors@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz" integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -10503,23 +7840,6 @@ pidusage@~3.0: dependencies: safe-buffer "^5.2.1" -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pm2-axon-rpc@~0.7.0, pm2-axon-rpc@~0.7.1: version "0.7.1" resolved "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz" @@ -10643,25 +7963,6 @@ prettier@2.8.3: resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz" integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== -pretty-format@^26.5.2, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - prng-well1024a@~1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/prng-well1024a/-/prng-well1024a-1.0.1.tgz" @@ -10690,13 +7991,6 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" -promise@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" - integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== - dependencies: - asap "~2.0.6" - promptly@^2: version "2.2.0" resolved "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz" @@ -10704,14 +7998,6 @@ promptly@^2: dependencies: read "^1.0.4" -prompts@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - protobufjs@^6.11.3, protobufjs@^6.8.6: version "6.11.4" resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz" @@ -10791,6 +8077,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + punycode@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" @@ -10801,11 +8092,6 @@ punycode@^2.1.1: resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - pvtsutils@^1.3.2: version "1.3.5" resolved "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz" @@ -10831,6 +8117,13 @@ qrcode@1.4.4: pngjs "^3.3.0" yargs "^13.2.4" +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + qs@^6.11.2: version "6.11.2" resolved "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz" @@ -10838,27 +8131,13 @@ qs@^6.11.2: dependencies: side-channel "^1.0.4" -qs@^6.4.0: - version "6.12.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz" - integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== - dependencies: - side-channel "^1.0.6" - -qs@^6.5.2: +qs@^6.4.0, qs@^6.5.2: version "6.12.0" resolved "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz" integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== dependencies: side-channel "^1.0.6" -qs@6.11.0: - version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - query-string@6.13.5: version "6.13.5" resolved "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz" @@ -10878,13 +8157,6 @@ queue-microtask@^1.2.2, queue-microtask@^1.2.3: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue@6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" - integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== - dependencies: - inherits "~2.0.3" - r1csfile@0.0.48: version "0.0.48" resolved "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.48.tgz" @@ -10905,12 +8177,7 @@ ramda@^0.29.1: resolved "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz" integrity sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA== -ramda@^0.30.0: - version "0.30.1" - resolved "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz" - integrity sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw== - -ramda@^0.30.1: +ramda@^0.30.0, ramda@^0.30.1: version "0.30.1" resolved "https://registry.npmjs.org/ramda/-/ramda-0.30.1.tgz" integrity sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw== @@ -10934,7 +8201,7 @@ range-parser@~1.2.1: resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@^2.2.0, raw-body@^2.3.3, raw-body@2.5.2: +raw-body@2.5.2, raw-body@^2.2.0, raw-body@^2.3.3: version "2.5.2" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== @@ -10954,24 +8221,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-devtools-core@^5.3.1: - version "5.3.2" - resolved "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.2.tgz" - integrity sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg== - dependencies: - shell-quote "^1.6.1" - ws "^7" - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - react-native-get-random-values@^1.4.0: version "1.9.0" resolved "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.9.0.tgz" @@ -10986,63 +8235,6 @@ react-native-url-polyfill@^1.3.0: dependencies: whatwg-url-without-unicode "8.0.0-3" -react-native@*, react-native@>=0.56: - version "0.75.4" - resolved "https://registry.npmjs.org/react-native/-/react-native-0.75.4.tgz" - integrity sha512-Jehg4AMNIAXu9cn0/1jbTCoNg3tc+t6EekwucCalN8YoRmxGd/PY6osQTI/5fSAM40JQ4O8uv8Qg09Ycpb5sxQ== - dependencies: - "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "14.1.0" - "@react-native-community/cli-platform-android" "14.1.0" - "@react-native-community/cli-platform-ios" "14.1.0" - "@react-native/assets-registry" "0.75.4" - "@react-native/codegen" "0.75.4" - "@react-native/community-cli-plugin" "0.75.4" - "@react-native/gradle-plugin" "0.75.4" - "@react-native/js-polyfills" "0.75.4" - "@react-native/normalize-colors" "0.75.4" - "@react-native/virtualized-lists" "0.75.4" - abort-controller "^3.0.0" - anser "^1.4.9" - ansi-regex "^5.0.0" - base64-js "^1.5.1" - chalk "^4.0.0" - commander "^9.4.1" - event-target-shim "^5.0.1" - flow-enums-runtime "^0.0.6" - glob "^7.1.1" - invariant "^2.2.4" - jest-environment-node "^29.6.3" - jsc-android "^250231.0.0" - memoize-one "^5.0.0" - metro-runtime "^0.80.3" - metro-source-map "^0.80.3" - mkdirp "^0.5.1" - nullthrows "^1.1.1" - pretty-format "^26.5.2" - promise "^8.3.0" - react-devtools-core "^5.3.1" - react-refresh "^0.14.0" - regenerator-runtime "^0.13.2" - scheduler "0.24.0-canary-efb381bbf-20230505" - semver "^7.1.3" - stacktrace-parser "^0.1.10" - whatwg-fetch "^3.0.0" - ws "^6.2.2" - yargs "^17.6.2" - -react-refresh@^0.14.0: - version "0.14.2" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" - integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== - -react@*, react@^18.2.0: - version "18.3.1" - resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" - integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== - dependencies: - loose-envify "^1.1.0" - read@^1.0.4: version "1.0.7" resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" @@ -11050,20 +8242,7 @@ read@^1.0.4: dependencies: mute-stream "~0.0.4" -readable-stream@^2.0.0: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^2.0.5: +readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -11096,32 +8275,6 @@ readable-stream@^4.3.0: process "^0.11.10" string_decoder "^1.3.0" -readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@2: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readdir-glob@^1.1.2: version "1.1.3" resolved "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz" @@ -11143,26 +8296,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -readline@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz" - integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== - readonly-date@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz" integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== -recast@^0.21.0: - version "0.21.5" - resolved "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - rechoir@0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz" @@ -11217,40 +8355,16 @@ redstone-wasm-metering@1.0.3: leb128 "^0.0.4" redstone-wasm-json-toolkit "1.0.3" -regenerate-unicode-properties@^10.2.0: - version "10.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz" - integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - regenerator-runtime@^0.13.11: version "0.13.11" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-runtime@^0.13.2: - version "0.13.11" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.14.0: version "0.14.1" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - regexp.prototype.flags@^1.5.2: version "1.5.3" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz" @@ -11258,32 +8372,8 @@ regexp.prototype.flags@^1.5.2: dependencies: call-bind "^1.0.7" define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.2" - -regexpu-core@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz" - integrity sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.0" - regjsgen "^0.8.0" - regjsparser "^0.11.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -regjsgen@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz" - integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== - -regjsparser@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz" - integrity sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ== - dependencies: - jsesc "~3.0.2" + es-errors "^1.3.0" + set-function-name "^2.0.2" require-directory@^2.1.1: version "2.1.1" @@ -11304,22 +8394,12 @@ require-main-filename@^2.0.0: resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.14.2, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.9.0: +resolve@^1.22.0, resolve@^1.22.1, resolve@^1.9.0: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -11344,20 +8424,15 @@ retry-request@^5.0.0: debug "^4.1.1" extend "^3.0.2" -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - retry@0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== rfc4648@^1.5.1: version "1.5.3" @@ -11371,13 +8446,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" @@ -11393,22 +8461,6 @@ rlp@^2.2.3, rlp@^2.2.4: dependencies: bn.js "^5.2.0" -rpc-websockets@^9.0.2: - version "9.0.4" - resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.4.tgz" - integrity sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ== - dependencies: - "@swc/helpers" "^0.5.11" - "@types/uuid" "^8.3.4" - "@types/ws" "^8.2.2" - buffer "^6.0.3" - eventemitter3 "^5.0.1" - uuid "^8.3.2" - ws "^8.5.0" - optionalDependencies: - bufferutil "^4.0.1" - utf-8-validate "^5.0.2" - run-async@^2.4.0: version "2.4.1" resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" @@ -11421,13 +8473,6 @@ run-parallel-limit@^1.1.0: dependencies: queue-microtask "^1.2.2" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - run-series@^1.1.8: version "1.1.9" resolved "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz" @@ -11450,7 +8495,7 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0, safe-buffer@5.2.1: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -11460,11 +8505,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-json-utils@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz" @@ -11484,51 +8524,26 @@ safe-stable-stringify@2.4.1: resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz" integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA== -safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@^1.2.4, sax@>=0.6.0: - version "1.3.0" - resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" - integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== - sax@1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== -scheduler@0.24.0-canary-efb381bbf-20230505: - version "0.24.0-canary-efb381bbf-20230505" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz" - integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA== - dependencies: - loose-envify "^1.1.0" +sax@>=0.6.0, sax@^1.2.4: + version "1.3.0" + resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== -scrypt-js@^3.0.0, scrypt-js@3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -secp256k1@^4.0.1, secp256k1@^4.0.2, secp256k1@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -secp256k1@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz" - integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== - dependencies: - elliptic "^6.5.4" - node-addon-api "^5.0.0" - node-gyp-build "^4.2.0" - secp256k1@3.7.1: version "3.7.1" resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz" @@ -11543,7 +8558,7 @@ secp256k1@3.7.1: nan "^2.14.0" safe-buffer "^5.1.2" -secp256k1@5.0.0: +secp256k1@5.0.0, secp256k1@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz" integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== @@ -11552,25 +8567,16 @@ secp256k1@5.0.0: node-addon-api "^5.0.0" node-gyp-build "^4.2.0" -selfsigned@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== +secp256k1@^4.0.1, secp256k1@^4.0.2, secp256k1@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - -semver@^5.3.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^5.5.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" -semver@^5.6.0: +semver@^5.3.0, semver@^5.5.0: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -11580,12 +8586,7 @@ semver@^6.2.0: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.1.3, semver@^7.2, semver@^7.3.2, semver@^7.3.7, semver@^7.5.2, semver@~7.5.0, semver@~7.5.4: +semver@^7.2, semver@^7.3.2, semver@^7.3.7, semver@~7.5.0, semver@~7.5.4: version "7.5.4" resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -11628,11 +8629,6 @@ sentencer@^0.2.1: natural "~0.1.28" randy "~1.5.1" -serialize-error@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" - integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== - serialize-javascript@5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz" @@ -11647,7 +8643,7 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -serve-static@^1.13.1, serve-static@1.15.0: +serve-static@1.15.0: version "1.15.0" resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== @@ -11702,13 +8698,6 @@ sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -11721,11 +8710,6 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.6.1, shell-quote@^1.7.3: - version "1.8.1" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - shellwords@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz" @@ -11774,25 +8758,6 @@ simple-get@^4.0.0: once "^1.3.1" simple-concat "^1.0.0" -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" @@ -11867,7 +8832,7 @@ socks@^2.7.1: ip "^2.0.0" smart-buffer "^4.2.0" -source-map-support@^0.5.16, source-map-support@~0.5.20, source-map-support@0.5.21: +source-map-support@0.5.21: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -11875,11 +8840,6 @@ source-map-support@^0.5.16, source-map-support@~0.5.20, source-map-support@0.5.2 buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" @@ -11897,6 +8857,11 @@ split@0.3: dependencies: through "2" +sprintf-js@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + sprintf-js@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" @@ -11907,11 +8872,6 @@ sprintf-js@~1.0.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sprintf-js@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - sqlite3@^5.0.3: version "5.1.7" resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz" @@ -11931,25 +8891,6 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -stackframe@^1.3.4: - version "1.3.4" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" - integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== - -stacktrace-parser@^0.1.10: - version "0.1.10" - resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" - integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== - dependencies: - type-fest "^0.7.1" - static-eval@2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz" @@ -11957,21 +8898,16 @@ static-eval@2.0.2: dependencies: escodegen "^1.8.1" -statuses@^1.5.0, "statuses@>= 1.5.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.5.0 < 2", statuses@^1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + stream-buffers@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.3.tgz" @@ -12009,25 +8945,19 @@ strict-uri-encode@^2.0.0: resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - string-argv@^0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.1.2.tgz" integrity sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA== +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -12037,14 +8967,6 @@ string-argv@^0.1.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" @@ -12096,6 +9018,20 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" @@ -12117,11 +9053,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" @@ -12129,16 +9060,16 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - strip-json-comments@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + strnum@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" @@ -12149,15 +9080,12 @@ stubs@^3.0.0: resolved "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz" integrity sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw== -sudo-prompt@^9.0.0: - version "9.2.1" - resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz" - integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== - -superstruct@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz" - integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" supports-color@^5.3.0: version "5.5.0" @@ -12173,20 +9101,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" @@ -12258,23 +9172,6 @@ teeny-request@^8.0.0: stream-events "^1.0.5" uuid "^9.0.0" -temp@^0.8.4: - version "0.8.4" - resolved "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz" - integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== - dependencies: - rimraf "~2.6.2" - -terser@^5.15.0: - version "5.34.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz" - integrity sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - test@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/test/-/test-3.3.0.tgz" @@ -12284,29 +9181,11 @@ test@^3.3.0: readable-stream "^4.3.0" string.prototype.replaceall "^1.0.6" -text-encoding-utf-8@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" - integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - -through@^2.3.6, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1, through@2: +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -through2@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - tildify@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz" @@ -12341,11 +9220,6 @@ tmp@^0.2.0: dependencies: rimraf "^3.0.0" -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -12371,63 +9245,28 @@ toidentifier@1.0.1: tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -tsc-watch@^4.6.0: - version "4.6.2" - resolved "https://registry.npmjs.org/tsc-watch/-/tsc-watch-4.6.2.tgz" - integrity sha512-eHWzZGkPmzXVGQKbqQgf3BFpGiZZw1jQ29ZOJeaSe8JfyUvphbd221NfXmmsJUGGPGA/nnaSS01tXipUcyxAxg== - dependencies: - cross-spawn "^7.0.3" - node-cleanup "^2.1.2" - ps-tree "^1.2.0" - string-argv "^0.1.1" - strip-ansi "^6.0.0" - -tslib@^1.11.1, tslib@^1.8.0, tslib@^1.9.3, tslib@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tslib@^2.0.1: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tslib@^2.1.0: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tslib@^2.3.1: - version "2.7.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== - -tslib@^2.4.0: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tslib@^2.5.0: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -tslib@^2.6.1: - version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tsc-watch@^4.6.0: + version "4.6.2" + resolved "https://registry.npmjs.org/tsc-watch/-/tsc-watch-4.6.2.tgz" + integrity sha512-eHWzZGkPmzXVGQKbqQgf3BFpGiZZw1jQ29ZOJeaSe8JfyUvphbd221NfXmmsJUGGPGA/nnaSS01tXipUcyxAxg== + dependencies: + cross-spawn "^7.0.3" + node-cleanup "^2.1.2" + ps-tree "^1.2.0" + string-argv "^0.1.1" + strip-ansi "^6.0.0" + +tslib@1.14.1, tslib@^1.11.1, tslib@^1.8.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@1.9.3: version "1.9.3" @@ -12439,6 +9278,16 @@ tslib@2.4.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.3.1: + version "2.7.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + tsscmp@1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz" @@ -12461,7 +9310,7 @@ tweetnacl-util@^0.15.1: resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== -tweetnacl@^1.0.3, tweetnacl@1.x.x: +tweetnacl@1.x.x, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== @@ -12480,7 +9329,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@^4.0.0, type-detect@^4.0.8, type-detect@4.0.8: +type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -12490,11 +9339,6 @@ type-fest@^0.21.3: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" - integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== - type-is@^1.6.14, type-is@^1.6.16, type-is@^1.6.18, type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" @@ -12559,11 +9403,6 @@ typedarray-to-buffer@3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@*, typescript@>=4.9.5, typescript@>=5.0.0: - version "5.6.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz" - integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== - unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" @@ -12574,16 +9413,16 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -underscore@>=1.3.1: - version "1.13.6" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" - integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== - underscore@1.12.1: version "1.12.1" resolved "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz" integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== +underscore@>=1.3.1: + version "1.13.6" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== + undici-types@~5.25.1: version "5.25.3" resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz" @@ -12606,29 +9445,6 @@ unfetch@^4.2.0: resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz" integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz" - integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz" - integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" @@ -12656,7 +9472,7 @@ universalify@^0.1.0: resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -12668,22 +9484,6 @@ unzipit@^1.4.0: dependencies: uzip-module "^1.0.2" -update-browserslist-db@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.0" - -url@^0.11.0: - version "0.11.3" - resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" - integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== - dependencies: - punycode "^1.4.1" - qs "^6.11.2" - url@0.10.3: version "0.10.3" resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz" @@ -12700,7 +9500,15 @@ url@0.11.0: punycode "1.3.2" querystring "0.2.0" -utf-8-validate@^5.0.2, utf-8-validate@^5.0.8, utf-8-validate@>=5.0.2: +url@^0.11.0: + version "0.11.3" + resolved "https://registry.npmjs.org/url/-/url-0.11.3.tgz" + integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== + dependencies: + punycode "^1.4.1" + qs "^6.11.2" + +utf-8-validate@^5.0.8: version "5.0.10" resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== @@ -12728,22 +9536,17 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz" + integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== + uuid@^3.0.0, uuid@^3.2.1: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.0.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^8.3.2: +uuid@^8.0.0, uuid@^8.3.0: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -12753,26 +9556,21 @@ uuid@^9.0.0: resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== -uuid@8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz" - integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== - uzip-module@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/uzip-module/-/uzip-module-1.0.3.tgz" integrity sha512-AMqwWZaknLM77G+VPYNZLEruMGWGzyigPK3/Whg99B3S6vGHuqsyl5ZrOv1UUF3paGK1U6PM0cnayioaryg/fA== -value-or-promise@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz" - integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== - value-or-promise@1.0.11: version "1.0.11" resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz" integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== +value-or-promise@^1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz" + integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== + vary@^1, vary@^1.1.2, vary@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" @@ -12788,11 +9586,6 @@ vizion@~2.2.1: ini "^1.3.5" js-git "^0.7.8" -vlq@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz" - integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== - vlq@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz" @@ -12806,13 +9599,6 @@ vm2@3.9.11: acorn "^8.7.0" acorn-walk "^8.2.0" -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - warp-arbundles@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/warp-arbundles/-/warp-arbundles-1.0.4.tgz" @@ -12874,14 +9660,6 @@ warp-contracts@^1.4.41, warp-contracts@^1.4.45: warp-isomorphic "^1.0.7" warp-wasm-metering "1.0.1" -warp-isomorphic@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/warp-isomorphic/-/warp-isomorphic-1.0.7.tgz" - integrity sha512-fXHbUXwdYqPm9fRPz8mjv5ndPco09aMQuTe4kXfymzOq8V6F3DLsg9cIafxvjms9/mc6eijzkLBJ63yjEENEjA== - dependencies: - buffer "^6.0.3" - undici "^5.19.1" - warp-isomorphic@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/warp-isomorphic/-/warp-isomorphic-1.0.0.tgz" @@ -12890,6 +9668,14 @@ warp-isomorphic@1.0.0: buffer "^6.0.3" undici "^5.8.0" +warp-isomorphic@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/warp-isomorphic/-/warp-isomorphic-1.0.7.tgz" + integrity sha512-fXHbUXwdYqPm9fRPz8mjv5ndPco09aMQuTe4kXfymzOq8V6F3DLsg9cIafxvjms9/mc6eijzkLBJ63yjEENEjA== + dependencies: + buffer "^6.0.3" + undici "^5.19.1" + warp-wasm-json-toolkit@1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/warp-wasm-json-toolkit/-/warp-wasm-json-toolkit-1.0.2.tgz" @@ -12907,12 +9693,12 @@ warp-wasm-metering@1.0.1: leb128 "^0.0.4" warp-wasm-json-toolkit "1.0.2" -wasmbuilder@^0.0.16, wasmbuilder@0.0.16: +wasmbuilder@0.0.16, wasmbuilder@^0.0.16: version "0.0.16" resolved "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.16.tgz" integrity sha512-Qx3lEFqaVvp1cEYW7Bfi+ebRJrOiwz2Ieu7ZG2l7YyeSJIok/reEQCQCuicj/Y32ITIJuGIM9xZQppGx5LrQdA== -wasmcurves@^0.2.1, wasmcurves@0.2.2: +wasmcurves@0.2.2, wasmcurves@^0.2.1: version "0.2.2" resolved "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.2.2.tgz" integrity sha512-JRY908NkmKjFl4ytnTu5ED6AwPD+8VJ9oc94kdq7h5bIwbj0L4TDJ69mG+2aLs2SoCmGfqIesMWTEJjtYsoQXQ== @@ -13094,11 +9880,6 @@ webidl-conversions@^5.0.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== -whatwg-fetch@^3.0.0: - version "3.6.20" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz" - integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== - whatwg-mimetype@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz" @@ -13148,20 +9929,13 @@ which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2: gopd "^1.0.1" has-tostringtag "^1.0.2" -which@^2.0.1, which@^2.0.2, which@2.0.2: +which@2.0.2, which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - wide-align@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" @@ -13169,6 +9943,13 @@ wide-align@1.1.3: dependencies: string-width "^1.0.2 || 2" +wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + word-wrap@~1.2.3: version "1.2.5" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" @@ -13202,15 +9983,6 @@ wrap-ansi@^6.0.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -13225,60 +9997,7 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^2.3.0: - version "2.4.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -ws@*, ws@^8.11.0, ws@^8.14.2, ws@^8.5.0: - version "8.14.2" - resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== - -ws@^6.2.2: - version "6.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz" - integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== - dependencies: - async-limiter "~1.0.0" - -ws@^6.2.3: - version "6.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz" - integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== - dependencies: - async-limiter "~1.0.0" - -ws@^7: - version "7.5.10" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^7.0.0: - version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^7.4.0: - version "7.5.10" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@^7.5.10: - version "7.5.10" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@~7.4.0: - version "7.4.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@7.4.6: +ws@7.4.6, ws@~7.4.0: version "7.4.6" resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== @@ -13293,6 +10012,21 @@ ws@8.5.0: resolved "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== +ws@^7.0.0: + version "7.5.9" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^7.4.0: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@^8.11.0, ws@^8.14.2: + version "8.14.2" + resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + xml2js@0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz" @@ -13314,7 +10048,7 @@ xss@^1.0.8: commander "^2.20.3" cssfilter "0.0.10" -xtend@^4.0.0, xtend@~4.0.1: +xtend@^4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -13329,21 +10063,11 @@ y18n@^5.0.5: resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0, yallist@4.0.0: +yallist@4.0.0, yallist@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1: - version "2.5.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz" - integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q== - yamljs@0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz" @@ -13352,6 +10076,11 @@ yamljs@0.3.0: argparse "^1.0.7" glob "^7.0.5" +yargs-parser@20.2.4, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" @@ -13360,19 +10089,6 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2, yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" @@ -13388,6 +10104,19 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" +yargs@16.2.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^13.2.4: version "13.3.2" resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" @@ -13404,36 +10133,6 @@ yargs@^13.2.4: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^15.1.0: - version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@^17.5.1, yargs@^17.6.2, yargs@^17.7.2: version "17.7.2" resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" @@ -13447,19 +10146,6 @@ yargs@^17.5.1, yargs@^17.6.2, yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" diff --git a/solidity/package.json b/solidity/package.json index 70723b9..aef12bc 100644 --- a/solidity/package.json +++ b/solidity/package.json @@ -21,10 +21,11 @@ }, "dependencies": { "@openzeppelin/contracts": "^5.0.1", + "aonote": "^0.8.3", "cwao": "^0.5.5", "snarkjs": "^0.7.2", - "weavedb-node-client": "^0.43.2", - "weavedb-sdk-node": "^0.43.2", + "weavedb-node-client": "^0.45.2", + "weavedb-sdk-node": "^0.45.2", "zkjson": "^0.3.1" }, "license": "MIT" diff --git a/solidity/test/cwao20.js b/solidity/test/cwao20.js deleted file mode 100644 index 5d41eaf..0000000 --- a/solidity/test/cwao20.js +++ /dev/null @@ -1,364 +0,0 @@ -const { loadFixture } = require("@nomicfoundation/hardhat-network-helpers") -const { Wallet } = require("ethers") -const EthCrypto = require("eth-crypto") -const { resolve } = require("path") -const { expect } = require("chai") -const { wait, Test } = require("../../node/node-server/test/lib/utils") -const { CWAO } = require("cwao") -const { readFileSync } = require("fs") -const DB = require("weavedb-node-client") -const SDK = require("weavedb-sdk-node") - -const getModuleCWAO20 = async () => - readFileSync(resolve(__dirname, "../../node/node-server/test/cwao20.wasm")) -const getModule = async () => - readFileSync(resolve(__dirname, "../../node/node-server/contract.js")) -const ath = wallet => ({ privateKey: wallet.privateKey }) - -async function deploy() { - const [committer] = await ethers.getSigners() - const VerifierRU = await ethers.getContractFactory("Groth16VerifierRU") - const verifierRU = await VerifierRU.deploy() - const VerifierDB = await ethers.getContractFactory("Groth16VerifierDB") - const verifierDB = await VerifierDB.deploy() - - const MyRU = await ethers.getContractFactory("SimpleOPRU") - const myru = await MyRU.deploy( - verifierRU.address, - verifierDB.address, - committer.address, - ) - - const Token = await ethers.getContractFactory("Token") - const mytoken = await Token.deploy() - const ZKBridge = await ethers.getContractFactory("ZKBridge") - const bridge = await ZKBridge.deploy(myru.address, mytoken.address) - - return { myru, committer, mytoken, bridge } -} - -describe("WeaveDB AO with zkJSON", function () { - let myru, committer, db, ru, bridge, mytoken - let admin, network, bundler, test, base, arweave, admin_l1, base_cw, bundler2 - this.timeout(0) - - before(async () => { - // testing in insecure mode, never do that in production - test = new Test({ - secure: false, - sequencerUrl: "https://gw.warp.cc/", - apiKey: "xyz", - ao: true, - cosmwasm: true, - }) - ;({ network, arweave, bundler, bundler2, admin, base, admin_l1, base_cw } = - await test.start()) - await wait(3000) - }) - - after(async () => { - await test.stop() - // some processes linger, so force exit for now - process.exit() - }) - - beforeEach(async () => { - const dep = await loadFixture(deploy) - myru = dep.myru - committer = dep.committer - mytoken = dep.mytoken - bridge = dep.bridge - }) - - it("should verify rollup transactions", async function () { - const wdb = new CWAO({ wallet: bundler, ...base }) - const sch = await arweave.wallets.jwkToAddress(bundler) - expect(await wdb.mu.get()).to.eql("ao messenger unit") - expect((await wdb.cu.get()).address).to.eql(sch) - expect((await wdb.su.get()).Address).to.eql(sch) - expect((await wdb.su.timestamp()).block_height).to.eql(0) - const _binary = await getModule() - const mod_id = await wdb.deploy(_binary) - await wdb.setSU({ url: base.su }) - - const db = new DB({ - rpc: "localhost:9090", - contractTxId: "testdb", - arweave: network, - }) - await wait(2000) - const stats = await db.node({ op: "stats" }) - expect(stats).to.eql({ dbs: [] }) - - // add a DB to node - const tx = await db.admin( - { - op: "add_db", - key: "testdb", - db: { - app: "http://localhost:3000", - name: "Jots", - rollup: true, - owner: [admin.address.toLowerCase(), admin_l1.address.toLowerCase()], - }, - }, - { privateKey: admin.privateKey }, - ) - expect(tx.success).to.eql(true) - - // deploy L1 AO contract (via node) - const { contractTxId, srcTxId } = await db.admin( - { - op: "deploy_contract", - key: "testdb", - type: "ao", - module: mod_id, - scheduler: sch, - }, - { privateKey: admin.privateKey }, - ) - expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) - await wait(2000) - - // update the DB (via node) - const db2 = new DB({ - rpc: "localhost:9090", - contractTxId, - }) - const Bob = { name: "Bob" } - const tx2 = await db2.set(Bob, "ppl", "Bob", { - privateKey: admin.privateKey, - }) - expect(tx2.success).to.eql(true) - expect(await db2.get("ppl", "Bob")).to.eql(Bob) - - // check rollup - await wait(5000) - expect( - await wdb.query({ - process: contractTxId, - action: "get", - input: { function: "get", query: ["ppl", "Bob"] }, - }), - ).to.eql(Bob) - // deploy cwao20 - - const _binary2 = await getModuleCWAO20() - const token = new CWAO({ wallet: bundler2, ...base_cw }) - const sch2 = await arweave.wallets.jwkToAddress(bundler2) - const wallet2 = await token.arweave.wallets.generate() - const addr2 = await token.arweave.wallets.jwkToAddress(wallet2) - const mod_id2 = await token.deploy(_binary2) - await token.setSU({ url: base_cw.su }) - - const pr = await token.instantiate({ - module: mod_id2, - scheduler: sch2, - custom: [ - { name: "Name", value: "WeaveDB" }, - { name: "Ticker", value: "WDB" }, - { name: "Logo", value: "https://example.com/wdb.png" }, - { name: "Denomination", value: "6" }, - ], - }) - - await token.execute({ - process: pr.id, - action: "Mint", - custom: [{ name: "Quantity", value: "100" }], - }) - - expect( - await token.query({ process: pr.id, action: "Info", input: {} }), - ).to.eql({ Name: "WeaveDB", Ticker: "WDB", Denomination: "6" }) - - await token.execute({ - process: pr.id, - action: "Transfer", - custom: [ - { name: "Quantity", value: "30" }, - { name: "Recipient", value: contractTxId }, - ], - }) - await wait(5000) - expect( - await token.query({ - process: pr.id, - action: "Balance", - input: { Target: contractTxId }, - }), - ).to.eql({ Balance: "30", Ticker: "WDB" }) - const tokens = await wdb.query({ - process: contractTxId, - action: "getTokens", - input: { function: "getTokens", query: {} }, - }) - expect(tokens.tokens.available).to.eql({ [pr.id]: "30" }) - - // lock token to L2 - - const cu = EthCrypto.createIdentity() - const cu2 = EthCrypto.createIdentity() - const cu3 = EthCrypto.createIdentity() - - const jobID = "tokens" - const job = { - relayers: [cu.address], - signers: [cu2.address, cu3.address], - multisig: 100, - multisig_type: "percent", - schema: { - type: "object", - required: ["tokens", "height", "last_token_lock_date"], - properties: { - tokens: { type: "object" }, - height: { type: "number" }, - last_token_lock_date: { type: "number" }, - }, - }, - } - await db2.addRelayerJob("tokens", job, { - privateKey: admin.privateKey, - }) - expect(await db2.getRelayerJob("tokens")).to.eql(job) - const signed = await db2.sign("lockTokens", { jobID, ...ath(admin) }) - const extra = { - tokens: tokens.tokens.available, - height: tokens.rollup.height, - last_token_lock_date: tokens.last_token_lock_date, - } - const cuw2 = new Wallet(cu2.privateKey) - const cuw3 = new Wallet(cu3.privateKey) - const multisig_data = { extra, jobID, params: signed } - const sig2 = await cuw2.signMessage(JSON.stringify(multisig_data)) - const sig3 = await cuw3.signMessage(JSON.stringify(multisig_data)) - await db2.relay("tokens", signed, extra, { - ...ath(cu), - multisigs: [sig2, sig3], - }) - expect((await db2.getTokens()).tokens.available_l2).to.eql({ - [pr.id]: "30", - }) - - const rules = [ - ["set:mint", [["allow()", true]]], - ["update:withdraw", [["allow()", true]]], - ] - const auth = ath(admin) - await db2.setRules(rules, "ppl", auth) - const trigger_mint = { - key: "mint", - on: "create", - version: 2, - func: [ - [ - "mint()", - [ - { - token: pr.id, - amount: 10, - to: { var: "data.setter" }, - }, - ], - ], - [ - "transfer()", - [ - { - token: pr.id, - amount: 5, - from: { var: "data.setter" }, - to: cu3.address.toLowerCase(), - }, - ], - ], - ], - } - await db2.addTrigger(trigger_mint, "ppl", auth) - const trigger_withdraw = { - key: "withdraw", - on: "update", - version: 2, - func: [ - [ - "withdraw()", - [ - { - token: pr.id, - amount: 5, - from: { var: "data.setter" }, - }, - ], - ], - ], - } - await db2.addTrigger(trigger_withdraw, "ppl", auth) - await db2.query("set:mint", { name: "Bob" }, "ppl", "Bob", ath(cu2)) - expect((await db2.getTokens()).tokens.allocated[pr.id]).to.eql("10") - - await db2.query("update:withdraw", { age: 21 }, "ppl", "Bob", ath(cu3)) - expect( - ( - await db2.get("__tokens__", [ - "key", - "==", - `${pr.id}:${cu2.address.toLowerCase()}`, - ]) - )[0].withdraw, - ).to.eql(5) - try { - const tx = await db2.bridgeToken( - { - token: pr.id, - to: cu2.address.toLowerCase(), - amount: 2, - destination: "ethereum", - }, - ath(cu2), - ) - await db2.withdrawToken({ token: pr.id, to: sch }, ath(cu2)) - expect((await db2.getTokens()).tokens.allocated[pr.id]).to.eql("5") - await wait(5000) - - expect( - await token.query({ - process: pr.id, - action: "Balance", - input: { Target: sch }, - }), - ).to.eql({ Balance: "3", Ticker: "WDB" }) - - await wait(5000) - // get zk merkle tree hash - const { hash, height } = await wdb.cu.hash(contractTxId) - await myru.commitRoot(hash) - - const tk = (await db2.cget("__bridge__"))[0] - - // get zkJSON proof - const { zkp, col_id, doc } = await wdb.cu.zkjson( - contractTxId, - "__bridge__", - tk.id, - "to", - ) - - const { zkp: zkp2 } = await wdb.cu.zkjson( - contractTxId, - "__bridge__", - tk.id, - "amount", - ) - // bridge token to Ethereum - const sigs = zkp.slice(8) - const _col = sigs[14] - const _doc = sigs[15] - - await bridge.bridge(_col, _doc, zkp, zkp2) - - expect((await mytoken.balanceOf(tk.data.to)).toNumber()).to.eql(2) - } catch (e) { - console.log(e) - } - }) -}) diff --git a/solidity/test/weavedb.js b/solidity/test/weavedb.js index 388ae63..da7e74a 100644 --- a/solidity/test/weavedb.js +++ b/solidity/test/weavedb.js @@ -7,6 +7,12 @@ const { CWAO } = require("cwao") const { readFileSync } = require("fs") const DB = require("weavedb-node-client") const SDK = require("weavedb-sdk-node") +const { AO } = require("aonote") +const { + setup, + ok, + fail, +} = require("../../node/node-server/test/lib/helpers.js") const getModule = async () => readFileSync(resolve(__dirname, "../../node/node-server/contract.js")) @@ -28,13 +34,15 @@ async function deploy() { } describe("WeaveDB AO with zkJSON", function () { - let myru, committer, db, ru - let admin, network, bundler, test, base, arweave + let myru, committer, ru + let admin, network, bundler, test, base, arweave, opt this.timeout(0) before(async () => { + ;({ opt } = await setup({})) // testing in insecure mode, never do that in production test = new Test({ + aos: opt.ao, secure: false, sequencerUrl: "https://gw.warp.cc/", apiKey: "xyz", @@ -55,18 +63,7 @@ describe("WeaveDB AO with zkJSON", function () { myru = dep.myru committer = dep.committer }) - it("should verify rollup transactions", async function () { - const cwao = new CWAO({ wallet: bundler, ...base }) - const sch = await arweave.wallets.jwkToAddress(bundler) - expect(await cwao.mu.get()).to.eql("ao messenger unit") - expect((await cwao.cu.get()).address).to.eql(sch) - expect((await cwao.su.get()).Address).to.eql(sch) - expect((await cwao.su.timestamp()).block_height).to.eql(0) - const _binary = await getModule() - const mod_id = await cwao.deploy(_binary) - await cwao.setSU({ url: base.su }) - const db = new DB({ rpc: "localhost:9090", contractTxId: "testdb", @@ -75,7 +72,6 @@ describe("WeaveDB AO with zkJSON", function () { await wait(2000) const stats = await db.node({ op: "stats" }) expect(stats).to.eql({ dbs: [] }) - // add a DB to node const tx = await db.admin( { @@ -98,12 +94,13 @@ describe("WeaveDB AO with zkJSON", function () { op: "deploy_contract", key: "testdb", type: "ao", - module: mod_id, - scheduler: sch, + module: opt.ao.module, + scheduler: opt.ao.scheduler, }, { privateKey: admin.privateKey }, ) expect((await db.node({ op: "stats" })).dbs[0].data.rollup).to.eql(true) + await wait(2000) // update the DB (via node) @@ -111,38 +108,49 @@ describe("WeaveDB AO with zkJSON", function () { rpc: "localhost:9090", contractTxId, }) - const Bob = { name: "Bob", age: 10 } + const Bob = { name: "Bob" } const tx2 = await db2.set(Bob, "ppl", "Bob", { privateKey: admin.privateKey, }) expect(tx2.success).to.eql(true) expect(await db2.get("ppl", "Bob")).to.eql(Bob) - // check rollup await wait(5000) - expect( - await cwao.query({ - process: contractTxId, - action: "get", - input: { function: "get", query: ["ppl", "Bob"] }, - }), - ).to.eql(Bob) + const ao = new AO(opt.ao) + const b = JSON.parse( + ( + await ao.dry({ + pid: contractTxId, + act: "Get", + tags: { Query: JSON.stringify(["ppl", "Bob"]) }, + get: { name: "Result", json: true }, + }) + ).out, + ) + expect(b).to.eql(Bob) + // check zkp + let hash = null + try { + hash = (await db.node({ op: "hash", key: "testdb" })).hash + } catch (e) { + console.log(e) + } + const { col_id, zkp } = await db.node({ + op: "zkp", + key: "testdb", + collection: "ppl", + doc: "Bob", + path: "name", + }) + expect(hash).to.eql(zkp[21]) - // get zk merkle tree hash - const { hash, height } = await cwao.cu.hash(contractTxId) await myru.commitRoot(hash) - // get zkJSON proof - const { zkp, col_id, doc } = await cwao.cu.zkjson( - contractTxId, - "ppl", - "Bob", - "name", - ) - // query from Solidity expect( - await myru.qString([col_id, toIndex(doc), ...path("name")], zkp), + await myru.qString([col_id, toIndex("Bob"), ...path("name")], zkp), ).to.eql("Bob") + + return }) }) diff --git a/solidity/yarn.lock b/solidity/yarn.lock index 5f5bbd7..909f2c3 100644 --- a/solidity/yarn.lock +++ b/solidity/yarn.lock @@ -566,6 +566,82 @@ "@aws-sdk/util-buffer-from" "3.6.1" tslib "^1.8.0" +"@babel/code-frame@^7.25.9": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.0.tgz#9374b5cd068d128dac0b94ff482594273b1c2815" + integrity sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/generator@^7.25.9": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.0.tgz#505cc7c90d92513f458a477e5ef0703e7c91b8d7" + integrity sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w== + dependencies: + "@babel/parser" "^7.26.0" + "@babel/types" "^7.26.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-transforms@^7.25.9": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-plugin-utils@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== + +"@babel/helper-simple-access@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz#6d51783299884a2c74618d6ef0f86820ec2e7739" + integrity sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/parser@^7.25.9", "@babel/parser@^7.26.0": + version "7.26.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.1.tgz#44e02499960df2cdce2c456372a3e8e0c3c5c975" + integrity sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw== + dependencies: + "@babel/types" "^7.26.0" + +"@babel/plugin-transform-modules-commonjs@^7.24.8": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz#d165c8c569a080baf5467bda88df6425fc060686" + integrity sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-simple-access" "^7.25.9" + "@babel/runtime@7.20.13": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" @@ -573,6 +649,36 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/template@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/traverse@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" + integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/template" "^7.25.9" + "@babel/types" "^7.25.9" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.25.9", "@babel/types@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" + integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@cbor-extract/cbor-extract-darwin-arm64@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz#8d65cb861a99622e1b4a268e2d522d2ec6137338" @@ -1089,16 +1195,40 @@ base64-js "^1.5.1" bignumber.js "^9.1.1" +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.0.3": version "3.1.1" resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.15" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + "@jridgewell/trace-mapping@0.3.9": version "0.3.9" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" @@ -1107,6 +1237,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@js-sdsl/ordered-map@^4.4.2": version "4.4.2" resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c" @@ -1649,6 +1787,29 @@ resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== +"@permaweb/ao-scheduler-utils@~0.0.23": + version "0.0.24" + resolved "https://registry.yarnpkg.com/@permaweb/ao-scheduler-utils/-/ao-scheduler-utils-0.0.24.tgz#a7d2c1e09f9b6ea5d45127fa395bbbcef6688452" + integrity sha512-G6109Nz8+dQFPuG7mV8mz66kLVA+gl2uTSqU7qpaRwfujrWi6obM94CpmvyvAnrLo3dB29EYiuv7+KOKcns8ig== + dependencies: + lru-cache "^10.2.2" + ramda "^0.30.0" + zod "^3.23.5" + +"@permaweb/aoconnect@^0.0.59": + version "0.0.59" + resolved "https://registry.yarnpkg.com/@permaweb/aoconnect/-/aoconnect-0.0.59.tgz#0ceb6257e2f376f4af6783163e3037240560dff1" + integrity sha512-AgnUv50hp3BVvqWk2IOw3p9ksF2GblFwQHCIWqwTYjvdViCPlsL4gx/BefxFqbMABXQ5q2QJItMJLlPelqC2CQ== + dependencies: + "@permaweb/ao-scheduler-utils" "~0.0.23" + buffer "^6.0.3" + debug "^4.3.6" + hyper-async "^1.1.2" + mnemonist "^0.39.8" + ramda "^0.30.1" + warp-arbundles "^1.0.4" + zod "^3.23.8" + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -2362,6 +2523,13 @@ abbrev@1, abbrev@1.0.x: resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz" @@ -2536,6 +2704,18 @@ anymatch@~3.1.1, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +aonote@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/aonote/-/aonote-0.8.3.tgz#52ce470ac867daf16af7745fdaba5f738abf8f30" + integrity sha512-v+jgz8pKn+brD3RrpqMFnxrj8hBRBBSlzrQgoKrjFrm0OF9wZaWaWwvWAS9CxrjL/0m3DXIc3f7Ytq1jJMhXcQ== + dependencies: + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@permaweb/aoconnect" "^0.0.59" + arbundles "^0.11.1" + arweave "^1.15.1" + ramda "^0.30.1" + test "^3.3.0" + apg-js@^4.1.1: version "4.4.0" resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.4.0.tgz#09dcecab0731fbde233b9f2352fdd2d07e56b2cf" @@ -2565,6 +2745,30 @@ arbundles@^0.11.0: multistream "^4.1.0" tmp-promise "^3.0.2" +arbundles@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.11.2.tgz#60375c0d5bda0eeecd9ce9a2aa42da7a89efa3f9" + integrity sha512-vyX7vY6S8B4RFhGSoCixbnR/Z7ckpJjK+b/H7zcgRWJqqXjZqQ+3DQIJ19vKl5AvzNSsj5ja9kQDoZhMiGpBFw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/providers" "^5.7.2" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wallet" "^5.7.0" + "@irys/arweave" "^0.0.2" + "@noble/ed25519" "^1.6.1" + base64url "^3.0.1" + bs58 "^4.0.1" + keccak "^3.0.2" + secp256k1 "^5.0.0" + optionalDependencies: + "@randlabs/myalgo-connect" "^1.1.2" + algosdk "^1.13.1" + arweave-stream-tx "^1.1.0" + multistream "^4.1.0" + tmp-promise "^3.0.2" + archiver-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" @@ -2644,6 +2848,14 @@ array-back@^4.0.1, array-back@^4.0.2: resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" @@ -2654,6 +2866,20 @@ array-uniq@1.0.3: resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + arweave-stream-tx@^1.1.0: version "1.2.2" resolved "https://registry.yarnpkg.com/arweave-stream-tx/-/arweave-stream-tx-1.2.2.tgz#2d5c66554301baacd02586a152fbb198b422112f" @@ -2703,6 +2929,16 @@ arweave@^1.10.13, arweave@^1.12.2, arweave@^1.13.7, arweave@^1.15.0: base64-js "^1.5.1" bignumber.js "^9.0.2" +arweave@^1.15.1: + version "1.15.5" + resolved "https://registry.yarnpkg.com/arweave/-/arweave-1.15.5.tgz#d0fb209de01bfc9dc97d5da70270928a83ecee83" + integrity sha512-Zj3b8juz1ZtDaQDPQlzWyk2I4wZPx3RmcGq8pVJeZXl2Tjw0WRy5ueHPelxZtBLqCirGoZxZEAFRs6SZUSCBjg== + dependencies: + arconnect "^0.4.2" + asn1.js "^5.4.1" + base64-js "^1.5.1" + bignumber.js "^9.0.2" + asap@~2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" @@ -3125,7 +3361,7 @@ call-bind@^1.0.0: get-intrinsic "^1.2.1" set-function-length "^1.1.1" -call-bind@^1.0.2, call-bind@^1.0.7: +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -3539,6 +3775,33 @@ data-uri-to-buffer@^4.0.0: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + death@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/death/-/death-1.1.0.tgz" @@ -3558,6 +3821,13 @@ debug@4.3.1: dependencies: ms "2.1.2" +debug@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -3590,6 +3860,15 @@ deep-is@~0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-data-property@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" @@ -3599,14 +3878,14 @@ define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" delayed-stream@~1.0.0: version "1.0.0" @@ -3756,6 +4035,58 @@ env-paths@^2.2.0: resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + es-define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" @@ -3763,11 +4094,36 @@ es-define-property@^1.0.0: dependencies: get-intrinsic "^1.2.4" -es-errors@^1.3.0: +es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es6-promise@4.2.8: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -4006,6 +4362,11 @@ ethjs-util@0.1.6, ethjs-util@^0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter3@4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -4287,11 +4648,26 @@ function-bind@^1.1.2: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + generic-pool@3.9.0: version "3.9.0" resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.9.0.tgz#36f4a678e963f4fdb8707eab050823abc4e8f5e4" @@ -4317,7 +4693,7 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" -get-intrinsic@^1.2.4: +get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -4333,6 +4709,15 @@ get-port@^3.1.0: resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + ghost-testrpc@^0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz" @@ -4423,6 +4808,19 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + globby@^10.0.1: version "10.0.2" resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" @@ -4534,6 +4932,11 @@ hardhat@^2.19.4: uuid "^8.3.2" ws "^7.4.6" +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + has-flag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" @@ -4568,7 +4971,12 @@ has-proto@^1.0.1: resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -has-symbols@^1.0.3: +has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -4604,6 +5012,13 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + he@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -4669,6 +5084,11 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +hyper-async@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/hyper-async/-/hyper-async-1.1.2.tgz#b9a83be36e726bface6f4a5b84f1a1a25bf19e6a" + integrity sha512-cnpOgKa+5FZOaccTtjduac1FrZuSc38/ftCp3vYJdUMt+7c+uvGDKLDK4MTNK8D3aFjIeveVrPcSgUPvzZLopg== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -4719,6 +5139,15 @@ ini@^1.3.5: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + interpret@^1.0.0: version "1.4.0" resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" @@ -4744,6 +5173,21 @@ is-arguments@^1.0.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -4751,6 +5195,14 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-buffer@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" @@ -4761,11 +5213,25 @@ is-buffer@~1.1.6: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.3: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -4800,6 +5266,18 @@ is-hex-prefixed@1.0.0: resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" @@ -4810,7 +5288,36 @@ is-plain-obj@^2.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-typed-array@^1.1.3: +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13, is-typed-array@^1.1.3: version "1.1.13" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== @@ -4827,12 +5334,19 @@ is-unicode-supported@^0.1.0: resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@^2.0.1: +isarray@^2.0.1, isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== @@ -4895,6 +5409,11 @@ js-sha512@^0.8.0: resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@3.x: version "3.14.1" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" @@ -4917,6 +5436,11 @@ js-yaml@4.1.0: dependencies: argparse "^2.0.1" +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -5192,6 +5716,11 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.1" +lru-cache@^10.2.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" @@ -5355,6 +5884,13 @@ mnemonist@^0.38.0: dependencies: obliterator "^2.0.0" +mnemonist@^0.39.8: + version "0.39.8" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.39.8.tgz#9078cd8386081afd986cca34b52b5d84ea7a4d38" + integrity sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ== + dependencies: + obliterator "^2.0.1" + mocha@10.2.0, mocha@^10.0.0, mocha@^10.2.0: version "10.2.0" resolved "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz" @@ -5423,7 +5959,7 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -5597,7 +6133,22 @@ object-inspect@^1.13.1, object-inspect@^1.9.0: resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -obliterator@^2.0.0: +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +obliterator@^2.0.0, obliterator@^2.0.1: version "2.0.4" resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== @@ -5751,6 +6302,11 @@ pbkdf2@^3.0.17: safe-buffer "^5.0.1" sha.js "^2.4.8" +picocolors@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" @@ -5791,6 +6347,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + promise@^8.0.0: version "8.3.0" resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" @@ -5933,6 +6494,11 @@ ramda@^0.29.1: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.1.tgz#408a6165b9555b7ba2fc62555804b6c5a2eca196" integrity sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA== +ramda@^0.30.0, ramda@^0.30.1: + version "0.30.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.30.1.tgz#7108ac95673062b060025052cd5143ae8fc605bf" + integrity sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" @@ -5986,6 +6552,17 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readdir-glob@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" @@ -6078,6 +6655,16 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regexp.prototype.flags@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.2" + req-cwd@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" @@ -6175,6 +6762,16 @@ rustbn.js@~0.2.0: resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" @@ -6190,6 +6787,15 @@ safe-json-utils@^1.1.1: resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1" integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ== +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + safe-stable-stringify@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61" @@ -6315,6 +6921,16 @@ set-function-length@^1.2.1: gopd "^1.0.1" has-property-descriptors "^1.0.2" +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" @@ -6546,7 +7162,49 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@^1.1.1: +string.prototype.replaceall@^1.0.6: + version "1.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.replaceall/-/string.prototype.replaceall-1.0.10.tgz#f6a8d010b11bb7df97c949c097c87aa721e849df" + integrity sha512-PKLapcZUZmXUdfIM6rTTTMYOxaj4JiQrgl0SKEeCFug1CdMAuJq8hVZd4eek9yMXAW4ldGUq+TiZRtjLJRU96g== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + is-regex "^1.1.4" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -6669,6 +7327,15 @@ tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" +test@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/test/-/test-3.3.0.tgz#a2b56c6aa386c5732065793e8d9d92074a9cdd41" + integrity sha512-JKlEohxDIJRjwBH/+BrTcAPHljBALrAHw3Zs99RqZlaC605f6BggqXhxkdqZThbSHgaYPwpNJlf9bTSWkb/1rA== + dependencies: + minimist "^1.2.6" + readable-stream "^4.3.0" + string.prototype.replaceall "^1.0.6" + then-request@^6.0.0: version "6.0.2" resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" @@ -6829,6 +7496,50 @@ typechain@^8.3.2: ts-command-line-args "^2.2.0" ts-essentials "^7.0.1" +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + typedarray-to-buffer@3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -6861,6 +7572,16 @@ uglify-js@^3.1.4: resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + underscore@1.12.1: version "1.12.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" @@ -7140,10 +7861,10 @@ weak-lru-cache@^1.2.2: resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== -weavedb-base@^0.43.3: - version "0.43.3" - resolved "https://registry.yarnpkg.com/weavedb-base/-/weavedb-base-0.43.3.tgz#071d573f46952f21ea796b99952697381c436468" - integrity sha512-FPYDMgxNXXqohtJrjT4ngBvceP7pMXGoRDH30gM1X1Q7lHEJUCFfoCC0ZdPvAfS/uln2V7E7yNqZ0BCJc8xtqg== +weavedb-base@^0.45.2: + version "0.45.2" + resolved "https://registry.yarnpkg.com/weavedb-base/-/weavedb-base-0.45.2.tgz#1d08daf017960d86dade97032bae0783bdbaa0b3" + integrity sha512-ZiuO6Ny9JwHah/WQ/ryCNEh4bD6z0lcJXIDzaeLlJTwq0SWezuQf5n98NaAsVNsyEv2VWJy+zHowaec3P1nrxA== dependencies: "@metamask/eth-sig-util" "^4.0.1" "@metamask/legacy-web3" "^2.0.0" @@ -7156,10 +7877,10 @@ weavedb-base@^0.43.3: pako "^2.1.0" ramda "^0.28.0" -weavedb-contracts@^0.43.3: - version "0.43.3" - resolved "https://registry.yarnpkg.com/weavedb-contracts/-/weavedb-contracts-0.43.3.tgz#523e16421cb21ba359aa65328c29c74116144b8d" - integrity sha512-i107z3IfQpnH9/7WqKQuk0HNaqQ+APx2h0qTYy6wgLtuzhQkIl4tJ4gvS4DlalZke/lwX68nzFCaq0720dOdPg== +weavedb-contracts@^0.45.1: + version "0.45.1" + resolved "https://registry.yarnpkg.com/weavedb-contracts/-/weavedb-contracts-0.45.1.tgz#0312d18ee61076b454e665924479a2dd84b9a1ce" + integrity sha512-e/gwbIIhy1uJXpzDlH0mZd/y6uvpP0x2/wT3yDrXpYRl52QUK+vPqwpUWAk2bbargdSZZVm01/ycJQgAYC8k3Q== dependencies: "@noble/curves" "^0.9.0" "@peculiar/webcrypto" "^1.4.3" @@ -7168,33 +7889,33 @@ weavedb-contracts@^0.43.3: wasmbuilder "^0.0.16" wasmcurves "^0.2.1" -weavedb-node-client@^0.43.2: - version "0.43.2" - resolved "https://registry.yarnpkg.com/weavedb-node-client/-/weavedb-node-client-0.43.2.tgz#ea21f84e95fd10c782735ccdd7a8d515e48812f0" - integrity sha512-kPughZAeSaxoAybkzM3zhiRoK6ZO7fqK/4bcYaySiDGtndarWpLptqoOXiqiGEOIEBbWk323tmz+nDNLm1iuTQ== +weavedb-node-client@^0.45.2: + version "0.45.2" + resolved "https://registry.yarnpkg.com/weavedb-node-client/-/weavedb-node-client-0.45.2.tgz#f1caf43317db6ea737d6ca5f4099f3a9f28034e4" + integrity sha512-CyJZrkQr/UQMx/GXxcAX514kYyw7y+FU6/V21jMw0qa8si/tP5XDpK/4EsAW4LJ1hCxYzaoxtB/xNlDetfJ4LQ== dependencies: "@grpc/grpc-js" "^1.1.0" "@grpc/proto-loader" "^0.5.0" arweave "^1.12.2" ramda "^0.28.0" - weavedb-base "^0.43.3" + weavedb-base "^0.45.2" -weavedb-sdk-node@^0.43.2: - version "0.43.2" - resolved "https://registry.yarnpkg.com/weavedb-sdk-node/-/weavedb-sdk-node-0.43.2.tgz#3f5a5b8a36604d09fd961419f1d8bd2ff8bac215" - integrity sha512-vRArkpmYu3V49kFErTFCMUYEB0ylFlW72i/sjj2HRp2J/U/dUQTChp04cNTA02SuklKIojt0bmyWl3RD6+/8VA== +weavedb-sdk-node@^0.45.2: + version "0.45.2" + resolved "https://registry.yarnpkg.com/weavedb-sdk-node/-/weavedb-sdk-node-0.45.2.tgz#55def7388cce39a16eb461578e359a0f4c3bc578" + integrity sha512-84A6xUbS7o7Locm7hvVy6txLCwUVsGLOBJrxMAm6LFI8r98LwN9/xheZXNeDTx6IgT8YL7oK/XYbh6674P7zUw== dependencies: "@aws-amplify/api" "^5.0.14" lmdb "^2.8.3" redis "^4.6.5" warp-contracts "^1.4.41" warp-contracts-pubsub "^1.0.5" - weavedb-sdk "^0.43.3" + weavedb-sdk "^0.45.2" -weavedb-sdk@^0.43.3: - version "0.43.3" - resolved "https://registry.yarnpkg.com/weavedb-sdk/-/weavedb-sdk-0.43.3.tgz#15fdec1aa90cb246217ba3e20904a6a2d4475922" - integrity sha512-aZ0axN5LVSiv6hJizka97BjMZGk0f2FFhSNv0Z4hfkejGJPAgLOecV25+ANrh+H4EwWjOHft4MggillSTHY/ZQ== +weavedb-sdk@^0.45.2: + version "0.45.2" + resolved "https://registry.yarnpkg.com/weavedb-sdk/-/weavedb-sdk-0.45.2.tgz#f9e99238a447838940591ddef8a9f2ef0380c1cc" + integrity sha512-SXP43bIb9OU2y8rcD90IMKJuNiSKg3uvZ6d24jrs0H/hhEQSv84fg5G81zQ1mHekdvALFWBMWhZvDZtLF1A6ow== dependencies: "@lit-protocol/sdk-browser" "^1.3.3" "@metamask/legacy-web3" "^2.0.0" @@ -7206,8 +7927,8 @@ weavedb-sdk@^0.43.3: ramda "^0.28.0" warp-contracts "^1.4.45" warp-contracts-old "npm:warp-contracts@1.2.26" - weavedb-base "^0.43.3" - weavedb-contracts "^0.43.3" + weavedb-base "^0.45.2" + weavedb-contracts "^0.45.1" web-streams-polyfill@^3.0.3: version "3.3.3" @@ -7276,12 +7997,23 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which-module@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.14, which-typed-array@^1.1.2: +which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== @@ -7517,3 +8249,8 @@ zkjson@^0.3.1: ffjavascript "^0.2.45" ramda "^0.29.1" snarkjs "^0.7.3" + +zod@^3.23.5, zod@^3.23.8: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== From 54cc0c3c3171afce11cc0271b4906a7ec2746e0d Mon Sep 17 00:00:00 2001 From: Tomoya Nagasawa Date: Mon, 4 Nov 2024 12:10:35 +0400 Subject: [PATCH 11/60] recover zk merkle hash with SU --- explorer/lib/nodes.js | 5 + explorer/pages/node/[id].js | 6 +- explorer/pages/node/[id]/db/[db].js | 16 +- .../pages/node/[id]/db/[db]/block/[block].js | 18 +- explorer/pages/node/[id]/db/[db]/blocks.js | 12 +- explorer/pages/node/[id]/db/[db]/tx/[tx].js | 16 +- node/node-server/index.js | 5 - node/node-server/nostr.js | 192 ------------------ node/node-server/rollup.js | 78 ++++--- node/node-server/server.js | 4 +- node/node-server/test/test.js | 6 +- node/node-server/vm.js | 2 + solidity/arguments.js | 5 +- solidity/script/deploy.js | 37 ++++ 14 files changed, 119 insertions(+), 283 deletions(-) delete mode 100644 node/node-server/nostr.js create mode 100644 solidity/script/deploy.js diff --git a/explorer/lib/nodes.js b/explorer/lib/nodes.js index ba7a96d..db19424 100644 --- a/explorer/lib/nodes.js +++ b/explorer/lib/nodes.js @@ -4,5 +4,10 @@ export const nodes = [ network: "Private Alpha", key: "alpha", }, + { + endpoint: "test.wdb.ae:443", + network: "AO Testnet", + key: "ao-testnet", + }, { endpoint: "localhost:8080", network: "Localhost", key: "localhost" }, ] diff --git a/explorer/pages/node/[id].js b/explorer/pages/node/[id].js index a098b53..d9d0ea7 100644 --- a/explorer/pages/node/[id].js +++ b/explorer/pages/node/[id].js @@ -90,8 +90,8 @@ export default function Home() { {err ? "The Node is Offline" : isNil(info) - ? "-" - : info.dbs.length} + ? "-" + : info.dbs.length} @@ -138,7 +138,7 @@ export default function Home() { sx={{ borderRight: "1px solid #ddd" }} > - Warp Contract Tx ID + AO Process ID {db.contractTxId ?? "None"} diff --git a/explorer/pages/node/[id]/db/[db].js b/explorer/pages/node/[id]/db/[db].js index d68d77d..c02c086 100644 --- a/explorer/pages/node/[id]/db/[db].js +++ b/explorer/pages/node/[id]/db/[db].js @@ -135,19 +135,19 @@ export default function Home() { - Contract TxID + AO Process ID {!isNil(db_info?.contractTxId) ? ( {db_info.contractTxId} ) : ( - router.query?.db ?? "-" + (router.query?.db ?? "-") )} @@ -225,7 +225,7 @@ export default function Home() { Txn - Warp TxId + AO Process ID Date @@ -260,7 +260,7 @@ export default function Home() { e.stopPropagation()} > @@ -285,7 +285,7 @@ export default function Home() { py={2} onClick={() => { router.push( - `/node/${router.query.id}/db/${router.query.db}/blocks` + `/node/${router.query.id}/db/${router.query.db}/blocks`, ) }} sx={{ @@ -440,7 +440,7 @@ export default function Home() { {dayjs(v.tx_ts ?? v.blk_ts ?? 0).fromNow( - true + true, )} @@ -458,7 +458,7 @@ export default function Home() { py={2} onClick={() => { router.push( - `/node/${router.query.id}/db/${router.query.db}/txs` + `/node/${router.query.id}/db/${router.query.db}/txs`, ) }} sx={{ diff --git a/explorer/pages/node/[id]/db/[db]/block/[block].js b/explorer/pages/node/[id]/db/[db]/block/[block].js index 4d01db0..396ed35 100644 --- a/explorer/pages/node/[id]/db/[db]/block/[block].js +++ b/explorer/pages/node/[id]/db/[db]/block/[block].js @@ -59,7 +59,7 @@ export default function Home() { const _txs = await db.cget( "txs", ["id", "desc"], - ["block", "==", +router.query.block] + ["block", "==", +router.query.block], ) setTxs(_txs) let i = 0 @@ -140,19 +140,19 @@ export default function Home() { - Contract TxID + AO Process ID {!isNil(db_info?.contractTxId) ? ( {db_info.contractTxId} ) : ( - router.query?.db ?? "-" + (router.query?.db ?? "-") )} @@ -171,13 +171,13 @@ export default function Home() { sx={{ borderRight: "1px solid #ddd" }} > - Warp TxId + Message ID {!isNil(block?.data?.txid) ? ( {block.data.txid} @@ -228,7 +228,7 @@ export default function Home() { Date - Warp TxId + AO Message ID @@ -309,7 +309,7 @@ export default function Home() { {dayjs(v.tx_ts ?? v.blk_ts ?? 0).fromNow( - true + true, )} @@ -317,7 +317,7 @@ export default function Home() { e.stopPropagation()} > diff --git a/explorer/pages/node/[id]/db/[db]/blocks.js b/explorer/pages/node/[id]/db/[db]/blocks.js index 5340dfa..a6dd3d6 100644 --- a/explorer/pages/node/[id]/db/[db]/blocks.js +++ b/explorer/pages/node/[id]/db/[db]/blocks.js @@ -83,7 +83,7 @@ export default function Home() { const _blks = await db.cget( "blocks", ["height", "desc"], - ["endBefore", blks[0]] + ["endBefore", blks[0]], ) if (_blks.length > 0) setBlks(concat(_blks, blks)) } @@ -167,13 +167,13 @@ export default function Home() { {db_info.contractTxId} ) : ( - router.query?.db ?? "-" + (router.query?.db ?? "-") )} @@ -236,7 +236,7 @@ export default function Home() { Txn - Warp TxId + AO Message ID Date @@ -272,7 +272,7 @@ export default function Home() { e.stopPropagation()} > @@ -304,7 +304,7 @@ export default function Home() { "blocks", ["height", "desc"], ["startAfter", last(blks)], - 20 + 20, ) setBlks(concat(blks, _blks)) setIsnext(_blks.length === 20) diff --git a/explorer/pages/node/[id]/db/[db]/tx/[tx].js b/explorer/pages/node/[id]/db/[db]/tx/[tx].js index 4972598..0e2234b 100644 --- a/explorer/pages/node/[id]/db/[db]/tx/[tx].js +++ b/explorer/pages/node/[id]/db/[db]/tx/[tx].js @@ -178,7 +178,7 @@ export default function Home() { - Contract TxID + AO Process ID {router.query.db} - Transaction ID + Message ID {tx ?? "-"} - Transaction Info{isNostr ? " | Nostr Event" : null} + Message Info{isNostr ? " | Nostr Event" : null} - Transaction ID: + Message ID: {tx_info.txid} @@ -278,11 +278,11 @@ export default function Home() { {dayjs( - tx_info.tx_ts ?? tx_info.blk_ts ?? 0 + tx_info.tx_ts ?? tx_info.blk_ts ?? 0, ).fromNow()}{" "} ( {dayjs(tx_info.tx_ts ?? tx_info.blk_ts ?? 0).format( - "llll" + "llll", )} ) @@ -471,7 +471,7 @@ export default function Home() { align="left" color="#666" > - Warp Bundle: + AO Bundle: {tx_info.warp} diff --git a/node/node-server/index.js b/node/node-server/index.js index 08fad9f..1196fd5 100644 --- a/node/node-server/index.js +++ b/node/node-server/index.js @@ -13,8 +13,3 @@ try { } catch (e) {} const vm = new VM({ dbname, conf }) new Server({ query: vm.query.bind(vm) }) - -if (vm.conf.nostr) { - const { nostr } = require("./nostr") - nostr({ server: vm, port: vm.conf.nostr.port, db: vm.conf.nostr.db }) -} diff --git a/node/node-server/nostr.js b/node/node-server/nostr.js deleted file mode 100644 index 4e58591..0000000 --- a/node/node-server/nostr.js +++ /dev/null @@ -1,192 +0,0 @@ -const { matchFilters } = require("nostr-tools") -const { WebSocketServer } = require("ws") -const { is, concat, isNil } = require("ramda") -let connCount = 0 -let events = [] -let subs = new Map() - -let lastPurge = Date.now() - -class Nostr { - constructor(socket, server, db = "offchain") { - this.db = db - this.server = server - this._socket = socket - this._subs = new Set() - } - cleanup() { - this._socket.close() - - for (const subId of this._subs) { - this.removeSub(subId) - } - } - addSub(subId, filters) { - subs.set(subId, { instance: this, filters }) - this._subs.add(subId) - } - removeSub(subId) { - subs.delete(subId) - this._subs.delete(subId) - } - send(message) { - this._socket.send(JSON.stringify(message)) - } - handle(message) { - try { - message = JSON.parse(message) - } catch (e) { - this.send(["NOTICE", "", "Unable to parse message"]) - } - - let verb, payload - try { - ;[verb, ...payload] = message - } catch (e) { - this.send(["NOTICE", "", "Unable to read message"]) - } - - const handler = this[`on${verb}`] - - if (handler) { - handler.call(this, ...payload) - } else { - this.send(["NOTICE", "", "Unable to handle message"]) - } - } - onCLOSE(subId) { - this.removeSub(subId) - } - onREQ(subId, ...filters) { - console.log("REQ", subId, ...filters) - this.addSub(subId, filters) - let done = 0 - for (const f of filters) { - let query = ["nostr_events", ["created_at", "desc"]] - let equals = [] - let ins = [] - - for (let f2 of [ - ["id", "id"], - ["authors", "pubkey"], - ["kinds", "kind"], - ]) { - const f3 = f[f2[0]] - if (!isNil(f3) && is(Array, f3) && f3.length > 0) { - if (f3.length === 1) { - equals.push([f2[1], "==", f3[0]]) - } else { - ins.push([f2[1], "in", f3]) - } - if (f2[0] === "id") break - } - } - query = concat(query, equals) - query = concat(query, ins) - if (!isNil(f.since) && is(Number, f.since)) { - query.push(["created_at", "<", f.since]) - } - if (!isNil(f.until) && is(Number, f.until)) { - query.push(["created_at", ">", f.until]) - } - if (!isNil(f.limit) && is(Number, f.limit)) { - query.push(f.limit > 1000 ? 1000 : f.limit) - } - this.server.queryNostr( - { query, function: "get" }, - this.db, - (err, res) => { - try { - if (isNil(err)) { - for (const v of JSON.parse(res.result)) { - this.send(["EVENT", subId, v]) - } - } - } catch (e) { - console.log(e) - } - done++ - if (filters.length === done) { - console.log("EOSE") - this.send(["EOSE", subId]) - } - } - ) - } - /* - for (const event of events) { - if (matchFilters(filters, event)) { - console.log("match", subId, event) - //this.send(["EVENT", subId, event]) - } else { - console.log("miss", subId, event) - } - }*/ - } - onEVENT(event) { - events.push(event) - console.log("EVENT", event, true) - this.server.queryNostr( - { - query: { function: "nostr", query: event }, - function: "nostr", - }, - this.db, - (err, res) => { - this.send(["OK", event.id]) - for (const [subId, { instance, filters }] of subs.entries()) { - if (matchFilters(filters, event)) { - console.log("match", subId, event) - instance.send(["EVENT", subId, event]) - } - } - } - ) - } -} - -const nostr = ({ port = 4736, server, purge_interval, db = "offchain" }) => { - if (purge_interval) { - console.log("Purging events every", purge_interval, "seconds") - setInterval(() => { - lastPurge = Date.now() - events = [] - }, purge_interval * 1000) - } - - const pid = Math.random().toString().slice(2, 8) - const wss = new WebSocketServer({ port }) - - console.log("Running on port", port) - - wss.on("connection", socket => { - connCount += 1 - - console.log("Received connection", { pid, connCount }) - - const relay = new Nostr(socket, server, db) - - if (purge_interval) { - const now = Date.now() - relay.send([ - "NOTICE", - "", - "Next purge in " + - Math.round((purge_interval * 1000 - (now - lastPurge)) / 1000) + - " seconds", - ]) - } - - socket.on("message", msg => relay.handle(msg)) - socket.on("error", e => console.error("Received error on client socket", e)) - socket.on("close", () => { - relay.cleanup() - - connCount -= 1 - - console.log("Closing connection", { pid, connCount }) - }) - }) -} - -module.exports = { nostr } diff --git a/node/node-server/rollup.js b/node/node-server/rollup.js index 920bd80..760b4ae 100644 --- a/node/node-server/rollup.js +++ b/node/node-server/rollup.js @@ -127,6 +127,7 @@ class Rollup { await this.initDB() if (this.rollup) this.bundle() } + async genZKP(col, doc, path) { let col_id = this.cols[col] let zkp = null @@ -154,6 +155,7 @@ class Rollup { } return { err: null, zkp, col_id } } + async measureSizes(bundles, last_hash) { let sizes = 0 let b = [{ bundles: [], t: [], size: 0 }] @@ -270,25 +272,10 @@ class Rollup { return [col_id, v.doc, v.data] }) console.log(txs) - /* - const start = Date.now() - const zkp = await this.zkdb.genRollupProof(txs) - console.log("zkp generated...", Date.now() - start) - */ this.hash = this.zkdb.tree.F.toObject( this.zkdb.tree.root, ).toString() console.log("zkp hash:", this.hash) - /* - const start2 = Date.now() - const zkp2 = await this.zkdb.genProof({ - json: diffs[0].data, - col_id: 0, - path: "name", - id: "Bob", - }) - console.log("zkp generated2...", Date.now() - start2) - */ } } else { // [TODO] need to handle this @@ -420,7 +407,9 @@ class Rollup { } async initDB() { - console.log(`Owner Account: ${this.owner}`) + console.log( + `[${this.srcTxId}] Owner Account: ${this.owner}.......................................................`, + ) await this.initWAL() await this.initOffchain() await this.initZKDB() @@ -601,6 +590,37 @@ class Rollup { } this.syncer = await new AO(this.aos).init(this.bundler) + // we need recovery here....read tx from SU + console.log("recovery...........................", this.contractTxId) + const res = await fetch( + `http://localhost:4003/${this.contractTxId}`, + ).then(r => r.json()) + if (res.error) { + console.log(res.error) + } else { + let items = 0 + for (let v of res.edges) { + const v2 = v.node + try { + const json = JSON.parse(v2.message.data) + for (const v3 of json?.diffs ?? []) { + items++ + let col_id = this.cols[v3.collection] + if (isNil(col_id)) { + col_id = await this.zkdb.addCollection() + // colnumber not consistent + this.cols[v3.collection] = col_id + } + await this.zkdb.insert(col_id, v3.doc, v3.data) + } + this.hash = this.zkdb.tree.F.toObject( + this.zkdb.tree.root, + ).toString() + } catch (e) {} + } + console.log("zkp hash:", this.hash, items, "items recovered") + console.log(this.cols) + } this.init_warp = true return } @@ -751,32 +771,6 @@ class Rollup { } this.wal.set(t, "txs", `${t.id}`).then(async res => { if (!res.success) console.log("wal error") - /* - if (diff.length > 0) { - if (this.txid === "testdb") { - for (const v of diff) { - const res = await this.zkdb.insert(0, v.doc, v.data) - } - - let txs = diff.map(v => { - return [0, v.doc, v.data] - }) - console.log(txs) - const start = Date.now() - const zkp = await this.zkdb.genRollupProof(txs) - console.log("zkp generated...", Date.now() - start) - const start2 = Date.now() - console.log("this is diff", diff[0].data) - const zkp2 = await this.zkdb.genProof({ - json: diff[0].data, - col_id: 0, - path: "age", - id: "bob", - }) - console.log("zkp generated2...", Date.now() - start2) - } - - }*/ }) this.last = Date.now() for (let k in this.plugins) { diff --git a/node/node-server/server.js b/node/node-server/server.js index 897365d..76fea9a 100644 --- a/node/node-server/server.js +++ b/node/node-server/server.js @@ -20,9 +20,7 @@ class Server { this.start() } start() { - this.server.addService(this.weavedb.DB.service, { - query: this.query, - }) + this.server.addService(this.weavedb.DB.service, { query: this.query }) this.server.bindAsync( `0.0.0.0:${this.port}`, grpc.ServerCredentials.createInsecure(), diff --git a/node/node-server/test/test.js b/node/node-server/test/test.js index a509549..e2f8af7 100644 --- a/node/node-server/test/test.js +++ b/node/node-server/test/test.js @@ -15,7 +15,6 @@ describe("WeaveDB on AO", function () { before(async () => { ;({ opt } = await setup({ cache: true })) - // testing in insecure mode, never do that in production test = new Test({ aos: opt.ao, @@ -76,10 +75,7 @@ describe("WeaveDB on AO", function () { await wait(2000) // update the DB (via node) - const db2 = new DB({ - rpc: "localhost:9090", - contractTxId, - }) + const db2 = new DB({ rpc: "localhost:9090", contractTxId }) const Bob = { name: "Bob" } const tx2 = await db2.set(Bob, "ppl", "Bob", { privateKey: admin.privateKey, diff --git a/node/node-server/vm.js b/node/node-server/vm.js index f033a26..c7799dc 100644 --- a/node/node-server/vm.js +++ b/node/node-server/vm.js @@ -197,6 +197,7 @@ class VM { ], ], ] + // we dont' need to set rules every time we start it out const tx = await this.admin_db.setRules(rules, "dbs", auth) console.log(`__admin__ rules added: ${tx.success}`) const rollups = this.conf.rollups || { offchain: {} } @@ -217,6 +218,7 @@ class VM { dbname, k, ) + // is this working?? await this.checkSnapShot({ dbname, dir, contractTxId }) } this.rollups[k] = this.getRollup(ru, k) diff --git a/solidity/arguments.js b/solidity/arguments.js index 7b40d60..170d010 100644 --- a/solidity/arguments.js +++ b/solidity/arguments.js @@ -1,4 +1,5 @@ module.exports = [ - "0x13c75AbF4544b45B402B7Fc15FF70A752A3181Ef", - "0x078694d69426112c7df330732e28F5117B02727A", + "0xF5140c4580B3811b654384Cc4d30e53d0eC1658c", + "0x5186a193d47B02d6C7D6a59BFC3270083E073d71", + "0xcD0505F215EFbF9b00C7a1EB39E299E79c4abd31", ] diff --git a/solidity/script/deploy.js b/solidity/script/deploy.js new file mode 100644 index 0000000..5021e5b --- /dev/null +++ b/solidity/script/deploy.js @@ -0,0 +1,37 @@ +// We require the Hardhat Runtime Environment explicitly here. This is optional +// but useful for running the script in a standalone fashion through `node